Jak mogę użyć numeru linii, aby skopiować linię do miejsca, w którym znajduje się mój kursor?


20

Wiele razy jestem w podobnej sytuacji:

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

Prostym rozwiązaniem jest mm:1<CR>yy`mp- oznacz znak w linii 4, przejdź do linii 1, skopiuj go, wróć do znaku i wklej.

Czy istnieje krótsze / bardziej płynne rozwiązanie tego problemu? Robię to wystarczająco często, że cieszę się, że mogę to zrobić.

Odpowiedzi:


23

Wygląda jak skrzynka dla kopii ex ( :help :colub :help :t):

:1t4

lub używając pozycji kursora:

:1t.

Nie powoduje to skopiowania wiersza do rejestru Yank, który może, ale nie musi być tym, czego chcesz.


Nie używam wystarczająco kopii ex, dobra sugestia.
— jecxjo

10

Możesz go skrócić, nie używając znaków i szarpać linię bezpośrednio.

:1y<CR>p

Wersja komendowa yank ma {range}więc wybierz linię lub grupę linii.

Ponadto wartość zakresu może być bezwzględna lub względna. Linie nad kursorem to odległość ujemna, a poniżej są dodatnie. Więc szarpanie dwóch linii powyżej jest :-2yi szarpanie dwóch linii poniżej jest :+2y.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.