In Texteditoren
Über Modeline kann nur eine begrenzte Anzahl an Optionen eingestellt werden. Wenn ein Ausdruck als Optionswert angegeben wird, wird er im Sandbox-Modus ausgeführt, der nur die Verwendung der einfachsten sicheren Operationen ermöglicht. Gleichzeitig gehört der Befehl „:source“ zu den gültigen Befehlen, bei denen Sie den Modifikator „!“ verwenden können. um beliebige Befehle aus der angegebenen Datei auszuführen. Um den Code auszuführen, reicht es daher aus, eine Konstruktion wie „setfoldexpr=execute('\:source! some_file'):“ in der Modeline-Zeile anzugeben. Neovim lässt den Aufruf „execute“ nicht zu, Sie können jedoch stattdessen „assert_fails“ verwenden.
Um beispielsweise den Befehl „uname -a“ auszuführen, öffnen Sie einfach eine Datei in Vim oder Neovim, deren erste oder letzte Zeile lautet:
:!uname -a||" vi:fen:fdm=expr:fde=assert_fails("source\!\ \%"):fdl=0:fdt="
Die Quelle! %“ liest die Befehle aus der aktuellen Datei und führt entsprechend „:!uname -a“ aus. Das Dienstprogramm cat kann Escape-Sequenzen verwenden, um eine bestimmte Zeichenfolge aus der Ausgabe auszublenden. Zum Beispiel hier
Sie können mit dem Befehl „:set modeline?“ überprüfen, ob der Modeline-Modus aktiv ist. Um es zu deaktivieren, können Sie die Zeile „set nomodeline“ zu vimrc hinzufügen. In Distributionen ist das Problem behoben
Source: opennet.ru