Dans les éditeurs de texte
Seul un nombre limité d'options peut être installé via modeline. Si une expression est spécifiée comme valeur d’option, elle est exécutée en mode sandbox, ce qui autorise uniquement les opérations sécurisées les plus simples. Dans ce cas, la commande valide inclut la commande « :source », dans laquelle vous pouvez utiliser le modificateur « ! ». pour exécuter des commandes arbitraires à partir du fichier spécifié. Ainsi, pour exécuter le code, il suffit d'indiquer dans la ligne modeline une construction du type "setfoldexpr=execute('\:source! some_file'):". Dans Neovim, l'appel d'execute est interdit, mais assert_fails peut être utilisé à la place.
Par exemple, pour exécuter la commande « uname -a », ouvrez simplement un fichier dans Vim ou Neovim dont la première ou la dernière ligne dit :
:!uname -a||» vi:fen:fdm=expr:fde=assert_fails("source\!\ \%"):fdl=0:fdt="
Entreprise « source ! %" lira les commandes du fichier actuel et exécutera en conséquence ":!uname -a". Les séquences d'échappement peuvent être utilisées pour masquer une ligne donnée de la sortie de l'utilitaire cat. Par exemple, dans ce
Vous pouvez vérifier l'activité du mode modeline avec la commande « :set modeline ? ». Pour le désactiver, vous pouvez ajouter la ligne « set nomodeline » à vimrc. Dans les distributions, le problème est résolu dans
Source: opennet.ru