Как отключить TAB и не сделать Ctrl-I недействительным в VIM
Когда я использую vim в обычном режиме, я часто нажимаю клавишу TAB случайно, клавиша TAB делает то же самое, что и Ctrl-I по умолчанию. Я хочу сделать ключ TAB ничего не делать, поэтому я помещаю эту строку в файл vimrc:
nmap <TAB> :echo<CR>
Таким образом, ключ TAB ничего не сделает, но это сделало ключ Ctrl-я ничего не делаю.
Итак, как сделать TAB ничего не делать, а Ctrl-I работает так же, как и раньше в vim (в обычном режиме)?
Ответы
Ответ 1
Из-за того, что ввод с клавиатуры осуществляется внутренне, к сожалению, сегодня это вообще невозможно, даже в GVIM. Некоторые комбинации клавиш, такие как Ctrl + non-alphabetic, не могут быть отображены, а Ctrl + letter vs. Ctrl + Shift + letter не может быть выделен. (Если ваш терминал не отправляет для него отличный код termcap, что больше всего этого не делает.) Это также относится к <Tab>
/<C-I>
, <CR>
/<C-M>
и т.д. Это известная точка боли, а тема различных обсуждений на vim_dev и #vim IRC-канале.
Некоторые люди (прежде всего Пол ЛевНерд Эванс) хотят это исправить (даже для консоли Vim в терминалах, которые поддерживают это), и предложили различные предложения.
Но на сегодняшний день никаких патчей или добровольцев еще не вышли, хотя многие выразили желание иметь это в будущем выпуске Vim 8.
Ответ 2
Я бы посоветовал сделать <TAB>
что-то полезное:
nmap <TAB> <C-W>
nmap <TAB><TAB> <C-W><C-W>
таким образом вы можете использовать tab
для оконных операций. Конечно, с этим вы не можете иметь поведение ctrl-i
. Для этого: ,i
:
nnoremap ,i <C-I>
Ответ 3
Я обнаружил, что ctrl-tab
работает по умолчанию ctrl-i
, когда tab
переназначается.
Работает в macvim. Я не проверял других vims.