Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
378 lines (264 sloc) 16.6 KB

https://melpa.org/packages/avy-migemo-badge.svg https://stable.melpa.org/packages/avy-migemo-badge.svg

avy-migemo

avy-migemo は avy 関数の migemo 版に切り替えるためのマイナーモードです.

このパッケージでは,以下の関数が定義されています.

  • avy-migemo-goto-char
  • avy-migemo-goto-char-2
  • avy-migemo-goto-char-in-line
  • avy-migemo-goto-char-timer
  • avy-migemo-goto-subword-1
  • avy-migemo-goto-word-1
  • avy-migemo-isearch
  • avy-migemo-org-goto-heading-timer
  • avy-migemo--overlay-at
  • avy-migemo--overlay-at-full
  • avy-migemo--read-candidates

上記のほとんどは avy.el で定義されている関数の regexp-quote の箇所を migemo に置き換えたのものです.

また以下の拡張パッケージは avy.el の拡張ではないですが, avy-migemo-mode で切り替えて使用できるように定義されています.

  • avy-migemo-e.g.zzz-to-char.el
  • avy-migemo-e.g.ivy.el
  • avy-migemo-e.g.swiper.el
  • avy-migemo-e.g.counsel.el

image/image.gif

Table of contents

Requirements

  • GNU Emacs 24.4 or later
  • avy 0.4 or later
  • migemo 1.9 or later

Setup

(add-to-list 'load-path "/path/to/avy-migemo")
(require 'avy-migemo)
;; `avy-migemo-mode' overrides avy's predefined functions using `advice-add'.
(avy-migemo-mode 1)
(global-set-key (kbd "M-g m m") 'avy-migemo-mode)

Customization

User Option: avy-migemo-lighter

avy-migemo-mode の lighter です.初期値は nil に設定されています.

User Option: avy-migemo-get-function

引数として文字列を取り,正規表現を返す関数を設定することができます.

初期値は migemo-get-pattern に設定されています.

;; e.g. Using non-capturing group
(custom-set-variables
 '(avy-migemo-get-function 'avy-migemo-get-pattern-non-capturing)
 '(avy-migemo-regex-concat-use-non-capturing t))

User Option: avy-migemo-regex-concat-use-non-capturing

non-nil の場合, avy-migemo-regex-concat / avy-migemo-regex-quote-concat 時に non-capturing group を使用します.

初期値は nil に設定されています.

non-nilの場合,grep の -E オプションと使用することができません. そのため counsel-grep-function-migemo を使用する場合は, counsel-grep-base-command-migemo で -P オプションまたは他のコマンドを使用する必要があります.

User Option: avy-migemo-function-names

avy-migemo の関数名のリストです. また advice-add の引数のように, (orig-fn where advice-fn) と指定することができます.

初期値にはアドバイス関数として使用できる全ての関数名が含まれています.

この変数を変更する場合は, setq ではなく custom-set-variables を使用してください. setq を使用すると,オーバーライドする関数との整合性が取れなくなります.

avy-goto-char-timer のみをオーバーライドして使用する場合は,以下のようになります.

;; Override only `avy-goto-char-timer' when `avy-migemo-mode' is enabled.
(custom-set-variables
 '(avy-migemo-function-names
   '(avy-migemo-goto-char-timer)))

Function: avy-migemo-remove-names &rest names

avy-migemo-function-names から names を取り除くための関数です.

;; Remove only `avy-migemo-goto-char' from `avy-migemo-function-names'.
(avy-migemo-remove-names 'avy-migemo-goto-char)

Function: avy-migemo-add-names &rest names

avy-migemo-function-namesnames を追加するための関数です.

User Option: avy-migemo-use-isearch-search-fun

non-nil の場合, avy-migemo-isearch 時に isearch-search-fun を使用して候補を集めます. 初期値は nil に設定されています.

migemo-isearch-toggle-migemo ,isearch symbol/word などの切り替えに対応しています.

User Option: avy-migemo-at-full-max

この変数に整数を指定すると,候補上に表示されるキーの長さを制限することができます. 初期値は nil に設定されています.

この機能は avy-migemo--overlay-at-full に依存しています.

(custom-set-variables '(avy-migemo-at-full-max 2))

User Option: avy-migemo-regex-cache-clear-hook

avy-migemo-regex-cache-clear の呼び出し時に実行されるノーマルフックです.

An example config for zzz-to-char ( zzz-to-char--base )

以下のように,avy を使用している関数の migemo版を新たに追加することができます. 既存の関数名に -migemo を加えた関数を新たに定義し,追加します.

以下の設定例は avy-migemo-e.g.zzz-to-char.el をロードすることで使用することができます.

;; If you use zzz-to-char (which can be installed from MELPA or El-Get),
;; you can adapt it for migemo.
(require 'zzz-to-char)

;; Adding "-migemo" to the original name is needed.
(defun zzz-to-char--base-migemo (char n-shift)
  "The same as `zzz-to-char--base' except for using migemo."
  (let ((p (point))
        (avy-all-windows nil))
    (avy-with zzz-to-char
      (avy--generic-jump
       (if (= 13 char)
           "\n"
         ;; Adapt for migemo
         (avy-migemo-regex-quote-concat (string char)))
       nil
       avy-style
       (- p zzz-to-char-reach)
       (+ p zzz-to-char-reach)))
    (let ((n (point)))
      (when (/= n p)
        (cl-destructuring-bind (beg . end)
            (if (> n p)
                (cons p (- (1+ n) n-shift))
              (cons (+ n n-shift) p))
          (goto-char end)
          (kill-region beg end))))))

(avy-migemo-add-names 'zzz-to-char--base-migemo)

An example config for ivy

avy-migemo-e.g.ivy.el は ivy.el のための設定ファイルです.

(require 'avy-migemo-e.g.ivy)

以下の関数はアドバイス関数として使用されます.

  • ivy--regex-migemo-around
  • ivy--regex-ignore-order-migemo-around
  • ivy--regex-plus-migemo-around
  • ivy--highlight-default-migemo
  • ivy-occur-revert-buffer-migemo
  • ivy-occur-press-migemo

User Option: ivy-migemo-get-function

引数として文字列を取り,正規表現を返す関数を設定することができます.

初期値は avy-migemo-regex-concat-nnl に設定されています.

User Option: ivy-migemo-ignore-functions

ivy-state-caller または ivy-state-collection に使用される関数名のリストです. ivy--regex-*-migemo-around 実行時に migemo を使用しないようにすることができます.

初期値は nil に設定されています.( avy-migemo-e.g.counsel.el ロード時にいくつかの counsel コマンドが追加されます. )

User Option: ivy-migemo-ignore-prompts

正規表現のリストです. ivy-state-prompt にマッチする場合, ivy--regex-*-migemo-around で migemo を使用しないようにすることができます.

初期値は (list (regexp-opt '("symbol" "function" "variable" "binding" "face"))) に設定されています.

ivy-state-caller が設定されていないコマンドに使用することができます.

User Option: ivy-migemo-preferred-functions

ivy-state-caller または ivy-state-collection に使用される関数名のリストです. ivy--regex-*-migemo-around 実行時に, 指定された関数のみ migemo を使用します. non-nil の場合, ivy-migemo-ignore-functions / ivy-migemo-ignore-prompts の設定は使用されません.

初期値は nil に設定されています.

;; e.g. Using only swiper with migemo.
(add-to-list 'ivy-migemo-preferred-functions 'swiper)

An example config for swiper

avy-migemo-e.g.swiper.el は swiper.el のための設定ファイルです.

(require 'avy-migemo-e.g.swiper)

以下の関数はアドバイス関数として使用されます.

  • swiper--add-overlays-migemo
  • swiper--re-builder-migemo-around

User Option: swiper-migemo-min-highlight

初期値は 2 に設定されています.

入力文字列の長さがこの値以上になった場合のみハイライトします.

nil の場合は, swiper-min-highlight が使用されます.

An example config for counsel

avy-migemo-e.g.counsel.el は counsel.el のための設定ファイルです.

(require 'avy-migemo-e.g.counsel)

以下の関数はアドバイス関数として使用されます.

  • counsel-grep-migemo-around
  • counsel-grep-function-migemo
  • counsel-grep-occur-migemo
  • counsel-git-occur-migemo-around
  • counsel-find-file-occur-migemo-around
  • avy-migemo-disable-around for counsel-clj

以下の関数は ivy-migemo-ignore-functions に追加されます.

counsel-ag, counsel-rg, counsel-git-grep, counsel-locate counsel-describe-variable, counsel-fzf, counsel-describe-function, counsel-descbinds, counsel-M-x ,counsel-dpkg, counsel-rpm, counsel-irony

以下のコマンドが定義されています.

  • counsel-pt-migemo
  • counsel-rg-migemo

User Option: counsel-grep-base-command-migemo

counsel-grep-function-migemo で使用されるフォーマットです. 初期値は counsel-grep-base-command に設定されています.

avy-migemo-regex-concat-use-non-capturing が non-nilの場合,grep の -E オプションと使用することができません. 以下のように -P オプションと使用することができます.

;; e.g. grep with -P option
(custom-set-variables
 '(counsel-grep-base-command-migemo "grep -nP %s %s"))
;; e.g. ripgrep
(custom-set-variables
 '(counsel-grep-base-command-migemo "rg --color never --no-heading -ni %s %s"))

User Option: counsel-pt-migemo-base-command

counsel-pt-migemo で使用されるフォーマットです. 初期値は counsel-pt-base-command に設定されています.

User Option: counsel-rg-migemo-base-command

counsel-rg-migemo で使用されるフォーマットです. 初期値は counsel-rg-base-command に設定されています.

User Option: counsel-cmd-to-dired-migemo-grep-command

counsel-cmd-to-dired の引数として使用される grep コマンドのフォーマットです. 初期値は “grep %s -i -P %s” に設定されています.

User Option: counsel-cmd-to-dired-migemo-grep-invert-matching

grep コマンドの --invert-matching オプションです. counsel-cmd-to-dired-migemo-grep-command の1つめの書式指定子に使用されます. 初期値は “-v” に設定されています.

User Option: counsel-find-file-occur-migemo-ls-cmd

counsel-find-file-occur-cmdls コマンド部分です. 初期値は “ls -a”.

User Option: counsel-find-file-occur-migemo-ls-xargs-cmd

counsel-find-file-occur-cmdxargs コマンド部分です. 初期値は “xargs -d ‘\n’ ls -d –group-directories-first”.

User Option: counsel-find-file-occur-migemo-find-cmd

counsel--occur-cmd-findfind コマンド部分です. 初期値は “find . -maxdepth 1” に設定されています.

User Option: counsel-find-file-occur-migemo-find-xargs-cmd

counsel--occur-cmd-findxargs コマンド部分です. 初期値は “xargs -I {} find {} -maxdepth 0 -ls” に設定されています.

User Option: counsel-unquote-regex-parens-migemo-function

counsel-unquote-regex-parens-migemo で内部的に使用されます.

引数として文字列を取り,正規表現を返す関数を設定することができます. ivy--regex の返り値が引数として使用されます.

初期値は counsel-unquote-regex-parens-migemo-default に設定されています. counsel-unquote-regex-parens-migemo-default は 引数に対して counsel-unquote-regex-parens を実行し, その返り値に含まれている “\\|” を “|” に変換します.

You can’t perform that action at this time.