【一人 vimrc advent calendar 2017】filetype 名を簡略化する【11日目】
一人 vimrc advent calendar 2017 11日目の記事になります。
今回は頻繁に手入力するコマンドを簡略化するというお話です。
Vim で filetype
を設定する
Vim で雑なコードを書く場合に無名バッファを使うことがあります。
そういう場合は新しいバッファを開いて
:set filetype=javascript
をコマンドラインで入力することが多いんですが、毎回 javascript
と手打ちするのは手間ですね。
このような場合、簡略化する手段はいくつかあるんですが、今回は autocmd
を利用して filetype
名を短くしてみようと思います。
autocmd FileType
を利用する
autocmd FileType
を利用することで任意の filetype
に処理をフックする事ができます。
ですので『簡略化した名前』の filetype
名をフックすることで次のように filetype
を設定することができます。
augroup vimrc autocmd! " set filetype=xxx した場合に任意の filetype を設定する autocmd FileType js set filetype=javascript autocmd FileType md set filetype=markdown autocmd FileType py set filetype=python augroup END
上記のようなスクリプトを記述することで、
1. :set filetype=md
する
2. autocmd FileType md
が呼ばれる
3. autocmd
内で set filetype=markdown
が呼ばれる
4. 最終的に filetype=markdown
になる
というような流れになります。
また、set filetype=xxx
も set ft=xxx
と短く書くことができるので、最終的には
:set ft=js
みたいに書くことができます。
これでだいぶ短くなりましたね。
ちなみに 'filetype'
は標準でバッファローカルなので :setlocal
する必要はありません。
まとめ
autocmd FileType
で任意のfiletype=xxx
に処理をフック出来る- 手入力するのが手間な場合はスクリプトで簡略化する
set ft=xxx
すら手間な場合は Ex コマンドを定義してしまうのもあり
このような場合に簡略化する手段はいくつかあるんですが、いずれにしろ『手間』というのはどんどんなくしていくとよいですね。