Zauważyłem, że vim może być dość intuicyjny, ale mam problem ze znalezieniem sposobu na powtórzenie polecenia od drugiego do ostatniego (lub od trzeciego do ostatniego, od czwartego do ostatniego itd.). Wpisując .
w trybie normalnym, powtórzy ostatnie polecenie. Naciśnięcie 3.
spowoduje powtórzenie ostatniego polecenia trzy razy.
Powiedzmy, że typ oHello<Esc>
potem A, World!<Esc>
. Teraz rozumiem
Hello, World!
na ekranie. Teraz powiedz, że chcę dostać
Hello, World!
Hello
Hello
Hello
bez pisania Cześć. Czy vim przechowuje historię poza jednym poleceniem, więc mógłbym wpisać coś takiego 3,2.
(tj. Powtórzyć polecenie od drugiego do ostatniego trzy razy)?
qaoHello<esc>q
a następnie@a
powtarzać wHello
dowolnym momencie.) Istnieje również@@
powtórzenie ostatnio używanego makra.3@a
powtórzyć makro wiele razyOdpowiedzi:
Nie,
.
polecenie wvim
nie ma historii, ani nie ma żadnej historii powtarzania dla poleceń w trybie normalnym, o której wiem. Polecam, aby uzyskać jak najmniejszą liczbę naciśnięć klawiszy4oHello<Esc>3jA, World<Esc>
. Jeśli już to zrobiłeśoHello<Esc>A, World<Esc>
, możesz to zrobić za pomocąuyy<Ctrl-r>3p
.źródło
Jest taka wtyczka o nazwie RepeatLast.vim, która robi to, co chcesz, ale kosztuje: twój vim jest zawsze w trybie nagrywania makr. Możesz zainstalować go za pomocą menedżera pakietów, którego używasz, tak jak innych pakietów vim, lub możesz po prostu sklonować i upuścić,
~/.vim/plugin
jeśli używasz vima lub~/.config/nvim/plguin
neovim. Aby powtórzyć od drugiej do ostatniej akcji, należy wpisać2\.
w trybie normalnym, a aby powtórzyć ostatnią akcję, należy wpisać<n>\.
w trybie normalnym.http://www.vim.org/scripts/script.php?script_id=4381 https://github.com/vim-scripts/RepeatLast.vim
źródło