Mam dwa pliki, powiedzmy a.txt
i b.txt
, w tej samej sesji vima i podzielę ekran, więc mam plik a.txt
w górnym i b.txt
dolnym oknie.
Chcę przenosić linie tu i tam z miejsca a.txt
na b.txt
: wybieram linię za pomocą Shift+ v, następnie przechodzę do b.txt
w dolnym oknie za pomocą Ctrl+ w ↓, wklejam za pomocą p, wracam do za a.txt
pomocą Ctrl+ w ↑i mogę powtórzyć operację, gdy dojdę do innej linii I chcę się przenieść.
Moje pytanie: czy jest szybszy sposób powiedzieć vim „wysłać linię, w której jestem (lub wybrany test) do drugiego okna” ?
q
makra?q[some_letter] [whatever operations] q
, a następnie wywołaj makro za pomocą[times to be called]@q
a.txt
. Jeśli nie, wkleiłbyś coś innegob.txt
. Jeśli tak, nie trzeba najpierw wybierać linii.Odpowiedzi:
To brzmi jak dobry przypadek użycia makra. Makra to polecenia, które można nagrywać i przechowywać w rejestrze Vima. Każdy rejestr jest oznaczony literą od a do z.
Nagranie
Z klawiszy nagrywania dla powtarzających się zadań - Vim Tips
Dla tego konkretnego makra wybrałem
m
rejestr (do przeniesienia), aby go zapisać.Nacisnąłem, qmaby nagrać następujące polecenia:
Kiedy wpisałem, qaby zakończyć rejestrowanie makra, zawartość
m
rejestru była następująca:Stosowanie
źródło