Σε προγράμματα επεξεργασίας κειμένου
Μόνο ένας περιορισμένος αριθμός επιλογών μπορεί να εγκατασταθεί μέσω του modeline. Εάν μια παράσταση έχει καθοριστεί ως τιμή επιλογής, εκτελείται σε λειτουργία sandbox, η οποία επιτρέπει μόνο τις απλούστερες ασφαλείς λειτουργίες. Σε αυτήν την περίπτωση, η έγκυρη εντολή περιλαμβάνει την εντολή “:source”, στην οποία μπορείτε να χρησιμοποιήσετε τον τροποποιητή “!”. για να εκτελέσετε αυθαίρετες εντολές από το καθορισμένο αρχείο. Έτσι, για να εκτελέσετε τον κώδικα, αρκεί να υποδείξετε στη γραμμή μοντέλου μια κατασκευή όπως "set foldexpr=execute('\:source! some_file'):". Στο Neovim, η κλήση εκτέλεσης απαγορεύεται, αλλά μπορεί να χρησιμοποιηθεί το assert_fails.
Για παράδειγμα, για να εκτελέσετε την εντολή "uname -a", απλά ανοίξτε ένα αρχείο στο Vim ή στο Neovim του οποίου η πρώτη ή η τελευταία γραμμή λέει:
:!uname -a||» vi:fen:fdm=expr:fde=assert_fails("source\!\ \%"):fdl=0:fdt="
Εταιρεία «πηγή! %" θα διαβάσει τις εντολές από το τρέχον αρχείο και αναλόγως θα εκτελέσει το ":!uname -a". Οι ακολουθίες διαφυγής μπορούν να χρησιμοποιηθούν για την απόκρυψη μιας δεδομένης γραμμής από την έξοδο από το βοηθητικό πρόγραμμα cat. Για παράδειγμα, σε αυτό
Μπορείτε να ελέγξετε τη δραστηριότητα της λειτουργίας μοντέλου με την εντολή “:set modeline?”. Για να το απενεργοποιήσετε, μπορείτε να προσθέσετε τη γραμμή "set nomodeline" στο vimrc. Στις διανομές το πρόβλημα επιλύεται
Πηγή: opennet.ru