Дублируйте целую строку в Vim - PullRequest
       120

Дублируйте целую строку в Vim

1486 голосов
/ 16 сентября 2008

Как дублировать всю строку в Vim аналогично Ctrl + D в IntelliJ IDEA / Resharper или Ctrl + Alt + / в Eclipse?

Ответы [ 19 ]

2545 голосов
/ 16 сентября 2008

y y или Y для копирования строки
или
d d для удаления (обрезки) линии

тогда

p для вставки скопированного или удаленного текста после текущей строки
или
P для вставки скопированного или удаленного текста до текущей строки

381 голосов
/ 17 апреля 2012

Нормальный режим: см. Другие ответы.

Ex способ:

  • :t. продублирует строку,
  • :t 7 скопирует его после строки 7,
  • :,+t0 скопирует текущую и следующую строку в начало файла (,+ является синонимом диапазона .,.+1),
  • :1,t$ будет копировать строки от начала до позиции курсора до конца (1, является синонимом диапазона 1,.).

Если вам нужно переместить вместо копирования, используйте :m вместо :t.

Это может быть очень мощным, если вы объедините его с :g или :v:

  • :v/foo/m$ переместит все строки, не соответствующие шаблону «foo», в конец файла.
  • :+,$g/^\s*class\s\+\i\+/t. скопирует все последующие строки формы class xxx сразу после курсора.

Ссылка: :help range, :help :t, :help :g, :help :m и :help :v

280 голосов
/ 16 сентября 2008

YP или Yp или yyp.

231 голосов
/ 08 февраля 2014

copy and paste in vim

Не проще, чем это! Из обычного режима:

yy

затем перейдите на строку, в которую вы хотите вставить, и

p
49 голосов
/ 16 сентября 2008

у у

восстановит текущую строку, не удаляя ее

д д

удалит текущую строку

р

будет put линия, захваченная любым из предыдущих методов

38 голосов
/ 16 сентября 2008

Если вы хотите другой путь: -)

"ayy это сохранит строку в буфере a

"ap это поместит содержимое буфера a в курсор.

Есть много вариантов этого.

"a5yy это сохранит 5 строк в буфере a

см. http://www.vim.org/htmldoc/help.html для большего удовольствия

37 голосов
/ 16 сентября 2008

y y p - запомните это "yippee!"

Несколько строк с числом между:

у 7 у р

37 голосов
/ 16 сентября 2008

Сделайте это:

Сначала y y для копирования текущей строки, затем p для вставки.

21 голосов
/ 12 октября 2013

y y p - паста после

y y P - вставить до

11 голосов
/ 14 июля 2009

Другим вариантом было бы пойти с:

nmap <C-d> mzyyp`z

дает вам преимущество сохранения позиции курсора.

...