Скопировать всю строку в Vim



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

871   19  

19 ответов:

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

затем

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

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

The 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

YP или Yp или yyp.

copy and paste in vim

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

yy

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

p

yy

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

dd

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

p

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

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

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

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

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

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

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

yyp - помните это с "yippee!"

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

y7yp

этого:

первый, yy скопировать текущую строку, а потом p вставить.

yyp вставить после

yyP вставить перед

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

другой вариант будет идти с:

nmap <C-d> mzyyp`z

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

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

yy или Y скопировать строку
или
dd удалить строку

затем

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


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

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

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

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

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

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

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

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

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

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

в обычном режиме это copy .скопировать эту строку чуть ниже этой строки.

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

Если вы хотите дублировать строку и вставить ее сразу ниже текущего типа, как в Sublime Ctrl+Shift+D, затем вы можете добавить это в ваш .

imap <S-C-d> <Esc>Yp

мне нравится использовать это сопоставление:

:nnoremap yp Yp

потому что это делает его совместимым для использования вместе с родной

Comments

    Ничего не найдено.