Как я могу использовать номер строки, чтобы скопировать строку туда, где находится мой курсор?

20

Много раз я нахожусь в ситуации, подобной этой:

1. <Line 1>
2. <Line 2>
3. <Line 3>
4. <Cursor is here>
5. <I want to copy line 1 here>

Простое решение - mm:1<CR>yy`mpсделать отметку в строке 4, перейти к строке 1, скопировать ее, вернуться к отметке и вставить.

Есть ли более короткое / более жидкое решение для этого? Я делаю это достаточно часто, чтобы с радостью сделать для этого карту.

Даниэль Кляйнштейн
источник

Ответы:

23

Выглядит как случай для ex copy ( :help :coили :help :t):

:1t4

или, используя позицию вашего курсора:

:1t.

Это не копирует строку в регистр янки, что может или не может быть то, что вы хотите.

PhilippFrank
источник
Я не использую ex copy достаточно, хорошее предложение.
jecxjo
10

Вы можете сократить его, не используя метки, и дернуть линию напрямую.

:1y<CR>p

Командная версия yank принимает {range}так выбрать строку или группу строк.

Кроме того, значение диапазона может быть абсолютным или относительным. Линии над курсором находятся на отрицательном расстоянии, а внизу - на положительном. Таким образом, выдергивание двух строк выше - это :-2yи выдергивание двух строк ниже - это :+2y.

jecxjo
источник