Pounce は、EasyMotion、Sneak、Hop、Lightspeed に似たモーション プラグインです。これはインクリメンタルファジー検索に基づいています。デモは次のとおりです。
デモでは、「s」を入力して Pounce をアクティブ化し、「htm」を入力して検索を絞り込み、「J」を入力して一致を選択することにより、単語「ht_mask」を検索する様子を示しています。
vim-plug の使用:
Plug 'rlane/pounce.nvim'
:Pounce
コマンドはモーションを開始します。目的地に文字を入力すると、Pounce は画面上で一致するものをすべてハイライト表示します。次に、宛先の後に存在する文字を (順番に) 入力して、一致を絞り込みます。一致した文字の最初の文字は大文字の「accept key」に置き換えられます。そのキーを押して一致にジャンプするか、検索を絞り続けることができます。 Enter は、最も一致するもの (青で強調表示) を受け入れます。 Escape はモーションをキャンセルし、カーソルを前の位置に残します。
:Pounce <chars>
を使用して、 <chars>
で検索を初期化することもできます。受け入れキーを直接押してその一致にジャンプするか、通常どおり絞り込みを続けることができます。これを<Cr>
と併用すると、レジスタの内容で検索を初期化できます。たとえば、 <Cr>/
/
で使用した最後の検索パターンで検索を初期化します。 vim.fn.expand
で<expr>
マッピングまたは lua コールバックを使用することも検討できます。これらの使用例では、コマンドPounceReg <regname>
およびPounceExpand <expr>
が定義されています。
:PounceRepeat
コマンドも同様に機能しますが、前の Pounce コマンドからの入力で初期化されます。
デフォルトではマッピングは作成されません。ここに提案があります:
nmap s <cmd> Pounce <CR>
nmap S <cmd> PounceRepeat <CR>
xmap s <cmd> Pounce <CR>
omap gs <cmd> Pounce <CR> " 's' is used by vim-surround
nmap S :Pounce <C-r> / <cr> " note: if you want to use <C-r> you cannot use <cmd>
lua API を直接使用することもできます。
local map = vim . keymap . set
map ( " n " , " s " , function () require ' pounce ' . pounce { } end )
map ( " n " , " S " , function () require ' pounce ' . pounce { do_repeat = true } end )
map ( " x " , " s " , function () require ' pounce ' . pounce { } end )
map ( " o " , " gs " , function () require ' pounce ' . pounce { } end )
map ( " n " , " S " , function () require ' pounce ' . pounce { input = { reg = " / " } } end )
pounce
関数は引数としてテーブルを受け取ります。 setup
受け入れる任意のキーのほか、次のキーも使用できます。
require ' pounce ' . pounce {
do_repeat = true | false -- to reuse the last pounce search
input = string | table -- a string to initialize the input, or a table:
input = {
reg = string -- the name of a vim register to use as the input (:h registers)
expand = string -- an expression passed to vim.fn.expand (:h expand())
}
}
設定はsetup
機能で行います。 setup
呼び出すかどうかはオプションです。デフォルトは次のとおりです。
require ' pounce ' . setup {
accept_keys = " JFKDLSAHGNUVRBYTMICEOXWPQZ " ,
accept_best_key = " <enter> " ,
multi_window = true ,
debug = false ,
}
accept_keys
使用すると、accept キーの表示順序を設定できることに注意してください。最近接一致では、 accept_keys
文字列の最初の文字が取得されます。別のキーボード レイアウトを使用しているユーザーは、その文字列を修正したい場合があります。たとえば、Colemak DHm はNTESIROA...
で始まる場合があります。
以下に、使用できる追加コマンドの例をいくつか示します。
<cmd> PounceReg / <cr> " Pounce with last search pattern
<cmd> PounceReg 0 <cr> " Pounce with last yank
<cmd> PounceReg " <cr> " Pounce with last d/c/y
<cmd> PounceReg . <cr> " Pounce with last inserted text
" zy <cmd> PounceReg z<cr > " From visual mode: Pounce using the selection as the input
<cmd> PounceExpand <cword><cr> " Pounce with the current word
<cmd> PounceExpand % <cr> " Pounce with the current filename
この領域にはかなりの数のプラグインがあります。 Pounce の代替手段は次のとおりです。