Pounce adalah plugin gerak yang mirip dengan EasyMotion, Sneak, Hop, dan Lightspeed. Ini didasarkan pada pencarian fuzzy tambahan. Berikut demonya:
Demo menunjukkan pencarian kata "ht_mask" dengan mengetikkan "s" untuk mengaktifkan Pounce, "htm" untuk menyaring pencarian, dan kemudian "J" untuk memilih kecocokan.
Menggunakan vim-plug:
Plug 'rlane/pounce.nvim'
Perintah :Pounce
memulai gerakan. Ketik karakter di tujuan dan Pounce akan menyorot semua kecocokan di layar. Selanjutnya, sempurnakan kecocokan dengan mengetikkan lebih banyak karakter (secara berurutan) yang ada setelah tujuan. Huruf pertama yang cocok akan diganti dengan huruf besar "kunci terima". Anda dapat menekan tombol tersebut untuk melompat ke pertandingan, atau melanjutkan menyempurnakan pencarian. Enter menerima kecocokan terbaik (disorot dengan warna biru). Escape membatalkan gerakan dan membiarkan kursor pada posisi sebelumnya.
Anda juga dapat menggunakan :Pounce <chars>
untuk menginisialisasi pencarian dengan <chars>
. Anda dapat langsung menekan tombol terima untuk melompat ke pertandingan itu atau melanjutkan penyempurnaan seperti biasa. Anda dapat menggunakan ini dengan <Cr>
untuk menginisialisasi pencarian dengan isi register, Misalnya <Cr>/
akan menginisialisasi pencarian dengan pola pencarian terakhir yang Anda gunakan di /
. Anda juga dapat mempertimbangkan untuk menggunakan pemetaan <expr>
atau panggilan balik lua dengan vim.fn.expand
. Untuk kasus penggunaan ini, perintah PounceReg <regname>
dan PounceExpand <expr>
ditentukan.
Perintah :PounceRepeat
bekerja dengan cara yang sama tetapi diinisialisasi dengan input dari perintah Pounce sebelumnya.
Tidak ada pemetaan yang dibuat secara default. Berikut sarannya:
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>
Anda juga dapat menggunakan lua api secara langsung:
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 )
Fungsi pounce
mengambil tabel sebagai argumennya, Anda dapat menggunakan kunci apa pun yang diterima setup
, serta:
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())
}
}
Konfigurasi dilakukan dengan fungsi setup
. Memanggil setup
adalah opsional. Berikut adalah defaultnya:
require ' pounce ' . setup {
accept_keys = " JFKDLSAHGNUVRBYTMICEOXWPQZ " ,
accept_best_key = " <enter> " ,
multi_window = true ,
debug = false ,
}
Perhatikan bahwa accept_keys
memungkinkan Anda mengonfigurasi urutan tampilan kunci terima – kecocokan jarak terdekat mendapatkan huruf pertama dalam string accept_keys
. Pengguna tata letak keyboard alternatif mungkin ingin mengubah string tersebut. Colemak DHm mungkin dimulai dengan NTESIROA...
misalnya.
Di bawah ini tercantum beberapa contoh perintah tambahan yang dapat Anda gunakan:
<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
Ada beberapa plugin di ruang ini. Berikut beberapa alternatif selain Pounce: