Быстрый рывок в Вим
Я часто оказываюсь в такой ситуации:
line i want to yank
.
.
.
[cursor position]
Я хочу выровнять строку и вставить в [cursor position]
.
Я делаю это с [n]k
, Y
, [n]j
, p
. Это много набирает;). Раньше я использовал:
:[line number]Y
а затем вставить, но это не работает с относительными номерами строк (relativenumber
).
Какой самый быстрый способ сделать такой захват/вставку, когда относительные числа включены?
Ответы
Ответ 1
Когда номер строки для копирования известен (абсолютный или абсолютный
относительный), удобным способом дублирования этой строки является использование :copy
команда. Например, команда Ex ниже копирует строку, которая равна четырем
линии выше и вставляет его ниже текущего.
:-4t.
Ответ 2
Если линия находится в пределах видимости (до или после позиции курсора), я обычно просто ищу ее (?line i want
), yank, затем перейдите ``
(назад в предыдущую позицию), затем p
.
Ответ 3
Я попробую:
- ?yank + Enter < == type
significant patten
для поиска назад
- yy
- Ctrl + O < == вернуться назад
- p
Ответ 4
:/your desired search for the specific line/ y
или
:N y
(где N
- конкретное число строк) скопирует определенную строку (и это может быть диапазон тоже). Теперь вы нажмете p, чтобы вставить его. Таким образом, вы не перемещаете курсор.
Ответ 5
Кстати, если я действительно намерен повторить строку, которую я использовал раньше в любом из открытых файлов, я просто использую ярлык ^X^L
в режиме вставки после ввода нескольких стартовых символов.
Скажем, я хочу повторить эту строку, которая многократно повторяется в моей программе:
for (int i = 0; i < numChildren; i++) {
Затем я начинаю с ввода for (in
, а затем просто ударяю ^X^L
, а Vim завершает его для меня. (На самом деле он ждет меня, чтобы принять его, если я снова сделаю ^L
, это покажет мне следующий вариант.)
Посмотрите ^X^L
, это очень удобно.
:help ^X^L
PS: Публикация в виде отдельного ответа, так как ваш первоначальный вопрос конкретно посвящен "yanking", и это автоматическое завершение, технически.
Ответ 6
Если строка скрыта из виду (добавление к Manish answer), мне удобно использовать
- разделите экран, набрав
:sp
, а затем
- найдите строку, которая будет дергана
- задержите шаблон в верхней части, а затем
- перейдите на нижний экран, используя CTRL - w - j, где курсор все еще помещен (в том же столбце), как это было, когда я
:sp
запустил буфер.