Wird beim Definieren einer Funktion immer empfohlen, den Bereich s:
zu verwenden, um sie lokal für das Skript zu machen und zu vermeiden, dass eine Funktion mit demselben Namen im globalen Namespace überschrieben wird.
Und wird immer empfohlen, das Argument abort
zu verwenden, wenn die Funktion einen Fehler erkennt?
function! s:SomeFunction() abort
echo "hello world!"
endfunction
Der Bereich s:
scheint eine gute Sache zu sein, aber er macht den Code etwas ausführlicher, da ich ihm jedes Mal, wenn ich SomeFunction()
von einem Mapping aus aufrufen möchte, Folgendes voranstellen muss <SID>
:
nnoremap {lhs} :<c-u>call <SID>SomeFunction()<cr>
Oder sogar, um seine Ausgabe in einer Variablen zu speichern:
let myvar = <SID>SomeFunction()
Gibt es bestimmte Fälle, in denen Sie s:
und / oder nicht verwenden möchten abort
?
Wenn ja, aus welchen Gründen?
abort
eintry
/finally
für jeden erforderlichen Abriss zu verwenden. Ist das nicht der Fall?