шпаргалка - новая строка vim




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

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


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


Вы также можете попробовать <Cx> <Cl>, который будет повторять последнюю строку из режима вставки и выводит окно завершения со всеми строками. Он работает почти как <Cp>


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

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


Другой вариант:

nmap <C-d> mzyyp`z

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


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

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

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

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

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

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


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

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


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


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

Способ 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 формы class xxx сразу после курсора.

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


Я знаю, что опаздываю на вечеринку, но что угодно; У меня это в моем .vimrc:

nnoremap <C-d> :copy .<CR>
vnoremap <C-d> :copy '><CR>

команда :copy просто копирует выбранную строку или диапазон (всегда целые строки) ниже номера строки, указанного в качестве аргумента.

В нормальном режиме это означает, что это copy . скопируйте эту строку чуть ниже этой строки .

И в визуальном режиме он превращается в '<,'> copy '> copy от начала выбора до конца выбора до строки ниже конца выделения .


YP или Yp или yyp .


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

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


y y p - помните это с помощью «yippee!».

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

y 7 y p


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

yy

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

p




vi