Как я могу быстро удалить строку в 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.


1
Взрыв, я подумал, что это было что-то легкое, я думал, что какая-то комбинация dсопровождается чем-то Я подумал, что было бы быстрее разместить вопрос здесь, а также помочь другим людям, которые по умолчанию ищут в Интернете, прежде чем читать руководство.
Энтони

2
Или Cединственный «реальный» способ получить курсор в указанной позиции, хотя это переводит вас в режим вставки.
Уолтер

1
@Anthony: Существуют также « dследует что - то» -эквивалентным команды для D, где «что - то» является $движением: d$.
И.Б..

2
И если вы хотите оказаться в режиме вставки, используйте C(или c$)
Benoit

7
Я понимаю, что на это решение уже дан ответ, но я искал способ удалить всю строку с помощью VIM и нашел это. Оказалось, что вариант, который я искал, был ddиз командного режима. Я надеюсь, что это поможет любым другим, которые сталкиваются с этим.
Frito


21

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




5

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

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

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

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

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


4

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.