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
スペース以外にも、特殊文字を入力する短縮入力を設定することも可能だ。
短縮入力は意外に複雑なので、詳しくはマニュアルを参照。(和訳)