Иногда в режиме вставки я бью <CR>
по ошибке, и мне приходится нажимать клавишу Backspace несколько раз (зависит от отступа), чтобы вернуться туда, где я был.
например
<div>
<p> This is some text []</p>
</div>
Курсор []
и я нажал <CR>
:
<div>
<p> This is some text
[]</p>
</div>
Теперь мне нужно дважды нажать клавишу Backspace, чтобы вернуться к предыдущей строке (этот случай не так уж и плох, но он не имеет большого отступа).
Знаете ли вы лучший способ сделать?
insert-mode
nobe4
источник
источник
ctrl+w
кажется, что дважды работать довольно легкоОтветы:
Как насчет:
<C-o>
выполнит команду нормального режима (:left 0
), которая удалит все отступы, это также поместит курсор в начало строки.<BS>
вернет вас к последней строке.Это немного похоже на «задом наперед
J
».К сожалению, отображение Shift + Enter или Ctrl + Enter не представляется возможным, поэтому я выбираю
<C-\>
, как "рядом с вводом".источник
<C-u>
вместо<C-o>:left 0<CR>
?J
": такfoo<CR>bar<C-\>
что оставит вас сfoobar
. ИМХО это полезнее, но YMMV.<C-u>
(т.е. i_CTRL-U ) должен быть таким же, как<C-o>:left 0<CR>
.foo<CR>bar<C-u>
оставит вас сfoo<CR>
(+ любой авто-отступ, который мог добавить Vim).<C-o>:left 0<CR>
всегда будет вести себя одинаково независимо от положения курсора.У меня это по моему
vimrc
, вторая часть актуальна:Что это делает: каждый раз, когда вы нажимаете
Enter
в режиме вставки, он также «нарушает последовательность отмен, запускает новое изменение» (см.h: i_CTRL-G_u
). Это означает, что если вы попалиEnter
по ошибке, теперь вы можете отменить изменения, не удаляя предыдущие вставленные строки, либо с помощьюESC u a
, либо с помощьюCtrl-o u
, как предложил Statox. В принципе, каждая строка может быть отменена отдельно.источник
РЕДАКТИРОВАТЬ / ОБНОВИТЬ: Если вам случится использовать эмуляцию Vim в Emacs, он же злой режим , вы можете использовать этот пакет для аналогичного эффекта.
источник
<c-y>
относится к всплывающему меню.Ctrl-y
в режиме вставки завершит текущий выбор всплывающих окон, и приведенное выше сопоставление позволитEnter
завершить тоже."<c-g>u<cr>"
на&paste ? "<cr>" : "<c-g>u<cr>"
, иначе в следующий раз, когда вы по ошибке вставите 200 строк HTML-кода, вам будет очень весело отменить его. :)paste
backspace
опция.Я так и делаю Ctrl-wBackspace.
Ctrl-wудалить последнее слово (я забыл, если это стандартный vim или нет), и так как это просто пробелы, я вернусь к началу строки. Затем Backspaceперенесет меня на предыдущую строчку, где я был.
источник
Ctrl-w
использовании в режиме вставки. Но Carpetsmoker ♦ все еще быстрее. Таким образом, связывание по умолчанию `Ctrl- \` не кажется таким полезным.:help i_CTRL-W
. А нажатие на нее дважды, кажется, тоже помогает?<C-u>
может быть более полезным, поскольку он удаляет все символы в новой строкеМой выход из этого (из режима вставки) UpCtrl-oJDel. Возможно, не самая эффективная комбинация, но это то, что я делаю, не думая об этом.
источник