Teksta redaktoros
Izmantojot Modeline, var instalēt tikai ierobežotu skaitu opciju. Ja izteiksme ir norādīta kā opcijas vērtība, tā tiek izpildīta smilškastes režīmā, kas ļauj veikt tikai visvienkāršākās drošās darbības. Šajā gadījumā derīgā komanda ietver komandu “:source”, kurā varat izmantot modifikatoru “!”. lai palaistu patvaļīgas komandas no norādītā faila. Tādējādi, lai izpildītu kodu, pietiek modelīnes rindā norādīt konstrukciju, piemēram, “set foldexpr=execute('\:source! some_file'):”. Programmā Neovim ir aizliegts izsaukt execute, taču tā vietā var izmantot assert_fails.
Piemēram, lai palaistu komandu “uname -a”, vienkārši atveriet failu Vim vai Neovim, kura pirmajā vai pēdējā rindā ir teikts:
:!uname -a||» vi:fen:fdm=expr:fde=assert_fails(“avots\!\ \%”):fdl=0:fdt=”
Uzņēmums “avots! %" nolasīs komandas no pašreizējā faila un attiecīgi izpildīs ":!uname -a". Escape secības var izmantot, lai paslēptu doto rindiņu no cat utilīta izvades. Piemēram, šajā
Modeļa režīma darbību var pārbaudīt ar komandu “:set modeline?”. Lai to atspējotu, vimrc varat pievienot rindu “set nomodeline”. Izplatījumos problēma ir novērsta
Avots: opennet.ru