vim script 入門 – 関数
基本的な事
vimスクリプトも他の言語同様に関数を定義できます。vimには数多くの付属関数(built-in function)があります。 ユーザ関数は、funcionとendfunctionで定義します。また、ユーザ関数と付属関数を区別するために、ユーザ関数名は大文字で始めなければいけません。
1 2 3 |
function! DispMsg() echo "Hello world!" endfunction |
ファイルに上記のように関数を記述してみます。関数を実行するには、vimから関数定義のあるファイルをロードする必要があります。 :source filename でロードできます。また、現在編集しているファイルを読み込みたい場合は、:source % でロード可能。’%’が現在編集しているファイル名のショートカットキャラクタとなります。一度ロードしてしまえば、関数を呼ぶことができます。 :call DispMsg() のように実行可能です。
上記関数サンプルでfunctionの後に”!” を付けています。 この”!”を付けることにより、関数名の衝突が起きた場合に、既に同名で存在していた関数を、この関数に上書き実行させることができます。
関数の引数
関数は引数をとれます。
1 2 3 4 |
function! DispMsg(arg1) echo "Hello world!" echo a:arg1 endfunction |
呼び出し方法は、:source %(またはファイル名)でロードしたうえで、:call DispMsg(“hoge”) となります。関数の引数を参照するにはa:というprefixを付けます。 このような名前付き引数にプラスして、オプション引数も取ることができます。
1 2 3 4 5 6 7 8 9 10 11 12 |
function! DispMsg(arg1, arg2, ...) echo "Hello world!" echo a:arg1 echo a:arg2 echo a:1 endfunction call DispMsg("hoge1", "hoge2", "optional argument") Hello world! hoge1 hoge2 optional argument |
このサンプルのようにファイル内にcall Functionname() で関数を実行することもできます。c言語のように、”…” とした部分がオプショナル引数になります。オプショナル引数の1番目を参照する場合は、a:1とし、2番目はa:2で以下同様です。 またオプショナル引数はリストに保存されますので、そのリスト経由でも参照可能です。 a:000がリストになり、a:000[0]でオプショナル引数の1番目を参照することができます。
この記事へのコメントはこちら
コメントを投稿するにはログインしてください。