Как вырезать всю строку в vim и вставить ее?


198

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

Ответы:


84

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

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


38
Или вы можете нажать vv или dd, что эквивалентно без раздражающей визуальной активации режима.
jaked122

13
ddлегче чем shift + v->d
каньон Колоб

1
что насчет отмены ... Я пытаюсь справиться со своими документами и не могу их отменить.
Абхишек Сахарн

19
Как насчет пасты?
becko

1
Обычно я не оставляю комментарии, но тот факт, что этот парень не сказал, как вставить и все еще получил принятый ответ, сделал мой день
Кристиан Э.

422

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

Обновить:

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

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

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

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


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

13
И ]pвставить с правильным отступом. Но мы должны быть осторожны, чтобы не публиковать здесь все руководство по vim :).
DaedalusFall

16

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

Также стоит упомянуть, что вы можете копировать / вырезать / вставить из регистров. Предположим, вы не уверены, когда и где вы хотите вставить текст. Вы можете сохранить текст до 24 регистров, обозначенных буквой алфавита. Просто добавьте в свою команду '(одинарную кавычку) и регистрационную букву (через z). Например, вы можете использовать визуальный режим ( vключ), чтобы выбрать какой-то текст, а затем набрать 'adтекст, чтобы вырезать текст и сохранить его в регистре «а». Как только вы перейдете к месту, куда вы хотите вставить текст, вы наберете текст, '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. затем нажмите «у», чтобы скопировать его
  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.