In teksredigeerders
Slegs 'n beperkte aantal opsies kan via modeline geïnstalleer word. As 'n uitdrukking as 'n opsiewaarde gespesifiseer word, word dit in sandbox-modus uitgevoer, wat slegs die eenvoudigste veilige bewerkings toelaat. In hierdie geval bevat die geldige opdrag die ":source" opdrag, waarin jy die "!" wysiger kan gebruik. om arbitrêre opdragte vanaf die gespesifiseerde lêer uit te voer. Dus, om die kode uit te voer, is dit genoeg om in die modellyn 'n konstruksie aan te dui soos "set foldexpr=execute('\:source! some_file'):". In Neovim is dit verbode om uitvoer te roep, maar assert_fails kan eerder gebruik word.
Byvoorbeeld, om die "uname -a" opdrag uit te voer, maak eenvoudig 'n lêer oop in Vim of Neovim waarvan die eerste of laaste reël sê:
:!uname -a||» vi:fen:fdm=expr:fde=assert_fails(“bron\!\ \%”):fdl=0:fdt=”
Maatskappy "bron! %" sal die opdragte van die huidige lêer lees en dienooreenkomstig ":!uname -a" uitvoer. Ontsnap-reekse kan gebruik word om 'n gegewe lyn te versteek van uitset deur die kat-hulpprogram. Byvoorbeeld, in hierdie
Jy kan die aktiwiteit van modeline-modus nagaan met die opdrag ":set modeline?". Om dit te deaktiveer, kan jy die reël "set nomodeline" by vimrc voeg. In verspreidings is die probleem opgelos in
Bron: opennet.ru