Czy jest jakiś łatwy / szybki sposób na "szarpnięcie" do rejestru "ostatniego wyszukiwania" vima ("/)?
Z dokumentacji Vima wynika, że odpowiedź brzmi nie, ale można ją przypisać poleceniem „let”:
It is writable with ":let", you can change it to have 'hlsearch' highlight
other matches without actually searching. You can't yank or delete into this
register.
Idealnie, co chciałbym zrobić, to coś takiego:
"/5yw
co spowoduje szarpnięcie kolejnych 5 słów pod kursorem i umieszczenie ich w ostatnim buforze wyszukiwania
Alternatywnie, jeśli istnieje sposób wyszukania zawartości nazwanego rejestru, to również zadziała. Innymi słowy, gdybym mógł:
"A5yw
a następnie wyszukaj to, co jest w rejestrze A, to też by działało.
Najbliżej mnie jest szarpnięcie do nazwanego rejestru, a następnie skopiowanie tego rejestru do ostatniego rejestru wyszukiwania, np
"A5yw
:let @/=@A
Ryzykując wydłużenie długiego pytania, chcę stwierdzić, że nie zawsze jest to 5 słów, które chciałbym „szarpnąć i wyszukać” - czasami jest to 17 znaków, czasami do końca linii itp. więc zakodowane na stałe makro nie daje mi takiej elastyczności, jakiej bym chciał.
"ayw
(małe litery) zastąpiłyby zawartość rejestru „a”, podczas gdy"Ayw
dopisałby do rejestru „a”Jeśli nie używałeś żadnego rejestru do przechowywania szarpanego tekstu, vim używa
0
register. Możesz to wyszukać, wpisującCtrl-R 0
po/
.Bardziej skomplikowany przykład. Powiedz, że chcesz wyszukać w innym buforze tekst w cudzysłowach, który znajduje się teraz pod kursorem:
yi"
(szarpnij wewnętrzny cytat)/Ctrl-R 0
źródło
"Ayw
daje dołączony ciąg w rejestrze A. Ale zwykłe wpisanie,yw
a następnie wpisanieCtrl-R 0
po,/
zawsze daje dokładnie to, co wyszarpnąłem.Używam do tego następującego kodu:
źródło
Wyszukiwanie zaznaczenia:
jeśli chcesz najpierw yankować odcinek linii, użyj "v" i przesuwaj kursorami aż zaznaczysz to, co chcesz, następnie naciśnij y, aby yankować i teraz wybór jest w rejestrze 0
możesz wpisać
/Ctrl-R 0
źródło
A więc w zasadzie rozszerzona wersja poleceń # i *, prawda? Wygląda na to, że chcesz zdefiniować niestandardowy operator (polecenie, które oczekuje ruchu). Nigdy tego nie robiłem, ale znalazłem wtyczkę, która wygląda na to, że może to ułatwić. Podano kilka przykładów.
źródło