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.