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

Chcę wyszukać $maximumTotalAllowedAfterFinish i zastąpić ją $minimumTotalAllowedAfterFinish. Zamiast wpisywać długi tekst:

:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g

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

 89
vim
Author: the Tin Man, 2008-09-19

7 answers

Możesz wstawić zawartość numerowanego lub nazwanego rejestru wpisując CTRLR {0-9a-z"%#:-=.}. Wpisując CTRL-R CTRL-w możesz wkleić bieżący wyraz pod kursorem. Zobacz:

:he cmdline-editing

Aby uzyskać więcej informacji.

 110
Author: WMR,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-08 19:58:42

Skopiuj go jak zwykle, a następnie wykonaj CtrlR" do wklejenia. Istnieje wiele innych CtrlR skróty (np. Kalkulator, bieżąca nazwa pliku, zawartość schowka). Wpisz :help c_<C-R>, aby zobaczyć pełną listę.

 42
Author: Ned,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-08 19:59:44

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

 14
Author: Johannes Hoff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-14 04:32:50

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

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

 10
Author: Jason,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-20 18:33:24

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

s/foo/bar/gci

I skopiuj go do nazwanego rejestru, używając "ayy (jeśli kursor jest w tej linii!).

Teraz możesz uruchomić zawartość rejestru "a " z linii poleceń Ex Vima za pomocą:

:[OPTIONAL_RANGE]@a
Używam go cały czas.
 3
Author: Zsolt Botykai,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-19 20:07:15

Zazwyczaj robi się to za pomocą myszki (być może CtrlIns lub CtrlC Po wybraniu), a następnie, gdy w linii poleceń / wyszukiwania, klikamy środkowym przyciskiem myszy (lub ShiftIns lub CtrlV ).

Innym sposobem jest zapisanie linii poleceń / wyszukiwania w buforze tekstowym ze wszystkimi edycjami dostępnymi w buforach tekstowych, począwszy od : i wszystkie, następnie w linii, wykonaj:

"add@a

Który zapisze całą komendę line in buffer a, a następnie wykonaj go. Nie będzie 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 wpisać q:, Aby wprowadzić edycję historii w buforze tekstowym.

 2
Author: tzot,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-08 20:01:35

Możesz umieścić kursor na słowie, które chcesz dodać do wzoru, a następnie nacisnąć / lub : aby wejść w tryb wyszukiwania lub polecenia, a następnie naciśnij CtrlRCtrlw aby skopiować słowo. źródło

 0
Author: boosted regressor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-09 09:21:21