Как отобразить ALT-возврат в .vimrc?

494
browning0

Я пытаюсь отобразить комбинацию левой клавиши 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
Ingo Karkat

Из-за способа обработки ввода с клавиатуры, к сожалению, сегодня это вообще невозможно, даже в 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.

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