Do skopiowania treści z bufora (edytowanego pliku) i wprowadzenie go do linii
komend edytora Vim, użyjemy mechanizmu rejestrów, więcej na temat
rejestrów można dowiedzieć się z pomocy :help registers. Żeby sprawdzić co mamy
w rejestrze możemy użyć polecenia :registers lub :display w skrócie :reg
i :dis. Standardowo pod znakiem " jest ostatni wpis. Żeby użyć polecenia
z rejestru pod numerem 5 wprowadzamy następującą kombinację klawiszy:
:Ctrl+r5
Oto przykład użycia polecenia :reg
:reg
--- Rejestry ---
"" 2
"0 date -u^J
"1 ^J
"2 ^J
"3 ^J
"4 #find ~/tmp -type l -ctime +2 | xargs rm -f^J
"5 #find ~/tmp -type d -mtime +2 -exec rm -rf '{}' \;^J
"6 #find ~/tmp -type f -atime +2 -mtime +2 | xargs rm -f ^J
"7 find ~/tmp -type f -atime +2 -mtime +2 -print^J
"8 ^J
"9 wto, 3 lip 2018, 12:12:07 UTC^J
"- 2
clipboard: error: no buffers
"/ tmp
Przejdźmy do przykładu użycia rejestrów, powiedzmy że mamy plik o treści:
#!/bin/bash date -u
i chcemy wykonać polecenie date -u
:!date -u
Najpierw musimy skopiować linię zawierającą polecenie za pomocą skrótu Y,
następnie przechodzimy do wprowadzania komend:
:
Po wejściu w tryb komend wprowadzamy znak !, który mówi o tym, że wszystko co
po nim następuje jest poleceniem systemowym. Teraz należy użyć Ctrl+r a po nim
wprowadzić znak ". Czego efektem powinno być automatyczne wprowadzenie
polecenia w linię komend - :!date -u
:!""
:!date -u
Teraz możemy spróbować wkleić wynik polecenia do bufora
:r !Ctrl+r"
czyli
:r !date -u
wynik powinien wyglądać mniej więcej tak:
wto, 3 lip 2018, 12:13:32 UTC
Wklejanie z rejestru i inne skróty dla Crtl-r
Przykładowy tekst:
./configure --enable-ssl --enable-gpgme --notmuch \ --gnutls --enable-gss --sasl --bdb --gdbm \ --kyotocabinet --lmdb --qdbm
Przechodzimy kursorem do --enable-ssl, teraz wchodzimy w tryb komend:
-
<Ctrl-r><Ctrl-w>- wkleji do linii komendenable -
<Ctrl-r><Ctrl-a>- wkleji--enable-ssl -
<Ctrl-r><Ctrl-l>- wkleji całą linię -
<Ctrl-r><rejestr>- wkleji zawartość wybranego rejesru:reg
Więcej informacji można znaleźć w pomocy :h c_ctrl-r
Zamiana słowa pod kursorem
Komenda zmieniająca słowo pod kursorem za pomocą <ctrl-r><ctrl-w> na słowo foo
w całym pliku
:%s/<ctl-r><ctl-w>/foo/g
| Date: 2020-10-21T19:11:09+02:00 |