Як вирізати цілу лінію у vim та вставити її?


198

Я знаю, як використовувати vкоманду vim, але мені потрібно щось, що видалить цілий рядок, і це повинно дозволити мені вставити ту саму лінію десь в іншому місці.

Відповіді:


84

Якщо натиснути Shift+ v, виберіть весь цей рядок, а натискання dвидалить його.

Ви також можете використовувати dd, що не вимагає введення візуального режиму.


38
Або ви можете натиснути vv або dd, які еквівалентні, не дратуючи візуального режиму.
jaked122

13
ddпростіше, ніж shift + v->d
Калонь Колоб

1
як щодо скасування ... Я приміряю свої документи і не можу їх скасувати.
Абхішек сахарн

19
Що з пастою ??
becko

1
Зазвичай я не кидаю коментарів, але факт, що цей хлопець не розповів, як вклеїти, і все-таки отримав прийняту відповідь, зроблену моїм днем
Крістіан Е.

421

ddв командному режимі (після натискання клавіші escape) буде перерізати рядок, pв командному режимі буде вставлено.

Оновлення:

Для бонусу, dа потім рух виріже еквівалент цього руху, тому dwвиріже слово, d<down-arrow>виріже цей рядок і рядок нижче, d50wскоротить 50 слів.

yyє лінією копіювання, і працює як dd.

D скорочення від курсору до кінця рядка.

Якщо ви використовували v(візуальний режим), слід спробувати V(режим візуальної лінії) та <ctrl>v(режим візуального блоку).


13
Хороша відповідь. Я б додав, Pщоб вставити рядок перед курсором у командному режимі. І <Ctrl-R>"вставити рядок у режимі вставки.
Бірей

13
І ]pобклеїти правильним відступом. Але ми повинні бути обережними, щоб тут не розміщувати весь посібник vim :).
DaedalusОсінь

16

Існує кілька способів вирізати лінію, яка dв звичайному режимі керується клавішею. Якщо ви використовуєте візуальний режим ( vклавішу), ви можете просто натиснути dклавішу, як тільки ви виділите область, яку потрібно вирізати. Перейдіть до місця, яке ви хочете вставити, і натисніть pклавішу для вставки.

Варто також зазначити, що ви можете скопіювати / вирізати / вставити з регістрів. Припустимо, ви не впевнені, коли або куди хочете вставити текст. Ви можете зберегти текст до 24 регістрів, визначених за алфавітом. Просто додайте свою команду '(одна цитата) та регістровий лист (через z). Наприклад, ви можете використовувати візуальний режим ( vклавішу), щоб вибрати якийсь текст, а потім набрати, 'adщоб вирізати текст і зберегти його в регістрі "a". Після того, як ви перейдете до місця, куди потрібно вставити текст, ви введете текст, 'apщоб вставити вміст регістру a.


14

Видаліть поточний рядок і скопіюйте у буфер:

d + d

Вставте вміст буфера обміну :

(Утримуйте) Shift+P


12

Скажімо, ви хотіли вирізати лінію bbbта вставити її під лінію---

Перед:

aaa
bbb
---

Після:

aaa
---
bbb
  1. Поставте курсор на лінію bbb
  2. Натисніть d+d
  3. Поставте курсор на лінію ---
  4. Натисніть p

введіть тут опис зображення


11
  1. натисніть "V" у звичайному режимі, щоб вибрати весь рядок
  2. потім натисніть "y", щоб скопіювати його
  3. перейдіть до місця, яке ви бажаєте вставити, і натисніть "p", щоб вставити після курсору, або "P", щоб вставити перед ним.


7

Найшвидший я знайшов через режим редагування:

  1. Натисніть, yyщоб скопіювати рядок.
  2. Потім ddвидалити рядок.
  3. Потім pнаклеїти лінію.

4

Всього три кроки.

  1. У командному режимі перейдіть до початкового положення тексту, який потрібно скопіювати, та натиснітьv
  2. Перейдіть до кінцевого положення тексту та натиснітьd
  3. Перейдіть до місця, яке потрібно вставити, і натиснітьp
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.