Czy w Vimie jest sposób na wklejenie tekstu w linii wyszukiwania?


105

Chcę go wyszukać $maximumTotalAllowedAfterFinishi zamienić na $minimumTotalAllowedAfterFinish. Zamiast wpisywać długi tekst:

:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g

Czy istnieje sposób na skopiowanie tych długich nazw zmiennych do wiersza wyszukiwania, ponieważ w wierszu poleceń nie mogę wpisać „ p”, aby wkleić?


2
Myślę, że ten dotyk również musi uciec przed pierwszym, $ponieważ ten znak oznacza koniec linii.
Luc M

1
@LucM OP może również użyć \Vdowolnego miejsca we wzorcu wyszukiwania, aby wyłączyć „magiczne” znaki.
dash-tom-bang

Odpowiedzi:


129

Możesz wstawić zawartość ponumerowanego lub nazwanego rejestru, wpisując CTRLR {0-9a-z"%#:-=.}. Wpisując CTRL-R CTRL-Wmożesz wkleić bieżące słowo pod kursorem. Widzieć:

:he cmdline-editing

po więcej informacji.


8
dzięki za odpowiedź, najczęstsza dla mnie to: CTRL+ R +(tak jak w przypadku zawartości schowka)
Peter Butkovic

4
0Rejestr zawiera Last szarpnął łańcuch.
Evgeni Sergeev

52

Skopiuj to jak zwykle, a następnie zrób, CtrlR"aby wkleić. Istnieje wiele innych CtrlRskrótów (np. Kalkulator, aktualna nazwa pliku, zawartość schowka). Wpisz, :help c_<C-R>aby zobaczyć pełną listę.


16

Kopiuj:
1) v(lub podświetl myszką, w trybie wizualnym)
2) y(szarpnij)

Wklej:
1) /(tryb wyszukiwania)
2) Ctrl + R + 0(wklej z szarpanego rejestru)


1
Szukałem tej odpowiedzi, gdy szukałem tego pytania w google, zastanawiam się, dlaczego ma to negatywne głosy.
santiago arizti

15

Wpisz, q:aby przejść do trybu edycji historii w nowym buforze. Następnie edytuj ostatnią linię bufora i naciśnij, Enteraby go wykonać.


3
Więc do tego służył ten bufor! Dzięki (zawsze się na to natknąłem podczas pisania: q i byłem zdezorientowany)
gsk

3
q/przydaje się również, aby uzyskać dostęp do historii wyszukiwania i wkleić nowe wyszukiwania.
79E09796

3

Lub utwórz polecenie w buforze vim, np. Wpisz je w buforze:

s/foo/bar/gci

I skopiuj go do nazwanego rejestru, z "ayy(jeśli kursor jest w tej linii!).

Teraz możesz wykonać zawartość arejestru " " z linii poleceń Vima za pomocą:

:[OPTIONAL_RANGE]@a

Używam go cały czas.


twoje „ayy” albo jest cytowane (i dlatego niepoprawne), albo nie (i dlatego na końcu jest błędne)
tzot

2

Zwykle robisz to, wybierając myszką (być może CtrlInslub CtrlCpo wybraniu), a następnie, gdy jesteś w linii poleceń / wyszukiwania, klikając środkowym przyciskiem (lub ShiftInslub CtrlV).

Innym sposobem jest zapisanie linii poleceń / wyszukiwania w buforze tekstowym z całą edycją dostępną w buforach tekstowych, zaczynając od :i all, a następnie w wierszu wykonaj:

"add@a

który zapisze cały wiersz poleceń w buforze a, a następnie go wykona. Nie zostanie on jednak zapisany w historii poleceń.

Spróbuj utworzyć następujący wiersz w buforze tekstowym jako przykład dla naciśnięć klawiszy powyżej:

:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g

Na koniec możesz wejść, q:aby wejść do edycji historii w buforze tekstowym.


1

Możesz umieścić kursor na słowie, które chcesz dodać do wzorca, a następnie nacisnąć /lub, :aby przejść do trybu wyszukiwania lub poleceń, a następnie nacisnąć, CtrlRCtrlWaby skopiować słowo. Źródło

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.