2

Это мой .vimrc

set mouse=a
set ttymouse=xterm2
set number
set smartindent
set tabstop=4
set shiftwidth=4
set expandtab
inoremap {      {}<Left>
inoremap {<CR>  {<CR>}<Esc>O
inoremap {{     {
inoremap {}     {}
inoremap (      ()<Left>
inoremap [      []<Left>
noremap ; l 
noremap l k 
noremap k j 
noremap j h 
set nocompatible
filetype plugin on

Я пытался переназначить HJKL в JKL; потому что это имело больше смысла для меня (мне не пришлось бы убирать руки с домашнего ряда, чтобы переместиться). Но кажется, что старые отображения все еще там. Так что теперь hjkl и jkl; будет перемещать курсор в направлении, создавая движение диагонального курсора при попытке пойти вверх или вниз.

Что я делаю неправильно? noremap должен удалить старые отображения, правильно?

РЕДАКТИРОВАТЬ: Я идиот, в vimrc были пробелы, которые облажались.

1 ответ1

0

Конечные пробелы в конце строк, которые задают новые привязки клавиш, также приводят к добавлению дополнительных пробелов. Вот почему OP получал движение диагонального курсора, когда они переназначали hjkl на jkl; , Это также относится и к любой переназначению.

Например, если в моем файле .vimrc есть следующее:

noremap a ik

a будет отображаться в комбинации клавиш ik последовательно (то есть нажатие i, а затем нажатие k).

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