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
не становится проще, чем это! Из обычного режима:
yyзатем перейдите к строке, которую вы хотите вставить и
p
yy
будет дергать текущую строку, не удаляя ее
dd
удалит текущую строку
p
будет
putстрока, захваченная любым из предыдущих методов
если вы хотите другой способ :-)
"ayyэто сохранит строку в буфереa
"apэто поместит содержимое буфераaна курсор.есть много вариантов на этот счет.
"a5yyэто будет хранить 5 строк в буфереaсм.http://www.vim.org/htmldoc/help.html для большего удовольствия
вы также можете попробовать
, который повторит последнюю строку из режима вставки и принесет вам окно завершения со всеми строками. Он работает почти как
для тех, кто не знает vi, некоторые ответы сверху могут ввести его в заблуждение такими фразами, как "вставить ... после / до текущая строка".
Это на самом деле "вставить ... после / до курсор".
yy или Y скопировать строку
или
dd удалить строкузатем
p to вставьте скопированный или удаленный текст после the курсор
или
P, чтобы вставить скопированный или удаленный текст до the курсор
Дополнительные клавиши, вы можете посетить этот сайт: vi полный список привязки ключей
Мне нравится: Shift+v (чтобы сразу выбрать всю строку и позволить вам выбрать другие строки, Если вы хотите), y, p
1 понял: когда вы используете "p", чтобы поставить линию, он ставит ее после линия, на которой находится курсор, поэтому, если вы хотите добавить строку после строки, которую вы дергаете, не перемещайте курсор вниз по строке перед установкой новой строки.
для тех, кто начинает изучать vi, вот хорошее введение в vi, перечисляя бок о бок команды vi к типичному движению курсора редактора графического интерфейса Windows и клавишам быстрого доступа. В нем перечислены все основные команды, включая yy (копировать строку) и p (вставить после) или P(вставить перед).
по умолчанию 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