удалить строку в vi


170

Как я могу удалить строку в VI?

Вот что я сейчас делаю:

  1. Откройте терминал alt+ ctrl+t
  2. vi a.txt
  3. Я перемещаю курсор на строку, которую хочу удалить, и какую комбинацию клавиш следует использовать для удаления строки в редакторе vi ?

5
Я предлагаю вам прочитать washington.edu/computing/unix/vi.html, он дает вам общий обзор использования. Вот чит-лист : tuxfiles.org/linuxhelp/vimcheat.html Всегда полезно взглянуть на подобные страницы, прежде чем задавать тривиальные вопросы ...
polemon

2
есть также S для удаления строки и ввода insert
Ben

Ответы:


291

Нажатие ddудалит эту строку (на самом деле это отрежет ее). Таким образом, вы можете вставить его через p.


22

Как уже говорили другие, это ddесли вы находитесь в обычном режиме (нажмите ESC), чтобы убедиться, что вы находитесь в обычном режиме, но по умолчанию вы будете. Возможно, вы обнаружили, что vi действует не так, как вы ожидаете, что редактор будет действовать. Он довольно уникален, и эти уникальные функции делают его чрезвычайно мощным и быстрым в работе. Если вы хотите узнать больше, вы можете запустить vimtutorиз командной строки, и вы получите быстрое (может быть, час чтения / эксперимент) учебник по основам его использования.

Теперь вы можете использовать редактор с более привычным интерфейсом. Большинство систем имеют nano. Вы можете напечатать, nano a.txtчтобы открыть свой файл в nano. Вы даже можете пойти дальше - нет никаких причин использовать редактор на основе терминала. Поскольку вы упомянули об использовании ( Ctrl+ Alt++ T), и это ярлык по умолчанию в Ubuntu и некоторых других дистрибутивах Gnome, поэтому я был бы удивлен, если бы вы не geditустановили. В командной строке попробуйте, gedit a.txtи вы получите графический редактор.


Это нужно нескольким людям. Если вы регулярно редактируете текстовые файлы, стоит изучить vim. Если вы этого не сделаете, и вы просто пытаетесь следовать некоторым инструкциям, чтобы что-то заработало, то, вероятно, оно того не стоит, если вы просто не заинтересованы в том, чтобы попробовать другое программное обеспечение и изучить новые вещи.
Шон Дж. Гофф

Я запустил vimtutor в командной строке, и он открыл vim с временным. файл. Я сделал какую-нибудь ошибку?
IM-JM

@ im-jm Не думаю, что вы допустили ошибку, но ваша система может иметь необычную конфигурацию. Он должен открыть документ, который начинается с «Добро пожаловать в VIM Tutor». Если вы заинтересованы в проработке этого, вы должны опубликовать еще один вопрос.
Шон Дж. Гофф

12

Чтобы удалить строку под курсором, используйте dd.

Команда delete принимает все обычные позиционные модификаторы, поэтому, если вы находитесь в начале строки ниже той, которую хотите удалить, вы можете просто dkперейти в режим удаления и переместиться на одну строку вверх, удаляя все, что прошел курсор.

Вы также можете указать повторение, поэтому 5ddудаляете строку под курсором пять раз, эффективно удаляя текущую и следующие четыре строки.


8
Или d5d. Я не знаю почему, но я предпочитаю это. (Забавный факт: NdMdудаляет N × M строк)
Random832

7

Esc dd после перехода на линию, которую вы хотите удалить


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

3
Выход необходим, если вы используете клавиши со стрелками в режиме вставки, чтобы перейти к правой строке.
Александр

1

В визуальном режиме

Shift + V, выберите линии, затем D

Ctrl + V, выберите столбцы, затем D

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