40
34

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

vimに自作コマンドを実装する

Last updated at Posted at 2015-11-17

:Qiita というコマンドを自作し、実行すると hello, qiita! と表示するコマンドを作成します。

流れとしましては、

  1. コマンドを書き込むファイルを用意する
  2. 書式にしたがってコマンドを書く
  3. .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

40
34
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40
34

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?