vim script 入門 – 関数

   2017/05/01

基本的な事

vimスクリプトも他の言語同様に関数を定義できます。vimには数多くの付属関数(built-in function)があります。 ユーザ関数は、funcionendfunctionで定義します。また、ユーザ関数と付属関数を区別するために、ユーザ関数名は大文字で始めなければいけません。

ファイルに上記のように関数を記述してみます。関数を実行するには、vimから関数定義のあるファイルをロードする必要があります。 :source filename でロードできます。また、現在編集しているファイルを読み込みたい場合は、:source % でロード可能。’%’が現在編集しているファイル名のショートカットキャラクタとなります。一度ロードしてしまえば、関数を呼ぶことができます。 :call DispMsg() のように実行可能です。

上記関数サンプルでfunctionの後に”!” を付けています。 この”!”を付けることにより、関数名の衝突が起きた場合に、既に同名で存在していた関数を、この関数に上書き実行させることができます。

関数の引数

関数は引数をとれます。

呼び出し方法は、:source %(またはファイル名)でロードしたうえで、:call DispMsg(“hoge”) となります。関数の引数を参照するにはa:というprefixを付けます。 このような名前付き引数にプラスして、オプション引数も取ることができます。

このサンプルのようにファイル内にcall Functionname() で関数を実行することもできます。c言語のように、”” とした部分がオプショナル引数になります。オプショナル引数の1番目を参照する場合は、a:1とし、2番目はa:2で以下同様です。 またオプショナル引数はリストに保存されますので、そのリスト経由でも参照可能です。 a:000がリストになり、a:000[0]でオプショナル引数の1番目を参照することができます。

  • このエントリーをはてなブックマークに追加
  • Pocket

この記事へのコメントはこちら