vim: отображение ctrl-0 на ctrl-9? - PullRequest
18 голосов
/ 18 января 2011

Почему я не могу сопоставить ни одной из * команд map (nmap, imap и т. Д.) С Ctrl 0 до Ctrl 9 нажатия клавиш?Фактически, кажется, что некоторые из них, такие как Ctrl 3 , связаны с ^[ на уровне X-Window.Как заставить vim переопределить эти привязки по умолчанию?

т.е. если я сделаю imap <C-3> fancystuffhere, то набрав Ctrl 3 в режиме вставки, я переключусь в обычный режимвставки "необычных вещей".

Я нахожусь на Linux / X11.

Ответы [ 2 ]

21 голосов
/ 18 января 2011

Поскольку и vim, и gvim используют очередь байтов вместо очереди событий нажатия клавиши, поэтому значения от 0x40 (@) до 0x5F (_) (включая диапазон 0x41-0x5A (AZ)) имеют соответствующие управляющие символы (выможно получить их коды, вычитая 0x40 из их значения), никакие символы выше и выше этого диапазона не могут использоваться вместе с C-.Это также причина, по которой C-S- для буквенно-цифровых клавиш не работает даже в gvim (функциональные клавиши генерируют более одного байта, поэтому <C-S-F1> может работать).Замена <C-3> на <ESC> выполняется терминалом, вы можете попробовать отобразить его практически в любом графическом приложении и увидеть, что <Esc> не отображается ..

2 голосов
/ 13 декабря 2012

Способ, которым я выполняю это в Windows, заключается в использовании AutoHock и повторного отображения CTRL + 1 , CTRL + 2 и т. Д. на CTRL + F1 , CTRL + F2 и т. д.

Я знаю, что вы работаете в Linux, поэтому не подходит для вас, но подумал, что упомяну это для всех, кто интересуется

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...