видалити рядок у vi


168

Як я можу видалити рядок у VI?

Ось що я зараз роблю:

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

5
Я пропоную прочитати washington.edu/computing/unix/vi.html, це дає вам основний огляд використання. Ось чіт-лист : tuxfiles.org/linuxhelp/vimcheat.html Завжди корисно поглянути на такі сторінки, перш ніж задавати тривіальні питання ...
Полемон

2
також є S для видалення рядка та введення вставки
Ben Creasy

Відповіді:


289

Натискання 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". Якщо ви зацікавлені в роботі над цим питанням, вам слід задати ще одне запитання.
Шон Дж. Гофф

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.