Отображение Левой клавиши Alt в Vim?

Я могу отобразить сочетание клавиш Right Alt+Left Arrow с <a-left> или <m-left>. Но я не могу отобразить Левую клавишу Alt.

Существует ли способ сделать это?

Править:
Только к ясности <a-left> средства Стрелка Alt+Left.
Важный вопрос здесь - то, что различие между Левым Высоким звуком и Правильным Высоким звуком с точки зрения keymappings в Vim?

12
задан 09.04.2010, 12:59

1 ответ

Если Вы делаете :help key-notation в энергии Вы будете видеть, что единственные модификаторы, которые распознает Vim, являются сдвигом, управлением, alt/meta (рассматривал как синонимы), и командная клавиша Mac. Вы могли легко использовать xmodmap для отображения правильной клавиши Alt на новый модификатор, который распознает Vim, но возможно ни один из тех модификаторов не в настоящее время не использован Вами. (Я не знаю, возможно ли заставить системы Linux представлять модификатор командной клавиши Mac, поскольку Vim видит его.) Существуют другие модификаторы, который X распознает: Mod4, Hyper, и так далее, но похоже, что Vim просто не будет видеть их или по крайней мере не может связать их.

Другая опция состоит в том, чтобы принять меры, чтобы RightAlt-стрелка-влево генерировала определенное сочетание клавиш, например, Esc-[MyUniqueGarbageHere. Это, конечно, выполнимо, и затем Вы могли сказать Vim связывать это с любым действием, которое Вы любите, который отличается, чем Ваша левая клавиша Alt связывается с. Оборотная сторона этого - то, что необходимо сделать это для каждой комбинации RightAlt+Key индивидуально. Но если Вы просто хотите сделать это для нескольких ключей, это очень выполнимо.

Точно то, как Вы реализуете его, будет зависеть от того, говорите ли Вы об использовании Vim в X или в консоли Linux, или в некоторой другой среде. Я предположу, что Вы говорите об использовании его в X.

  1. Используйте xmodmap для привязки RightAlt с, скажем, Mod3. Примите меры, чтобы это было выполнено однажды, когда Ваши X сессий запустятся. Некоторые дистрибутивы уже имеют/etc/X11/xinit/xinitrc файл, который загрузит файлы в определенных местоположениях, содержащих xmodmap команды.

    xmodmap -e "remove Mod1 = Alt_R" -e "add Mod3 = Alt_R"
    
  2. Я использую терминал urxvt. Это позволяет определять привязки клавиш в файле Xresources-типа. Вы могли сделать это в ~/.config/Xresources; я делаю это в ~/.config/app-defaults/URxvt. Я поместил строку как это в том файле (точный синтаксис чувствителен, к которому файлу Вы вставляете его):

    URxvt.keysym.Mod3-Left:    \033<RAlt-Left>
    

    Теперь запустите новый терминал, введите ctrl-V, затем вводят RightAlt+Left. Необходимо видеть в командной строке символы ^ [[<RAlt-левый>. Это работает? Хороший.

  3. В Вашем ~/.vimrc, помещает это:

    set t_Ff=^[<RAlt-Left>
    

'^ [' вот является единственным символом ESC. Каждый из других символов (' <', 'R', и т.д.) самостоятельно. Используйте "литеральный" ключевой префикс энергии, сопровождаемый Escape, для ввода '^ [' (я забываю то, что "литеральный" ключ по умолчанию---также ctrl-V, возможно?) t_Ff является просто неиспользованной терминальной записью. Другой - t_Fg. Можно использовать :set termcap в энергии для наблюдения, какие терминальные записи присвоены и просто используют t_XX приблизительно для XX, который не используется. Следуйте за .vimrc строкой, представленной выше с этими следующими:

    map <t_Ff> whatever-vim-keys-you-want-it-mapped-to
    map! <t_Ff> whatever-vim-keys-you-want-it-mapped-to

Также возможно непосредственно сделать:

    map ^[<RAlt-Left> whatever-vim-keys-you-want-it-mapped-to

Однако я нашел технику, которая использует неактивную терминальную запись для работы намного более надежно.

Я сделал много предположений здесь: то, что Вы используете Linux, X, и так далее. При использовании другой терминальной программы, чем urxvt это может или не может обеспечить достаточно мощные методы привязки клавиш, чтобы сделать то, что я описал. При выборе менее экзотических ключей можно все еще смочь сделать что-то как, я описал здесь. Например, Вы могли бы устроить RAlt-оставленный быть связанными с F21 и затем пойти оттуда. Сообщите нам, каковы Ваши требования.

14
ответ дан 07.12.2019, 11:59

Теги

Похожие вопросы