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

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

1156
16 сент. '08 в 18:02
источник поделиться
16 ответов

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

затем

p, чтобы вставить скопированный или удаленный текст после текущей строки
или
p, чтобы вставить скопированный или удаленный текст перед текущей строкой

1986
16 сент. '08 в 18:06
источник

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

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

330
17 апр. '12 в 18:17
источник

YP или YP или yyp.

266
16 сент. '08 в 18:07
источник

copy and paste in vim

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

yy

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

p
192
08 февр. '14 в 1:20
источник

y y

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

d d

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

p

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

38
16 сент. '08 в 18:04
источник

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

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

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

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

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

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

35
16 сент. '08 в 18:37
источник

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

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

y 7 y p

30
16 сент. '08 в 18:16
источник

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

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

28
16 сент. '08 в 18:04
источник

y y p - вставить после

y y p - вставить перед

16
12 окт. '13 в 21:23
источник

Вы также можете попробовать < C-x > < C-l > который будет повторять последнюю строку из режима вставки и выводит окно завершения со всеми строками. Он работает почти как < C-p >

10
18 сент. '08 в 23:32
источник

Еще один вариант:

nmap <C-d> mzyyp`z

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

10
14 июля '09 в 7:37
источник

Для тех, кто не знает vi, некоторые ответы сверху могут ввести его в заблуждение фразами типа "вставить... после/до текущей строки".
Он фактически" вставляет... после/до курсор".

y y или y, чтобы скопировать строку
или
d d, чтобы удалить строку

затем

p, чтобы вставить скопированный или удаленный текст после курсора
или
p, чтобы вставить скопированный или удаленный текст перед курсором


Для более привязки клавиш вы можете посетить этот сайт: vi Полный список привязки клавиш

9
12 мая '16 в 17:54
источник

Мне нравится: Shift-V (чтобы сразу выбрать целую строку и вы можете выбрать другие строки, если хотите), y, p

8
14 июля '09 в 7:45
источник

1 gotcha: когда вы используете "p", чтобы поместить строку, она помещает ее после строки, в которой находится ваш курсор, поэтому, если вы хотите добавить строку после строки, которую вы дергаете, не перемещайте курсор вниз, прежде чем положить новую строку.

3
16 сент. '08 в 18:06
источник

Для тех, кто начинает изучать vi, здесь представлено хорошее введение в vi путем перечисления бок о бок vi команд для обычного перемещения курсора редактора GUI и сочетаний клавиш. В нем перечислены все основные команды, включая yy (строка копирования) и p (вставить после) или p (вставить до).

vi (Vim) для пользователей Windows

1
10 февр. '16 в 16:23
источник

По умолчанию используется y y p, но я использую это повторное связывание в течение года или около того и люблю его:

" set Y to duplicate lines, works in visual mode as well. nnoremap Y yyp vnoremap Y y`>pgv

0
20 апр. '15 в 7:33
источник

Посмотрите другие вопросы по меткам или Задайте вопрос