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