在 vim 中重複最後 n 個指令

在 vim 中重複最後 n 個指令

我注意到 vim 非常直觀,但我很難找到重複倒數第二個命令(或倒數第三個、倒數第四個等)的方法。透過在正常模式下鍵入.,它將重複最後一個命令。按3.將重複最後一個指令 3 次。

假設我oHello<Esc>當時打字A, World!<Esc>。我現在得到

Hello, World!

螢幕上。現在,說我想要得到

Hello, World!
Hello
Hello
Hello

無需輸入“Hello”。 vim 是否儲存超過一個命令的歷史記錄,以便我可以鍵入類似的內容3,2.(即重複倒數第二個命令三次)?

答案1

不,.命令vim沒有歷史記錄,據我所知,正常模式命令也沒有任何類型的重複歷史記錄。對於最少的擊鍵次數,我建議4oHello<Esc>3jA, World<Esc>.如果您已經完成了oHello<Esc>A, World<Esc>,您可以按照 進行操作uyy<Ctrl-r>3p

答案2

有一個名為 RepeatLast.vim 的插件,它可以滿足您的需求,但需要付出一定的代價:您的 vim 始終處於錄製巨集模式。您可以像任何其他 vim 軟體包一樣使用您正在使用的軟體包管理器來安裝它,或者如果您~/.vim/plugin使用的是 vim 或~/.config/nvim/plguinneovim,則可以簡單地複製並放入它。要重複倒數第二個操作,您應該2\.在正常模式下鍵入,並且要重複倒數第二個操作,您應該在正常模式<n>\.下鍵入。

http://www.vim.org/scripts/script.php?script_id=4381 https://github.com/vim-scripts/RepeatLast.vim

相關內容