Vim/Neovim でビジュアルモード中に連続インデントできるようにする

Vim/Neovim でビジュアルモードで複数行を選択してインデントするには、>><< を使いますが、このコマンドを入力すると、ビジュアルモードを抜けてしまうので、連続してインデントを行いたい場合にちょっと面倒です(何回インデントすればよいか分かっていれば 3>> のように回数を指定することはできますが)。

下記のような設定を入れておくと、ビジュアルモード中のインデントを、> あるいは < だけで行うことができるようになります。 さらに、このコマンドを入力した後も、ビジュアルモードを抜けずにキープしてくれるので、行選択したまま連続してインデントを行うことができます。

Vim (.vimrc, init.vim) の場合
" Reselect visual block after indent/outdent
vnoremap < <gv
vnoremap > >gv
Neovim/Lua (init.lua) の場合
-- Reselect visual block after indent/outdent
vim.keymap.set("v", "<", "<gv")
vim.keymap.set("v", ">", ">gv")

同様に、選択範囲の自動インデントを行う = コマンド にも適用できます。

Vim (.vimrc, init.vim) の場合
" Stay visual mode after formatting code
vnoremap = =gv
Neovim/Lua (init.lua) の場合
-- Stay visual mode after formatting code
vim.keymap.set("v", "=", "=gv")

参考