VIM навигация в режиме вставки - PullRequest
9 голосов
/ 06 января 2012

В VIM меня больше всего беспокоит то, что нужно двигаться в режиме вставки.С любыми другими программами я могу использовать клавиши со стрелками для перемещения, но с помощью VIM я научился использовать h / j / k / l, и чтобы войти в этот режим, я должен нажать escape, затем снова I, Есть ли более быстрый способсделать это?

Ответы [ 6 ]

11 голосов
/ 06 января 2012

Моя кнопка выхода отображается на jj.

imap jj <ESC>

Таким образом, когда я хочу быстро войти в обычный режим, я дважды нажимаю jj, и мои пальцы находятся в хорошем положении, чтобы начать навигацию.

Это может показаться неловким с самого начала, но как только вы приобретете мышечную память, это будет похоже на молнию.

6 голосов
/ 25 января 2016

Вы можете временно выйти из режима вставки, набрав ^ O для навигации.Полезно для обхода автоматически вставляемых закрывающих скобок.

Большую часть времени vim понимает кнопки перемещения страницы, если ваш терминал ему известен.Оригинальный vi этого не сделал, и эта команда всегда была там.

Полезная мышечная память:

^ Oo - остановка и открытие строки ниже, заглавная буква O выше ^ OA - переход к концустроки и продолжайте вставлять ^ OI - Начните вставку в начале строки

В качестве отступления:

Я использовал vi в системе V еще назад, по крайней мере 23 года назад.Лично мне кажется, что идея иметь философию vi очень забавная.Это была прагматичная замена бывшего написанного одиноким программистом в спешке.Его прагматизм - вот почему он выжил, потому что его было легко перенести на любой Unix.Чтобы получить лучшее, вы должны научиться использовать f, t, запятую и точку с запятой - они могут сэкономить вам много усилий, когда вы используете их с помощью c.

2 голосов
/ 26 сентября 2013

Вы можете использовать Ctrl + C для выхода из режима вставки.Добавление вещей в ваш файл vimrc имеет оговорку: они не работают, если вы находитесь на удаленном сервере.

2 голосов
/ 26 июля 2012

используйте CTRL- [

вот предложение (вероятно, от Брэма) в файле справки insert.txt для: h i_CTRL - [

"Примечание. Если клавиатуру трудно нажать на клавиатуре, приучите себя использовать клавиши CTRL - [."

1 голос
/ 01 августа 2015

Если в вашем файле vimrc есть строка, похожая на set term=ansi, закомментируйте ее. После этого я смог без проблем перемещаться в режиме вставки с помощью клавиш со стрелками.

0 голосов
/ 24 июня 2018

Если вы хотите переместиться более чем на одну или две позиции ...

... лучший выбор - нажать ESC, переместиться и снова вернуться в режим вставки.

Нет смысла создавать сопоставления, такие как <C-h>, чтобы двигаться влево, а затем начинать нажимать его слишком много раз ... как пользователь vim, вам не следует нажимать одну и ту же клавишу несколько раз, чтобы добиться умного движения.

(Если клавиша ESC не находится рядом с вашими пальцами, было бы неплохо создать для нее отображение.)

Если вы хотите переместить ОДИН или ДВЕ позиции в режиме вставки ...

... хорошим выбором будет определение некоторых движений с помощью клавиши <Leader>:

(я использую , как <Leader>, потому что он чувствуется близко и удобно для моих пальцев)

noremap! <Leader>h <left>   "move cursor left
noremap! <Leader>j <down>   "move cursor down
noremap! <Leader>k <up>     "move cursor up   
noremap! <Leader>l <right>  "move cursor right
noremap! <Leader>w <esc>wi  "move one word forward
noremap! <Leader>e <esc>ei  "move forward to the end of word
noremap! <Leader>b <esc>bi  "move one word backward
...