0
からスクリプトスコープ変数にアクセスすると、シナリオである(!経由:ランタイムコマンド)、およびスクリプトへのアクセス権を持っているが(S :)変数のスコープロードされたファイルの中にある関数などです。ここでロードされたvimscriptファイル
(読み込まれたファイルを変更せずに)可能ですか?
からスクリプトスコープ変数にアクセスすると、シナリオである(!経由:ランタイムコマンド)、およびスクリプトへのアクセス権を持っているが(S :)変数のスコープロードされたファイルの中にある関数などです。ここでロードされたvimscriptファイル
(読み込まれたファイルを変更せずに)可能ですか?
スクリプトがその目的のための関数を公開していない限り、私はスクリプト変数にアクセスすることができないのではないかと恐れています。
は例えば、すべての私の自動読み込みプラグインはしかし、それは非常に汚いトリックを通じてスクリプト機能にアクセスするために完全に可能だな
function! lh#dict#debug(expr) abort
return eval(a:expr)
endfunction
としての機能を持っています。
しかし、正直なところ、あなたの必要に応じてスクリプトを開くようスクリプト管理者に依頼するのがよいでしょう。あなたは、これは:redir
コマンドを介して、または最近機能を通じて:scriptname
の結果を解析することによって行うことができます(スクリプトIDを取得する最初の必要があります。
" or if your prefer, if you're looking plugin foobar.vim:
let snr = matchstr(matchstr(split(execute('scriptnames'), "\n"), 'foobar.vim'), '^\d\+')
はのは、ロードされた42thスクリプトが機能
s:foo()
定義するとしましょう、あなたがアクセスすることができますそれに:
let Foo = function('<SNR>42_foo') " or, use snr variable obtained as explained above instead of 42
echo Foo(42)
おかげでリュック、私はこの後にしようと、私はロードしてるファイルは.indent/html.vimあるようメンテナを尋ねることは、可能になるかどうかわからない – kam
@kam、あなたはこれを意味します。標準的なファイルですか?手順はメンテナをあなたのパッチに連絡することです。その後、ファイルをBramに送り返します。 –