Я знаю, что могу использовать:
- Home в режиме вставки
- Esc+ iдля выхода из режима вставки и повторного входа в него, фактически переходя в начало строки.
Но ни то, ни другое меня не удовлетворяет. В первом случае мне нужно наклонить голову, чтобы ударить Home, потому что я не могу ударить вслепую. Во втором случае левая рука должна покинуть домашний ряд, чтобы ударить Esc, что тоже раздражает.
Есть предположения?
Ответы:
Ctrl+ Oв режиме вставки переводит вас в командный режим только для одного нажатия клавиши. Следовательно, Ctrl+ Oзатем Shift+ Iдолжен выполнить то, что вы ищете.
источник
Ctrl-o
последующим0
(немного более эффективным, чемCtrl-o
следуетShift-I
), так как вы автоматически вернетесь в режим вставки. В некоторых случаях может быть лучше , еслиCtrl-o
следовать за ним^
(чтобы перейти к первому непробельному символу строки).<C-O>
не то же самое,<C-[>
или<Esc>
хотя они могут выглядеть одинаково. Разница в том, что редактирование с обычным escape-символом + <что-то, что снова вернет вас в режим вставки> оставляет вам две правки, а <CO> оставляет вам одну. Это может помочь вам поддерживать более чистую историю отмен и иметь возможность повторно использовать эту вставку для вставки. Некоторые vim'ers утверждают, что вам следует обращать внимание на подобные вещи.Вы можете войти в режим вставки, используя
I
(заглавную i).Курсор будет помещен в начало строки.
Точно так же вы можете
A
добавить что-нибудь в конце строки.Хотя это не совсем решает проблему перемещения в режиме вставки.
Я только что проверил справку по режиму вставки, в режиме вставки нет комбинации клавиш для перемещения в начало строки.
Другая идея: переназначить новую команду только в режиме вставки
inoremap <C-i> <Home>
источник
У меня Ctrl + a и Ctrl + e сопоставлены с началом и концом строки соответственно. Это соответствует поведению большинства командных строк bash. У меня хорошо работает.
источник
<C-e>
копирует / записывает символ под курсором (<C-y>
для над курсором),<C-a>
вставляет все, что есть в вашем.-Регистре (точка-регистр). Этот регистр заполняется тем, что вы только что набрали, когда вы выходите из режима вставки (даже при использовании Ctrl-c (к которому вам по многим причинам не следует привыкать)).Если вы используете терминал MacOS, перейдите в «Настройки ...> Настройки> Клавиатура» и сопоставьте конечную клавишу с Ctrl-O $ (она отображается как \ 017 $), а затем используйте fn + left для имитации конечной клавиши. Сделайте то же самое для домашнего ключа. Escape-последовательность \ 033 [H также работает для дома.
источник
Лучше всего переназначить действие на другой ключ ( идеи см. В разделе Как переназначить <Ctrl-Home> для перехода к первой строке файла? )
Я бы подумал, как часто я использую эту «функцию», и сопоставил бы ее нажатию клавиши
источник
Вы можете сопоставить ключи с этим:
ссылка: http://vim.wikia.com/wiki/Quick_command_in_insert_mode
источник
У меня сработал ярлык (как мышечная память, так и интуитивность) - это отображение
__
(что является двойным_
), чтобы «вставить в начало текущей строки».Обоснование:
_
уже идет в начало строки_
не конфликтует ни с какими движениями (вы уже в начале строки)vimscript:
Это сложно, потому что простая альтернатива
nnoremap __ _I
заставляет vim задерживать нажатие,_
чтобы различать_
и__
.источник
источник
я использую эту команду, чтобы перейти к концу строки, не выходя из режима вставки
Аналогично перейти к началу строки будет:
источник