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 komend enable

  • <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