Na przykład
Jak szarpać i wklejać linię 4 tylko do linii 12 bez konieczności przesuwania kursora do linii 4?
Na przykład
Jak szarpać i wklejać linię 4 tylko do linii 12 bez konieczności przesuwania kursora do linii 4?
Odpowiedzi:
Jeśli kursor jest już w linii 12, to prosty
: 4y P.
robi to dla mnie.
x
? Kiedy próbuję :4x
, dostaję E140: Use ! to write partial buffer
. Dzięki!
:4d
Co powiesz na to: Kursor jest w linii 11, jesteś w trybie „vi”.
:4co.<return>
Najwyraźniej możesz to również zrobić za pomocą wzoru:
:/^Yank/co.<return>
Możesz użyć „mo” (ruch) zamiast „co” (kopiowanie), aby po prostu przenieść linię zamiast szarpać i wstawiać.
:4t.
Spróbuj tego:
:4,4y
P
Inni wspominali już o najbardziej bezpośredniej metodzie wykonania tej czynności, :4y
ale chcę dodać dwie uwagi na jej temat, które mogą być przydatne:
Po pierwsze, jeśli wpiszesz :help range
, dowiesz się wszystkiego o używaniu zakresów w celu zastosowania do poleceń w stylu Ex. BARDZO przydatne w wielu przypadkach i znacznie bardziej wszechstronne niż używanie numerów linii. Na przykład, jeśli chcesz zaciągnąć pierwszy wiersz rozpoczynający się od „yank” po początku dokumentu (nawet jeśli znajduje się on w pierwszym wierszu), użyj :0/^yank/y
. Najpotężniejszą częścią zakresów jest możliwość ich łączenia, np. :./^Chapter/+50?Pete?d
Oznacza „Znajdź następny wiersz, aby rozpocząć od słowa Rozdział (wyszukiwanie do przodu od bieżącej linii), a następnie przeskocz do przodu o 50 linii i wyszukaj słowo Pete do tyłu, i usuń pierwszy wiersz, w którym go znajdziesz. ” Oprócz tego, że tak naprawdę nie porusza kursorem, po prostu robi to, co mu mówisz.
(Użyłem tego rodzaju specyfikacji zakresu do zautomatyzowania tworzenia dokumentacji, która polega na wyszukiwaniu nazwy funkcji pod kursorem, a następnie szukaniu następnego wiersza z napisem „Opis” i ciągnięciu go do określonego rejestru ... itp.)
Drugą wskazówką jest to, że powinieneś wiedzieć o skokach. Pisz, :help jump-motions
aby dowiedzieć się o tym w pełni, ale sposób, w jaki się tu odnosi, jest taki, że możesz przeskoczyć do linii 4, pociągnąć ją, a następnie POWRÓT za pomocą 4Gyy''
(lub użyć strzałek zamiast apostrofów, aby skoczyć z powrotem do dokładnej pozycji początkowej, a nie tylko tej samej linii zacząłeś o.)
Najkrótszy:
:1t.
kopiuje pierwszy wiersz poniżej bieżącego.
Z zakresami:
:1,4t.
kopiuje linie od 1 do 4 (włącznie) poniżej prądu.
Możliwe również z względnymi numerami linii:
:-1t.
kopiuje poprzedni wiersz poniżej bieżącego.
W twoim przykładzie :4t-1
skopiowałbyś czwartą linię poniżej poszukiwanej linii.
Uwaga: :t
jest synonimem :co[py]
polecenia.