1

Я пытаюсь отобразить комбинацию левой клавиши alt и return в моем .vimrc, но безуспешно.

Я добавил все эти сопоставления в мой файл .vimrc без эффекта:

map <M-esc> itest0<return><esc>
map <M-cr> itest1<return><esc>
map <M-return> itest2<return><esc>
map <M-enter> itest3<return><esc>
map <M-[> itest4<return><esc>
map ^[ itest5<return><esc>

Некоторая информация:

После нажатия Ctrl+v и затем Alt+return:

  • в моем терминале я получаю ^[
  • В VIM (и Gvim) в режиме вставки я получаю ^[
  • После вызова sed -n l я получаю:
^[
\033$

Я использую терминатор на Arch Linux. Описанное поведение идентично независимо от того, использую ли я vim или gvim. Что я должен сделать?

1 ответ1

3

Из-за способа обработки ввода с клавиатуры, к сожалению, сегодня это вообще невозможно, даже в GVIM. Некоторые сочетания клавиш, такие как Ctrl + не алфавитный, не могут быть сопоставлены, и Ctrl + буква против Ctrl + Shift + буква не может быть различена. (Если ваш терминал не отправляет для него отдельный код termcap , чего большинство не делает.) В режиме вставки или командной строки попробуйте ввести комбинацию клавиш. Если ничего не происходит / вставлено, вы не можете использовать эту комбинацию клавиш. Это также относится к <Tab> / <C-I> , <CR> / <C-M> / <Esc> / <C-[> и т.д. (Единственное исключение - <BS> / <C-H> .) То же самое относится к клавишам Alt и не алфавиту. Это известная проблема и предмет различных дискуссий на vim_dev и IRC-канале #vim.

Некоторые люди (прежде всего Пол ЛеоНерд Эванс) хотят это исправить (даже для консоли Vim в терминалах, которые поддерживают это), и выдвинули различные предложения, ср. http://groups.google.com/group/vim_dev/browse_thread/thread/626e83fa4588b32a/bfbcb22f37a8a1f8

Но на сегодняшний день никаких патчей или добровольцев еще не появилось, хотя многие выразили желание иметь это в будущем выпуске Vim.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .