vimの短縮入力(Abbreviations)について
タグ: vim / 初版公開: 2013-08-27

vimには、予め設定した文字列を入力をした場合に、それを別の文字列に置換する短縮入力(Abbreviations)機能がある。 短縮入力はコードスニペットの挿入や、スペルミスの自動修正に活用できる。

マニュアルから引用すると、短縮入力の例えば以下のような具合。 それぞれmsと入力したらMicrosoftに、tihsというスペルミスをしたらthisに展開する。

ab ms Microsoft
	ab tihs this

なおキーワード自体を入力したい場合など、短縮入力を適用したくない時は、キーワードの入力後にCtrl + vを押すと置換されなくなる。

基本的な設定のコマンドは以下の3種類。 なお、これらのコマンドに引数を与えないと、設定された短縮入力の一覧が表示される。

コマンド 意味
ab コマンドラインモードと挿入モードの短縮入力の設定
ca コマンドラインモードの短縮入力の設定
ia 挿入モードの短縮入力の設定

設定ではをつけると、バッファローカルな短縮入力を設定できる。 ファイルタイププラグインで、特定の種類のファイルを編集しているバッファのみ、短縮入力を有効にする用途が想定されているようだ。

:ab <buffer> #i #include

逆に設定を削除するコマンドは以下の3種類。

コマンド 意味
una コマンドラインモードと挿入モードの短縮入力の削除
unca コマンドラインモードの短縮入力の削除
unia 挿入モードの短縮入力の削除

すべての設定を削除するコマンドもある。

コマンド 意味
abc すべてのコマンドラインモードと挿入モードの短縮入力の削除
cabc すべてのコマンドラインモードの短縮入力の削除
iabc すべての挿入モードの短縮入力の削除

置換する文字列は改行を含めることもできる。 これで署名や複数行のコードスニペットも短縮入力できる。

:ab foo four<CR>old<CR>otters

これでfooと入力すると、以下に展開される。

four
old
otters

スペース以外にも、特殊文字を入力する短縮入力を設定することも可能だ。

短縮入力は意外に複雑なので、詳しくはマニュアルを参照。(和訳)