Ответы:
Как правило, d <motion> удалит из текущей позиции в конечную позицию после <motion>. Это означает, что:
Прочтите это, чтобы узнать обо всем, что можно сочетать с командой 'd'.
d<leftArrow>
делай» dh
, потому h
что это ключ к левому ходу
Я был в этом сценарии много раз. Я хочу избавиться от всех пробелов в строке 10, чтобы она присоединялась к строке 9 после запятой.
По сути, это простое соединение строк в VIM.
kJ
делает свое дело (смотрите ниже)
k
= Вверх, J
= Присоединить строку ниже к текущей с одним пробелом между ними. Вы также kgJ
можете присоединиться без пробела. gJ
= Присоединиться к строке ниже без пробелов между ними. Через cheatsheet
Чтобы ответить на пункт 3, diw
и daw
отлично.
db
удаляет буквы, предшествующие последней букве, но по-прежнему оставляет последнюю букву.
i
и a
делают в середине этих команд? Я знаю, что начало d
- это «удалить», и я предполагаю, что завершение w
- это «слово».
:help text-objects
. Начальный абзац очень краток и, я думаю, очень хорошо его описывает.
В режиме вставки:
В противном случае:
db
(если курсор стоит после слова) или bdw
d0
(или d^
если вы хотите удалить до первого непустого символа)dE
либо dtSpaceудалить до первого пробела, либо d/\sEnterудалить до следующего символа пробела.редактировать
Поскольку вопрос был изменен таким образом, что 3 - это удаление первого символа пробела слева, мой ответ должен измениться на:
dB
либо dShiftTSpaceдля удаления обратно к первому пробелу, либо d?\sEnterдля удаления до предыдущего символа пробела.Видеть:
:help motion.txt
:help WORD
bdw
. Оставшийся персонаж (тот, что изначально был под курсором) db
продолжал меня раздражать.
Я чувствую, что ни один из ответов не является полным:
Как правило, вы обычно начинаете операцию удаления, используя d<motion>
, и редко используя x
.
Примечание: если
N
не указано, ведет себя как если быN=1
(удаляет один символ)
Дискретные символы:
<N>x
- Удалить N символов справа
d<N><left-arrow>
- Удалить N символов слева
d<N><right-arrow>
- Удалить N символов справа
Границы слов:
Примечание. Первое предшествующее / последующее слово находится под курсором.
d<N>b
- Удалить с начала предыдущего N-го слова до текущей позиции
d<N>e
- Удалить с текущей позиции до конца следующего N-го слова
d<N>w
- То же, d<N>e
но с завершающим пробелом
diw
- Удалить все слово под курсором
daw
- То же, diw
но с завершающим пробелом
Границы линии:
d0
- Удалить с начала строки до текущей позиции
d^
- Удалить с первого символа без пробелов до текущей позиции
d$
- Удалить с текущей позиции до конца строки
/ <CR>x
(найдите пробел вперед, нажмите Enter, чтобы перейти туда, x, чтобы удалить)
Возможно, есть более волшебный способ сделать это, но я не знаю ни одного.
db
сложно вспомнить:5. dw or d<ctrl+rightarrow>
и6. db or d<ctrl+leftarrow>