Pounce عبارة عن مكون إضافي للحركة يشبه EasyMotion وSneak وHop وLightspeed. يعتمد على البحث الغامض المتزايد. هنا عرض توضيحي:
يظهر العرض التوضيحي البحث عن كلمة "ht_mask" عن طريق كتابة "s" لتنشيط Pounce، و"htm" لتحسين البحث، ثم "J" لتحديد المطابقة.
باستخدام المكونات vim:
Plug 'rlane/pounce.nvim'
الأمر :Pounce
يبدأ الحركة. اكتب الحرف في الوجهة وسيقوم Pounce بتمييز جميع التطابقات التي تظهر على الشاشة. بعد ذلك، قم بتحسين المطابقات عن طريق كتابة المزيد من الأحرف (بالترتيب) الموجودة بعد الوجهة. سيتم استبدال الحرف الأول من المطابقة بحرف كبير "مفتاح القبول". يمكنك الضغط على هذا المفتاح للانتقال إلى المباراة، أو الاستمرار في تحسين البحث. أدخل يقبل أفضل تطابق (مظلل باللون الأزرق). يؤدي الهروب إلى إلغاء الحركة وترك المؤشر في موضعه السابق.
يمكنك أيضًا استخدام :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
هناك عدد غير قليل من المكونات الإضافية في هذا الفضاء. فيما يلي بعض البدائل للانقضاض: