Pounce는 EasyMotion, Sneak, Hop 및 Lightspeed와 유사한 모션 플러그인입니다. 증분 퍼지 검색을 기반으로 합니다. 데모는 다음과 같습니다.
데모에서는 "s"를 입력하여 Pounce를 활성화하고 "htm"을 입력하여 검색을 세분화한 다음 "J"를 입력하여 일치 항목을 선택하여 "ht_mask"라는 단어를 검색하는 방법을 보여줍니다.
vim-plug 사용:
Plug 'rlane/pounce.nvim'
:Pounce
명령은 모션을 시작합니다. 목적지에 문자를 입력하면 Pounce가 화면에서 일치하는 모든 항목을 강조 표시합니다. 그런 다음 대상 뒤에 있는 추가 문자를 순서대로 입력하여 일치 항목을 구체화합니다. 일치 항목의 첫 글자는 대문자 "accept key"로 대체됩니다. 해당 키를 눌러 일치 항목으로 이동하거나 검색을 계속해서 구체화할 수 있습니다. Enter를 누르면 가장 잘 일치하는 항목이 적용됩니다(파란색으로 강조 표시됨). Esc는 모션을 취소하고 커서를 이전 위치에 둡니다.
: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_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의 몇 가지 대안은 다음과 같습니다.