Как я могу быстро удалить строку в VIM, начиная с позиции курсора?

267

Я хочу иметь возможность удалить оставшуюся часть строки, с которой я начинаю, с позиции курсора в VIM. Есть ли простая команда, чтобы сделать это?

Чтобы проиллюстрировать это, это перед командой.

The quick brown dog jumps over the lazy fox.
     ^
     |----- Cursor is here.

Это после команды

The q
     ^
     |----- Cursor is here.
Энтони
источник

Ответы:

430

(Отредактировано, чтобы включить хорошие дополнения комментатора :)

Dили его эквивалент d$удалит остальную часть строки и оставит вас в командном режиме. Cили c$удалит оставшуюся часть строки и переведет вас в режим вставки, а новый текст будет добавлен в строку.

Это часть vitutorи vimtutorотличное «чтение» для начинающих Vim.

thiton
источник
1
Взрыв, я подумал, что это было что-то легкое, я думал, что какая-то комбинация dсопровождается чем-то Я подумал, что было бы быстрее разместить вопрос здесь, а также помочь другим людям, которые по умолчанию ищут в Интернете, прежде чем читать руководство.
Энтони
2
Или Cединственный «реальный» способ получить курсор в указанной позиции, хотя это переводит вас в режим вставки.
Уолтер
1
@Anthony: Существуют также « dследует что - то» -эквивалентным команды для D, где «что - то» является $движением: d$.
И.Б..
2
И если вы хотите оказаться в режиме вставки, используйте C(или c$)
Benoit
7
Я понимаю, что на это решение уже дан ответ, но я искал способ удалить всю строку с помощью VIM и нашел это. Оказалось, что вариант, который я искал, был ddиз командного режима. Я надеюсь, что это поможет любым другим, которые сталкиваются с этим.
Frito
41

Использование D. Смотрите документы для получения дополнительной информации.

lucapette
источник
21

Вы также можете быть заинтересованы C, он также удалит конец строки, как D, но дополнительно он переведет вас в режим вставки в месте расположения курсора.

Ксавье Т.
источник
9

Выполнить в командном режиме d$.

Роберт Мунтяну
источник
8
Dэто более быстрое решение для этого.
Седрик
5

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

Каждый ответ и комментарий, приведенный здесь по состоянию на октябрь 2018 года, ссылается на то, что обычно называют «действием сокращения», поэтому использование любого из них заменит то, что в настоящее время находится в неназванном регистре VIM . Этот регистр, как правило, обрабатывается как буфер обмена по умолчанию для копирования / вставки, поэтому ни один из этих ответов не будет работать должным образом, если вы удаляете остальную часть строки, чтобы вставить что-то в том же месте впоследствии, поскольку все, что было только что удалено, будет впоследствии вставлено вместо того, что было выдернуто раньше.

Истинная команда удаления в контексте OP - "_D(или, "_Cесли требуется режим вставки). Она отправляет удаленный контент в регистр черной дыры , обозначенный "_, где он больше никого не побеспокоит (хотя вы все еще можете отменить это действие, используя u).

Тем не менее, все, что было в последний раз восстановлено, сохраняется в регистре 0 , и даже если оно заменяется в безымянном регистре, оно все равно может быть вставлено с помощью "0p.

Узнайте больше о регистре черной дыры и регистрах в целом для дополнительного удовольствия VIM!

AFOC
источник
4

Dили ddудаляет и копирует строку в реестр. Вы можете использовать Vxкоторый удаляет только строку и остается в обычном режиме.

Бахман Эслами
источник