سؤال

في VIM ، أستخدم Ctrl-N للكلمة كاملة أثناء وجوده في وضع إدراج. إذا كان هناك أكثر من مباراة واحدة ممكنة ، أحصل على منسدلة يمكنني تحديد واحدة من المباريات المحتملة باستخدام مفاتيح الأسهم.

ومع ذلك ، لا أريد استخدام مفاتيح الأسهم ؛ أريد استخدام مفاتيح "J" و "K". ولكن عندما أكتب "J" أو "K" ، فإنه يدرج الحروف بدلاً من الصعود أو لأسفل في القائمة المنسدلة. هل هناك طريقة يمكنني من خلالها تكوين VIM للقيام بذلك بالطريقة التي أريدها؟

هل كانت مفيدة؟

المحلول

يرى :hpopupmenu-keys.

لا توجد مجموعة خاصة من التعيينات للوضع الفرعي للقائمة المنبثقة ، ولكن يمكنك عمل رسم خرائط للإدراج الشرطي:

inoremap <expr> j pumvisible() ? "\<C-N>" : "j"
inoremap <expr> k pumvisible() ? "\<C-P>" : "k"

هذا يجعل j/k انتقل إلى القائمة المنبثقة مثل <C-N>/<C-P>, ، في حين أنها مرئية.

إضافة: إذا كنت تريد أن تكون قادرًا على التمسك بالتحكم أثناء الكتابة j و k, ، يمكنك استبدالها بـ <C-J> و <C-K>, ، على التوالى. (انظر تعليق MWCZ على هذه الإجابة.)

نصائح أخرى

لا أعرف طريقة كيفية القيام بذلك مع J و K. أنت في وضع إدراج ، فهي لا تعمل.

لكن لدي طريقة أخرى لك ، كنترول+ن يعمل على شكل علامة التبويب ، ويمكنك استخدامه يحول-فاتورة غير مدفوعة للنزول في القائمة وعلامة التبويب للذهاب. إنه أسهل من استخدام مفاتيح الأسهم. ولكن ليس لطيفا مثل J و K سيكون.

أو يمكنك استخدام فقط كنترول+ن و كنترول+ص

قد تساعدك Supertab (http://www.vim.org/scripts/script.php؟script_id=1643). بمجرد التثبيت ، يمكنك استخدام علامة التبويب وعلامة التبويب للتنقل في القائمة المنبثقة.

انظر هذا المستند أيضًا: http://vim.wikia.com/wiki/omni_completion_popup_menu

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top