:Qiita というコマンドを自作し、実行すると hello, qiita! と表示するコマンドを作成します。
流れとしましては、
- コマンドを書き込むファイルを用意する
- 書式にしたがってコマンドを書く
- .vimrcに、vimの起動時にそのコマンドファイルを読み込む記述を追加
といった具合です。
1. コマンドを書き込むファイルを用意する
私はvimのディレクトリ直下に作成しました。(C:¥vim¥mycommand.vim)
2. 書式にしたがってコマンドを書く
1で作成したファイルにコマンドを書き込んでいきます。
:command[!] [{属性}...] {コマンド名} {実行するコマンド}
この書式にしたがってコマンドを書いていきます。
冒頭で説明したQiitaコマンドのサンプルをのせます。
command! Qiita echo 'hello, qiita!'
Qiitaが{コマンド名}、それ以降( echo 'hello, qiita' )が{実行するコマンド}にあたります。今回は{属性}については記述していません。コマンド名は英大文字で始めなければなりません。
またcommandではなくcommand!にすることで、既に定義されているユーザーコマンドに上書きができ
command Qiita echo 'hello, qiita!'
command! Qiita echo 'I love qiita!'
こうしますと I love qiita! と表示されるようになります。
3. .vimrcに、vimの起動時にそのコマンドファイルを読み込む記述を追加
この設定をせずに自作コマンドを適用することもできます。
その場合はvimを開くたびに :source {作成したファイルのディレクトリ} を実行してください。ただ毎回入力するには、面倒です。
上記のコマンドをvimの設定ファイルである.vimrcに追記し、自動で読み込むようにしましょう。(.vimrcがない人はvimrcの末尾でも構いません。詳しい説明は省きます)
:source c:\vim\.mycommand.vim
以上で :Qiita コマンドが有効になっています。コマンド実行時に引数を渡したかったり、もっと複雑な処理をさせたい場合は以下の参考ページを御覧ください。
より良いvim環境を構築しましょう!ありがとうございました。
参考
突然のvimコマンドを作った
http://kuchitama.hateblo.jp/entry/2013/02/08/000320
Vimスクリプトの初心者がコマンドを定義してみた
http://d.hatena.ne.jp/Hoshi-KN/20120302/1330658765
Hack #158: ユーザコマンドを定義する
http://vim-jp.org/vim-users-jp/2010/06/29/Hack-158.html