1ファイルで構成されるプラグインのテンプレート
作者: 小見 拓
—
最終変更
2012年01月08日 12時14分
1ファイルで構成されるプラグインのテンプレート
1ファイルのみで構成されるvimエディタのプラグインは、 大抵、次のようなつくりになっている。
" プラグインが2回読み込まれることを防止するコード。 " プラグイン作成中は外しておいた方が作成が楽。 :if exists("loaded_XXXXX") :finish :endif :let loaded_XXXXX = 1 " ここで設定を逃がして、後でリカバリします。 :let s:save_cpo = &cpo :set cpo&vim " プラグインのオプションを読み込む。 " プラグインの挙動をユーザにカスタマイズさせる場合の書き方。 :if !exists("g:XXXXX_option1") :let g:XXXXX_option1 = 1 :endif :if !exists("g:XXXXX_option2") :let g:XXXXX_option2 = "default value" :endif " 既存の設定を変えてしまうプラグインの場合は、 " 最初に初期設定を変数に逃がしておく。 :let setting = &guioptions " プラグインで必要とされる数だけファンクションを用意する。 :function FuncXXXXX1() :echo "FuncXXXXX1" :endfunction :function FuncXXXXX2() :echo "FuncXXXXX2" :endfunction " コマンド、マッピング、autocmdなど、 " プラグインの処理のトリガーとなる処理を定義する。 :command FuncXXXXX1 :call FuncXXXXX1 :command FuncXXXXX2 :call FuncXXXXX2 " 逃がしていたユーザの設定を修復 :let &cpo = s:save_cpo
たとえば、「:Hello」コマンドを実行すると「Hello World」と表示する、 最小のvimエディタプラグイン「echo_hello.vim」を作成するには、 次のようなコードを書けばよい。
:if exists("g:loaded_hello") :finish :endif :let g:loaded_hello = 1 :let s:save_cpo = &cpo :set cpo&vim :function Hello() :echo "Hello World" :endfunction :command Hello :call Hello() :let &cpo = s:save_cpo