Почему отображение <TAB>
влияет на <C-I>
?Краткий ответ - «исторические причины», датируемые еще до первоначального «vi».
Код ASCII для <TAB>
равен 9, так же, как <CTRL-I>
.Поскольку терминалы получают свои входные данные, закодированные в ASCII, они не могут определить, поступил ли этот сигнал «TAB» от фактической клавиши <TAB>
или от пользователя, удерживающего CTRL
и нажимающего I
.Поскольку Vim изначально был написан для работы на терминалах, он также не может определить разницу.
Пару других пар неразличимых клавиш составляют <C-M>
с <Return>
и <C-[>
с <Esc>
.
Возможно, есть какой-то загадочный способ определить разницу между ними (более вероятно, если вы используете GVim), но если есть, я этого не знаю.В качестве обходного пути вы можете использовать nnoremap <SomeOtherKey> <C-I>
, чтобы присвоить исходную функцию <C-I>
какой-либо другой клавише.