Powiedz, że jestem na linii 20 i chciałbym szarpać linię 4, jak mogę to zrobić?
I podobnie, jak mogę szarpać linię względem mojej pozycji kursora, powiedzmy, że 3 linie w górę?
Powiedz, że jestem na linii 20 i chciałbym szarpać linię 4, jak mogę to zrobić?
I podobnie, jak mogę szarpać linię względem mojej pozycji kursora, powiedzmy, że 3 linie w górę?
Odpowiedzi:
Od :help :yank
:
:[range]y[ank] [x] Yank `[range]` lines [into register x].
Aby szarpać linię 4, należy wpisać:
:4yank
Uwaga: możesz to łatwo zrobić w trybie wstawiania za pomocą <C-o>
; pozwala to na wykonanie jednego polecenia, po którym powracasz do trybu wstawiania; na przykład:
<C-o>:4yank
Możesz oczywiście użyć także innych zakresów. Kilka przykładów:
:1,3yank
:%yank
:.,$:yank
:.,+3yank
:-3,.yank
:-3yank
Najbardziej przydatne rzeczy do zapamiętania na temat zakresów:
:line1,line2command
..
jest bieżącą linią (w większości przypadków można pominąć kropkę; :.,+3yank
i :,+3yank
są takie same)+n
i -n
.Zobacz :help [range]
więcej informacji.
:4yank
z:4y
Oprócz poleceń ex-mode, które masz, możesz to również osiągnąć w trybie poleceń, np .: przez 4GY''
co: goto linia 4 ( 4G
), yank line ( Y
) i powrót do poprzedniej linii ( ''
).
Możesz także użyć znaków skoku; na drugie pytanie, np. przez: mm3kY'm
- co oznacza: ustaw znak m ( mm
), przejdź trzy linie w górę ( 3k
), yank line ( Y
), wróć do znaku m ( 'm
).
Po prostu wpisz
:4y
do szarpnięcia linii 4
przejdzie do rejestru bez nazwy. Następnie (na przykład) możesz użyć, p
aby umieścić go w innym miejscu. Możesz także użyć [n]p
np. 10p, aby wkleić go 10 razy.
Możesz umieścić go w nazwanym rejestrze, takim jak „a” za pomocą
:4y a
4G"ayy
.