vim mapping ctrl-; - PullRequest
       19

vim mapping ctrl-;

9 голосов
/ 23 июня 2010

В моем случае кнопка перемещения вправо - ;

Я хочу Ctrl ; для перемещения курсора на 7 символов вправо,Я пробовал приведенное ниже отображение .vimrc, но оно не работает:

nmap <c-;> 7;

Ответы [ 3 ]

13 голосов
/ 23 июня 2010

Как и в предыдущем комментарии, кажется, что ";"не может быть в форме <C-;>.

Вы можете проверить ввод Ctrl + V + последовательность клавиш.

Ctrl + V + ; дает только ;, тогда как Ctrl + V + L дают ^L.

Итак, я полагаю, что vim не может распознать <C-;>.

У вас есть дополнительная информация на страницах справки по кодам клавиш:

:help keycodes
:help <C-
5 голосов
/ 23 июня 2010

Я не уверен, но это может быть потому, что <C-;> не сопоставляется с символом ASCII. Только @, A-Z, [, \, ], ^ и _ отображаются на символы ASCII (от 0 до 31 соответственно) при сочетании с Ctrl .

EDIT

Я провел поиск и нашел эту тему . В нем говорится, что gvim.exe работает так, как я предлагаю: используйте только допустимые управляющие символы, никаких других. Интересно, что vim.exe работает по-другому, и вы можете сделать отображение, которое хотите.

2 голосов
/ 08 марта 2016

Как говорили другие <c-;> невозможно сопоставить. Лучшее решение:

nmap <C-l> 7l
nmap <C-h> 7h

Вместо этого вы можете переназначить обычные клавиши управления курсором.
что-то вроде этого также будет работать:

nmap <C-Right> 7l
nmap <C-Left> 7h

Другой пример для изменения размера окон:

" resize horzontal split window
nmap <C-Up> <C-W>-<C-W>-
nmap <C-Down> <C-W>+<C-W>+
" resize vertical split window
nmap <C-Right> <C-W>><C-W>>
nmap <C-Left> <C-W><<C-W><
...