menu.vimにたくさんの関数を作成しました。vimのサブ関数
多くの関数で同じコードが使用されているので、 サブ関数を使用してファイルをクリーンアップすることにしました。
p.eが、これは多くの場合、私の関数で返すどのようなコードです:
let zoek = @/
if a:type == "'<,'>"
let r = substitute(zoek, '\\%V', '', 'g')
elseif a:type == "%"
let r = zoek
endif
let a = substitute(r, '\', '', 'g')
if matchstr(d, '>') == '>' || matchstr(d, '<') == '<'
let e = substitute(d, '\zs>\(\d\+\)%<\ze', '\1-', 'g')
endif
は、どのように私はそれからサブ関数を作成することができますか?どのように呼び出すことができますか?
Vimにサブ関数がありますか?
ありがとうございます。g:変数を使用してサブ関数から値をインポートし、関数の最後に値を取り消すこともできますか?g:変数を取り消すことはできませんか? – Reman
@Remonn。両方の質問ではいですが、なぜインポートする必要があるだけの値を返すことができないのですか? //できない場合でも、グローバルスコープを汚染しないようにしてください。 's:variable'を使用してください。///別のヒントがあります:関数内には、すべての関数ローカル変数を含む 'l:'辞書があります。サブファンクションに渡して、そこにいくつかの方法で変更することができます。 – ZyX
リストをサブ関数(実際の関数の外部にあります)へのl:リストとして渡す方法と関数内で再度インポートする方法の例を挙げることができますか?私は、多くの機能ではなく、gを使わないで "listlines"というリストを使用しています。 – Reman