セクション

ファンクション参照

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

ファンクション参照

  • 変数の作成。
:function SampleFunction()
    :return "SampleFunction() is called"
:endfunction

:let VarFunc = function("SampleFunction")
  • ファンクションの実行。
:function SampleFunction1()
    :return "SampleFunction1() is called"
:endfunction
:let VarFunc1 = function("SampleFunction1")
:echo call(VarFunc1, [])
"# => SampleFunction1() is called

:function SampleFunction2(arg1, arg2)
    :return "SampleFunction2() is called. p1:" . a:arg1 . ", p2:" . a:arg2
:endfunction
:let VarFunc2 = function("SampleFunction2")
:echo call(VarFunc2, [ "parameter1", "parameter2" ])
"# => SampleFunction2() is called. p1:parameter1, p2:parameter2
  • ファンクションの名前の取得。
:function SampleFunction()
    :echo "SampleFunction() is called"
:endfunction

:let VarFunc = function("SampleFunction")
:echo string(VarFunc)
"# => function('SampleFunction')

:let VarFunc = function("SampleFunction")
:echo VarFunc
"# => SampleFunction
  • ファンクション参照をグローバルなスコープで使用する場合は、大文字から始める必要がある
:function! SampleFunction()
    :echo "SampleFunction() is called"
:endfunction

:let varFunc = function("SampleFunction")
"# => E704: 関数参照型変数名は大文字で始まらなければなりません: varFunc

:let s:varFunc = function("SampleFunction")
:echo string(s:varFunc)
"# => function('SampleFunction')

:let g:varFunc = function("SampleFunction")
"# => E704: 関数参照型変数名は大文字で始まらなければなりません: g:varFunc

:let g:VarFunc = function("SampleFunction")
:echo string(g:VarFunc)
"# => function('SampleFunction')
ドキュメントアクション
コメント
{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