[Vim/Neovim]マクロについて
マクロの使い方
ノーマルモードでqキーを押し、
任意のキーを押すと、
マクロのレコーディングが始まる。
この画像の場合、
sマクロの記録中ということになる。
マクロのレコーディングを終了するときは、
もう一度qキーを押す。
これでマクロが保存される。
保存されたマクロを確認するには、
:reg
"sとして保存されている。
このマクロを実行するには、
同じくノーマルモードで、
@を押してから、
マクロ名(この場合s)を押す。
実行する際、5@sとかとすると、
5回分というふうに、
その数回分実行する。
行頭に//を入れるマクロ
試しに、行頭に//を入れて、
Vue.jsの<script>部分をコメントアウトする、
マクロを作成する。
今回はaマクロにする。
下記の手順になる。
1: qaを押してレコーディングを開始
2: 0を押して行頭にカーソルを移動(ssにkeymapしている)
3: iでインサートモードにする
4: //スペースを入力
5: escする
6: jで下にカーソル移動して、qを押して記録終了
あとは、コメントアウトしたい行数だけ、
例えば、5行なら、
@5aを押してマクロを実行できる。
マクロを永続化
マクロを定義しても、
vimを閉じたら、
消えてしまう。
まさか、毎回マクロを定義し直すなんてことも
やってられない。
そのため、汎用的なマクロは、
保存したい。
保存の仕方は、
.vimrcやinit.vimに
let @d = "ssi// jjj"
みたいな感じで定義する。
qdでレコーディングしたマクロは、
レジスタに保存されているので、
それをそのまま"dpとかでペーストして、
""で囲むばいい。
ちなみに、これは、
先程の行頭に//を入れるマクロで、
@dを押せば実行される
:regでレジスタを確認すると、
"dレジスタとして、
保存されている。
試しにqdqで
dマクロを初期化すると、
一旦初期化されるが、
もう一度vimを開き直すと、
再度dマクロが定義されている。
これでマクロを永続化することができるだろう。
既に開いているvimに定義したマクロを読み込ませる
vimは開きっぱなしのことが多い。
だが、それだとせっかく定義したマクロが認識されていないため、
使えない。
そのため、開いているファイルに対して、
:source ~/.config/nvim/init.vim
などを実行して、
読み込ませる必要がある。
ただ、毎度毎度こんな長いコマンドなど
とても打ってられない。
そこで、エイリアス化する。
command SS :source ~/.config/nvim/init.vim
これをinit.vimとかに追記。
:SSと実行すれば、
:source ~/.config/nvim/init.vimが実行されたのと
同じことになる。
この記事が気に入ったらサポートをしてみませんか?