Скажите, что я на линии 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)