14

Мне нравится использовать tab для перехода между разделенными окнами, поэтому у меня есть map <tab> <C-W><C-W> в моем .vimrc. Тем не менее я заметил, что это делает так, что Ctrl+I больше не ведет себя как Ctrl+I, а как Ctrl+W, Ctrl+W. Как я могу переназначить только <tab> но не <C-i>?

2 ответа2

10

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

0

Не все ярлыки возможны в 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

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