W edytorach tekstu
Poprzez modeline można zainstalować tylko ograniczoną liczbę opcji. Jeśli wyrażenie zostanie określone jako wartość opcji, zostanie ono wykonane w trybie piaskownicy, który umożliwia jedynie najprostsze bezpieczne operacje. W tym przypadku poprawne polecenie zawiera polecenie „:source”, w którym można użyć modyfikatora „!”. do uruchamiania dowolnych poleceń z określonego pliku. Zatem, aby wykonać kod, wystarczy wskazać w linii modelu konstrukcję typu „setfoldexpr=execute('\:source! Some_file'):”. W Neovimie wywołanie wykonywania jest zabronione, ale zamiast tego można użyć funkcjiasser_fails.
Na przykład, aby uruchomić polecenie „uname -a”, po prostu otwórz plik w Vimie lub Neovimie, którego pierwsza lub ostatnia linia mówi:
:!uname -a||» vi:fen:fdm=expr:fde=assert_fails(“źródło\!\ \%”):fdl=0:fdt=”
Firma „źródło! %” odczyta polecenia z bieżącego pliku i odpowiednio wykona „:!uname -a”. Sekwencji ucieczki można użyć do ukrycia danej linii przed wyjściem narzędzia cat. Na przykład w tym
Możesz sprawdzić aktywność trybu modeline za pomocą polecenia „:set modeline?”. Aby to wyłączyć, możesz dodać linię „set nomodeline” do vimrc. W dystrybucjach problem został rozwiązany
Źródło: opennet.ru