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 |