Мне нравится использовать tab для перехода между разделенными окнами, поэтому у меня есть map <tab> <C-W><C-W>
в моем .vimrc. Тем не менее я заметил, что это делает так, что Ctrl+I больше не ведет себя как Ctrl+I, а как Ctrl+W, Ctrl+W. Как я могу переназначить только <tab>
но не <C-i>
?
2 ответа
Из-за способа обработки ввода с клавиатуры, к сожалению, сегодня это вообще невозможно, даже в GVIM. Некоторые сочетания клавиш, такие как Ctrl + не алфавитный, не могут быть сопоставлены, и Ctrl + буква против Ctrl + Shift + буква не может быть различена. (Если ваш терминал не отправляет для него отдельный код termcap , чего большинство не делает.) В режиме вставки или командной строки попробуйте ввести комбинацию клавиш. Если ничего не происходит / вставлено, вы не можете использовать эту комбинацию клавиш. Это также относится к <Tab>
/ <C-I>
, <CR>
/ <C-M>
/ <Esc>
/ <C-[>
и т.д. (Единственное исключение - <BS>
/ <C-H>
.) Это известная проблема и предмет различных дискуссий на vim_dev и IRC-канале #vim.
Некоторые люди (прежде всего Пол ЛеоНерд Эванс) хотят это исправить (даже для консоли Vim в терминалах, которые поддерживают это), и выдвинули различные предложения, ср. http://groups.google.com/group/vim_dev/browse_thread/thread/626e83fa4588b32a/bfbcb22f37a8a1f8
Но на сегодняшний день никаких патчей или добровольцев еще не появилось, хотя многие выразили желание иметь это в будущем выпуске Vim 8.
Не все ярлыки возможны в Vim, особенно если он работает под терминалом. Я не рекомендую использовать ярлык для этой цели. Но альтернативное решение может быть следующим:
" Note: Allows faster switching between windows with "Ctrl+w"! By Questor
nnoremap <silent> <C-w> <C-w><C-w>
inoremap <silent> <C-w> <Esc><C-w><C-w>
vnoremap <silent> <C-w> <Esc><C-w><C-w>
Смотрите пример использования в https://github.com/eduardolucioac/groovim/blob/master/.vimrc
[] 'S