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


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


1277


источник


Ответы:


Y Y или Y скопировать строку
или
d d удалить (разрезать) строку

тогда

п вставить скопированный или удаленный текст после текущая строка
или
п вставить скопированный или удаленный текст до текущая строка


2202



Обычный режим: см. Другие ответы.

бывший путь:

  • :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


349



YPили Ypили yyp,


271



copy and paste in vim

Не получается проще! Из нормального режима:

yy

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

p

209



Y Y

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

d d

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

п

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


42



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

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

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

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

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

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


35



Сделай это:

Первый, Y Y для копирования текущей строки, а затем п вставить.


32



yyp - remember it with "yippee!"

Multiple lines with a number in between:

y7yp


32



yyp - paste after

yyP - paste before


19



You can also try <C-x><C-l> which will repeat the last line from insert mode and brings you a completion window with all of the lines. It works almost like <C-p>


11



Another option would be to go with:

nmap <C-d> mzyyp`z

gives you the advantage of preserving the cursor position.


11



For someone who doesn't know vi, some answers from above might mislead him with phrases like "paste ... after/before current line


9