セクション

1ファイルで構成されるプラグインのテンプレート

作者: 小見 拓 最終変更 2009年12月06日 06時40分

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
ドキュメントアクション
コメント
{no}. {user_name}  {posted}
{message_body}

(必須)
氏名を入力してください。
Eメールアドレスを入力してください。
(必須)
送りたいメッセージを入力してください。
Recent Comment
EnhCommentify.vim : 複数のファイルタイプに対応したソースコメントアウト、コメントアウト解除スクリプト — 名無しのvim使い
==> anonymous [2010/03/22 06:32:47]
vimエディタから外部のプログラムやコマンドを実行する。 — 名無しのvim使い
==> 通りすがりnoです [2010/02/04 18:28:49]
==> 通りすがりの者です [2010/02/04 18:30:28]
==> 通りすがりのものです2 [2010/02/04 18:41:38]
PCに昨日初めてさわった人でもわかるgvim超々入門 (Windows、vim6) — 名無しのvim使い
==> anonymous [2009/11/05 11:57:11]
==> 佐藤 よしお [2009/11/27 15:53:34]
==> 小見 拓 [2009/11/27 18:40:42]
==> anonymous [2010/01/06 19:48:09]
Update Feed
RSS1.0 / RSS2.0 / ATOM