Pounce เป็นปลั๊กอินสำหรับการเคลื่อนไหวที่คล้ายกับ EasyMotion, Sneak, Hop และ Lightspeed มันขึ้นอยู่กับการค้นหาแบบคลุมเครือที่เพิ่มขึ้น นี่คือการสาธิต:
การสาธิตแสดงการค้นหาคำว่า "ht_mask" โดยการพิมพ์ "s" เพื่อเปิดใช้งาน Pounce "htm" เพื่อปรับแต่งการค้นหา จากนั้น "J" เพื่อเลือกคำที่ตรงกัน
การใช้ vim-plug:
Plug 'rlane/pounce.nvim'
คำสั่ง :Pounce
เริ่มการเคลื่อนไหว พิมพ์อักขระที่ปลายทางแล้ว Pounce จะไฮไลต์การแข่งขันทั้งหมดบนหน้าจอ จากนั้น ปรับแต่งรายการที่ตรงกันโดยพิมพ์อักขระเพิ่มเติม (ตามลำดับ) ที่อยู่หลังปลายทาง ตัวอักษรตัวแรกของการแข่งขันจะถูกแทนที่ด้วย "รหัสยอมรับ" ตัวพิมพ์ใหญ่ คุณสามารถกดปุ่มนั้นเพื่อข้ามไปยังการแข่งขัน หรือปรับแต่งการค้นหาต่อไป Enter ยอมรับการจับคู่ที่ดีที่สุด (เน้นด้วยสีน้ำเงิน) Escape ยกเลิกการเคลื่อนไหวและปล่อยให้เคอร์เซอร์อยู่ที่ตำแหน่งก่อนหน้า
คุณยังสามารถใช้ :Pounce <chars>
เพื่อเริ่มต้นการค้นหาด้วย <chars>
คุณสามารถกดปุ่มยอมรับได้โดยตรงเพื่อข้ามไปยังการแข่งขันนั้นหรือปรับแต่งต่อไปตามปกติ คุณสามารถใช้สิ่งนี้กับ <Cr>
เพื่อเริ่มต้นการค้นหาด้วยเนื้อหาของรีจิสเตอร์ ตัวอย่างเช่น <Cr>/
จะเริ่มต้นการค้นหาด้วยรูปแบบการค้นหาล่าสุดที่คุณใช้ใน /
คุณยังสามารถพิจารณาใช้การแมป <expr>
หรือการเรียกกลับ lua ด้วย vim.fn.expand
สำหรับกรณีการใช้งานเหล่านี้ จะมีการกำหนดคำสั่ง 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: