Как вырезать всю строку в vim и вставить ее? - PullRequest
179 голосов
/ 08 января 2012

Я знаю, как использовать команду v в vim, но мне нужно что-то, что удалит всю строку, и это позволит мне вставить ту же строку в другое место.

Ответы [ 8 ]

377 голосов
/ 08 января 2012

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

Обновление:

Для бонуса d, а затем движение обрезает эквивалент этого движения, поэтому dw обрежет слово, d<down-arrow> обрежет эту строку, а строка ниже, d50w обрезает 50 слов .

yy является строкой копирования и работает как dd.

D от курсора до конца строки.

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

74 голосов
/ 27 марта 2013

Нажатие Shift + v выделит всю эту строку, а нажатие d удалит ее.

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

16 голосов
/ 08 января 2012

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

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

12 голосов
/ 01 мая 2018

Удалить текущую строку и скопировать в буфер обмена:

d + d

Вставить буфер обменасодержание :

(удержание) Shift + P

11 голосов
/ 22 июня 2016
  1. нажмите 'V' в обычном режиме, чтобы выделить всю строку
  2. , затем нажмите 'y', чтобы скопировать его
  3. , перейдите в место, куда вы хотите вставить его, и нажмите 'p 'для вставки после курсора или' P 'для вставки перед ним.
9 голосов
/ 15 января 2019

Допустим, вы хотели вырезать линию bbb и вставить ее под линию ---

До:

aaa
bbb
---

После того, как:

aaa
---
bbb
  1. Наведите курсор на строку bbb
  2. Нажмите d + d
  3. Наведите курсор на строку ---
  4. Нажмите p

enter image description here

7 голосов
/ 08 января 2012

Да, используйте dd в командной строке.Также я рекомендую распечатать полезное изображение с помощью горячих клавиш ViM, доступных на http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html

3 голосов
/ 12 июля 2016
  1. В командном режиме перейдите к начальной позиции текста, который вы хотите скопировать, и нажмите 'v'
  2. Перейти к конечной позиции текста и нажмите «d»
  3. Перейдите в место, которое вы хотите вставить, и нажмите «p»
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...