Jak wciągnąć wiele linii do rejestru?

44

Chcę szarpać wiele wierszy w jednym rejestrze w vimie, aby łatwo wkleić różne szablony tekstowe w dokumencie.

Na przykład „iyy szarpie tylko bieżącą linię, jeśli spróbuję wybrać wiele linii w trybie wizualnym, nie zostanie ona zapisana w rejestrze.

Jakieś sugestie?

ryz
źródło
„jeśli spróbuję wybrać wiele linii w trybie wizualnym, nie zostanie to zapisane w rejestrze”. <- Naprawdę? Działa dla mnie ...
Billy ONeal
i dla mnie też ...
ulidtko
ah ok, próbowałem z „iyv, głupi ja. Powinienem być Vjjj”, tak jak wspomniałem Ulidtko.
ryz

Odpowiedzi:

59

Użyj, 3Yaby przeciągnąć 3 linie do rejestru domyślnego; "i3Yza wciąganie do rejestru

Ponadto moim ulubionym sposobem nie jest zliczanie wierszy, które chcę zaciągnąć, ale wybranie ich w trybie wizualnym za pomocą Vpoleceń i ruchów, a następnie ynaciśnięcie, aby je wyrwać lub "_ywciągnąć do rejestru.

Ponadto właśnie próbowałem wybrać wiele linii w trybie linii wizualnej i wciągnąć do rejestru innego niż domyślny, np. Vjjj"oy- i to działa.

ulidtko
źródło
1
+1 - ale Vjest trybem linii wizualnej, vjest trybem wizualnym.
Billy ONeal 17.01.11
ok, ok, racja. Tryb linii wizualnej. %)
ulidtko
1
chętnie to zaakceptowałem, jak na razie najszybszy sposób.
ryz
24

Z dowolnego miejsca w pliku można skorzystać z następujących opcji.

:2,5y a

Yank linie 2 - 5. DO REJESTRACJI a

:7pu a

Wklej zarejestruj się pod linią 7.

alock27
źródło
1
Pytanie brzmiało: „jak wciągnąć wiele linii do rejestru ?” Proszę pokazać, jak te polecenia działają z rejestrami.
Scott,
Mam nadzieję, że moja edycja spełni twoją prośbę.
alock27
Przepraszam, nie. Pytanie wyraźnie wymieniało „rejestr” wielokrotnie, odnosiło się do „łatwego wklejania różnych szablonów tekstowych” i dawało przykład przy użyciu rejestru innego niż domyślny.
Scott,
3
@Scott Moje przeprosiny. Dlaczego po prostu nie powiedziałeś: „Stary, sprawdź swoją metodę za pomocą: reg. Zobaczysz, że to nie działa”. I byłbym wszystkim w stylu „Whoa, my bad”.
alock27
1
Szukał sposobu, aby wciągnąć plik who do rejestru + w celu skopiowania do schowka systemowego. :% y + załatwiło sprawę, dzięki.
AlexMA
10

Użyj, maby oznaczyć początek nazwą bufora (abyś mógł wpisać mx). Przesuń kursor w dół do miejsca, w którym chcesz zatrzymać kopiowanie, i wpisz y'x(lub d'xjeśli wycinasz i wklejasz). Następnie przejdź do miejsca, w którym chcesz wkleić, i wpisz p.

Ściągawka polecenia Vima

Nifle
źródło
Jesteś pewien, że nie masz na myśli vnie m?
Billy ONeal 17.01.11
@BillyONeal „v” uruchamia tryb wizualny i pozwala robić to samo, „m” służy do „oznaczania” regionu.
Nifle
6

Komendę poprzedza się liczbą, aby uzyskać liczbę wierszy do obsługi. Możesz także użyć „obiektu tekstowego” (jak „]” dla bloku i „)” dla akapitu) - działałoby to na wielu liniach kontekstowych - domyślnie jest to jedna linia. Na przykład "r5yypociągnąłby za sobą pięć linii, zaczynając od kursora, do rejestru „r”. (Lub możesz wpisać :.,+4y rto samo w trybie ex.) Możesz także łączyć liczby z obiektami tekstowymi; "r10y).

Arcege
źródło
1

Możliwe jest szarpanie wielu linii w przypadku, gdy jest to ostatnie wystąpienie wyszukiwania.

Na przykład, biorąc pod uwagę następujący wieloliniowy, niechciany wzór :

/start\_.\{-}end/norm gn"iy

wtedy będziesz miał swój szarpany wzór wielowierszowy (pomiędzy starti end) w @irejestrze (drukuj według echo @i).

Powiązane: Jak wydrukować dopasowanie wieloliniowe? w Vi

kenorb
źródło