関数を定義するときは、スコープを使用s:
してスクリプトに対してローカルにし、グローバル名前空間で同じ名前の関数を上書きしないようにすることを常にお勧めしますか?
またabort
、関数がエラーを検出した場合に備えて、常に引数を使用することをお勧めしますか?
function! s:SomeFunction() abort
echo "hello world!"
endfunction
スコープs:
は良いように見えますが、コードから少し冗長になるのでSomeFunction()
、マッピングから呼び出すたびに、プレフィックスを付ける必要があり<SID>
ます。
nnoremap {lhs} :<c-u>call <SID>SomeFunction()<cr>
または、変数内にその出力を保存することもできます。
let myvar = <SID>SomeFunction()
使用s:
したくない特定のケースおよび/またはabort
?
もしそうなら、どのような理由で?
abort
、必要なティアダウンにはtry
/finally
を使用することだと思います。そうではありませんか?