Я пытался следовать следующему:
Как удалить выделенный текст в редакторе VI
но
5dd
дает
E492: Команда не редактора: 5dd
Затем я попробовал:
5d
Что удаляет только одну строку. Как удалить несколько строк?
Я пытался следовать следующему:
Как удалить выделенный текст в редакторе VI
но
5dd
дает
E492: Команда не редактора: 5dd
Затем я попробовал:
5d
Что удаляет только одну строку. Как удалить несколько строк?
Ответы:
Похоже, вы вводите команды в командном режиме (он же «Ex-режим»). В этом контексте
:5d
удалил бы строку номер 5, ничего больше. Чтобы5dd
работать по назначению, то есть удалить пять следующих друг за другом строк, начинающихся с курсора, введите его в обычном режиме и не используйте перед командами префикс:
.источник
Мне это легче
/superuser/170795/how-can-i-select-and-delete-lines-of-text-in-vi
источник
Вы можете удалить несколько строк (диапазона), если знаете номера строк:
Примечание: d означает удаление
где
start_line_no - это начальная строка, которую вы не хотите удалить, а end_line_no - конечная строка, которую вы не хотите удалять. Строки между началом и концом, включая начало и конец, будут удалены.
Например:
Строки между 45 и 101, включая 45 и 101, будут удалены.
источник
$
для обозначения последней строки в файле. Так:45,$d
удалил бы каждую строку от 45 до конца./<\/div>/
:.,[end_line_no]d
Команды, перечисленные для использования в обычном режиме (префикс с :для командного режима).
Проверено в Vim.
По сумме строки:
По номерам строк:
Backwards range given, OK to swap (y/n)?
источник
Если вы предпочитаете метод невизуального режима и подтверждаете номера строк, я хотел бы предложить вам другой простой способ.
пример
Мой метод предлагает вам ввести следующую команду в командном режиме:
Он гласит:
Обратите внимание, что
vim
вы можете использоватьgg
вместоG
.Сравните с ответом @Bonnie Varghese:
Приведенная выше команда из его ответа требует ввода 9 раз, в том числе enter, где мой ответ требует ввода 8–10 раз. Таким образом, скорость моего метода сопоставима.
Лично я сам предпочитаю
45Gd101G
более:45,101d
, потому что я , как приставать к синтаксису команды ВП, в данном случае является:источник
d5d "разрезает" пять строк
Обычно я просто кидаю число посередине, например:
d7l = удалить 7 букв
источник
Нажмите кнопку, Escчтобы убедиться, что вы не находитесь в режиме редактирования. Установите курсор на первую строку, которую нужно удалить. Войдите
:5dd
. Текущая строка и следующие четыре строки должны быть удалены.Либо, если у вас включена нумерация строк ...
Нажмите кнопку, Escчтобы убедиться, что вы не находитесь в режиме редактирования. Введите,
:#,#d
где '#' означает номера начальной и конечной строки, которую необходимо удалить.источник
Тип (для пронумерованных строк).
:set number
источник
Если вы хотите удалить диапазон ПОСЛЕ запуска определенной строки, вы можете использовать что-то вроде этого
Это удаляет 11 строк (включительно) после каждой встречи с
^TMPDIR
.источник
это dxd, а не ddx
если вы хотите удалить 5 строк, наведите курсор на начало первой удаляемой строки и d5d
источник
Чтобы удалить все строки, используйте - ESC gg dG Чтобы удалить несколько строк, скажем, 5, затем используйте ESC 5dd
источник
Это можно было сделать следующим образом ..
источник