Скажите, что я на линии 20, и я хотел бы вырвать строку 4, как я могу это сделать?
И точно так же, как я могу выдернуть линию относительно моей позиции курсора, скажем, на 3 строки вверх?
Скажите, что я на линии 20, и я хотел бы вырвать строку 4, как я могу это сделать?
И точно так же, как я могу выдернуть линию относительно моей позиции курсора, скажем, на 3 строки вверх?
Ответы:
От :help :yank:
:[range]y[ank] [x] Yank `[range]` lines [into register x].
Итак, чтобы восстановить строку 4, нужно набрать:
:4yank
Обратите внимание, что вы можете легко сделать это из режима вставки с помощью <C-o>; это позволяет вам выполнить одну команду, после чего вы вернетесь в режим вставки; например:
<C-o>:4yank
Конечно, вы можете использовать и другие диапазоны. Некоторые примеры:
:1,3yank:%yank:.,$:yank:.,+3yank:-3,.yank:-3yankСамые полезные вещи, которые нужно помнить о диапазонах:
:line1,line2command..Является текущей строкой (вы на самом деле можно опустить точку , в большинстве случаев, :.,+3yankи :,+3yankто же)+nи -n.Смотрите :help [range]для получения дополнительной информации.
:4yankс:4y
Помимо команд ex-mode, которые вы получили, вы можете добиться этого и в командном режиме, например, с помощью: 4GY''-, что означает: перейти к строке 4 ( 4G), yank line ( Y) и вернуться к предыдущей строке ( '').
Вы также можете использовать метки прыжка; для вашего второго вопроса, например: mm3kY'm- что означает: установить метку m ( mm), пройти три строки вверх ( 3k), yank line ( Y), вернуться к метке m ( 'm).
Просто наберите
:4y
выдернуть 4-ю линию
это войдет в неназванный регистр. Затем (например) вы можете использовать его, pчтобы поместить его в другом месте. Вы также можете использовать [n]p, например, 10p, чтобы вставить его 10 раз.
Вы можете поместить его в именованный регистр, такой как «а» с
:4y a
4G"ayy.
Ты можешь сделать
:10y <Enter> (to copy the line 10)
p (paste line 10 where the cursor is)
Настройка относительного числа также помогает перемещаться между строками кода.
:set relativenumber
Теперь вы можете скопировать 5-ю строку над курсором с помощью:
:-5y <Enter>
:p (to paste)