كيفية التقاط تبادل التحول في VIM
سؤال
أريد أن استخدام shift-tab
لاستكمال تلقائي ومواصلة كتل الرمز البصري. لقد كنت أشير إلى make_shift-tab_work . هذا الرابط يتحدث عن رسم الخرائط ^[[Z
إلى shift-tab
. لكني لا أحصل ^[[Z
عندما أضغط shift-tab
. أنا فقط أحصل على طبيعية tab
في هذه الحالة.
ثم يتحدث عن استخدام xmodmap -pke | grep 'Tab'
لرسم خريطة تبويب مفاتيح. حسب أن الإخراج يجب أن يكون
keycode 23 = Tab
or
keycode 23 = Tab ISO_Left_Tab
ومع ذلك أحصل
keycode 22 = Tab KP_Tab
إذا استخدمت xmodmap -e 'keycode 22 = Tab ISO_Left_Tab'
وبعد ذلك xmodmap -pke | grep 'Tab'
, ، ما زلت أحصل
keycode 22 = Tab KP_Tab
هذا يعني الجري xmodmap -e 'keycode 22 = Tab ISO_Left_Tab'
ليس له أي تأثير.
في النهاية يذكر الرابط باستخدام xev
لمعرفة ماذا X
يستلم عندما أضغط shift-tab
. لكن ليس لدي xev
على نظامي.
هل هناك أي طريقة أخرى يمكنني التقاط تبادل التحول في VIM
المحلول
يتحدث الرابط على وجه التحديد عن الحصول على ^[[Z
عندما تضغط كنترول+الخامستحول+فاتورة غير مدفوعة في وضع إدراج. إذا تركت كنترول+الخامس, ، ثم يتصرف Vim كما لو كنت قد ضغطت فاتورة غير مدفوعة.
أسهل طريقة لجعل VIM تعترف <S-Tab>
, ، هو تعيين مباشرة t_kB
خيار لتسلسل الهروب الذي ترسله المحطة الخاصة بك ، بدلاً من العبث بالخرائط.
كاختبار سريع ، جرب هذا في VIM الجري:
: تعيين T_KB =كنترول+الخامسخروجz
: IMAPu003CS-Tab> فو
الآن عندما تضغط تحول+فاتورة غير مدفوعة في وضع إدراج ، foo
يجب إدراجها. إذا نجح ذلك ، يمكنك إجراء التغيير دائمًا عن طريق إضافة ما يلي إلى VIMRC.
exe 'set t_kB=' . nr2char(27) . '[Z'