Saya perhatikan vim bisa sangat intuitif, tetapi saya kesulitan menemukan cara untuk mengulangi perintah kedua-ke-terakhir (atau ketiga-ke-terakhir, keempat-ke-terakhir, dll.). Dengan mengetik .
dalam mode normal itu akan mengulangi perintah terakhir. Menekan 3.
akan mengulangi perintah terakhir tiga kali.
Katakanlah saya ketik oHello<Esc>
kemudian A, World!<Esc>
. Sekarang saya mengerti
Hello, World!
di layar. Sekarang, katakan saya ingin mendapatkannya
Hello, World!
Hello
Hello
Hello
tanpa mengetik Hello. Apakah vim menyimpan histori melampaui satu perintah, jadi saya bisa mengetikkan sesuatu seperti 3,2.
(yaitu mengulangi perintah kedua hingga terakhir tiga kali)?
qaoHello<esc>q
lalu@a
ulangiHello
kapan pun Anda inginkan.) Ada juga@@
untuk mengulang makro yang terakhir digunakan.3@a
untuk mengulangi makro berulang kaliJawaban:
Tidak,
.
perintah divim
tidak memiliki riwayat, juga tidak ada riwayat pengulangan untuk perintah mode normal yang saya ketahui. Untuk jumlah penekanan tombol paling sedikit, saya akan merekomendasikan4oHello<Esc>3jA, World<Esc>
. Jika sudah selesaioHello<Esc>A, World<Esc>
, Anda bisa mengikutinya denganuyy<Ctrl-r>3p
.sumber
Ada plugin ini bernama RepeatLast.vim yang melakukan apa yang Anda inginkan tetapi dengan biaya: vim Anda selalu dalam mode makro perekaman. Anda dapat menginstalnya dengan manajer paket yang Anda gunakan seperti paket vim lainnya atau Anda dapat mengkloning dan menjatuhkannya
~/.vim/plugin
jika Anda menggunakan vim atau~/.config/nvim/plguin
jika Anda menggunakan neovim. Untuk mengulangi tindakan kedua hingga terakhir, Anda harus mengetik2\.
dalam mode normal dan untuk mengulangi ke tindakan terakhir Anda harus mengetik<n>\.
dalam mode normal.http://www.vim.org/scripts/script.php?script_id=4381 https://github.com/vim-scripts/RepeatLast.vim
sumber