Em editores de texto
Apenas um número limitado de opções pode ser instalado via modeline. Se uma expressão for especificada como um valor de opção, ela será executada no modo sandbox, que permite apenas as operações seguras mais simples. Neste caso, o comando válido inclui o comando “:source”, no qual você pode usar o modificador “!”. para executar comandos arbitrários do arquivo especificado. Assim, para executar o código, basta indicar na linha modeline uma construção do tipo “set foldexpr=execute('\:source! some_file'):". No Neovim, chamar execute é proibido, mas assert_fails pode ser usado.
Por exemplo, para executar o comando “uname -a”, basta abrir um arquivo no Vim ou Neovim cuja primeira ou última linha diz:
:!uname -a||» vi:fen:fdm=expr:fde=assert_fails(“fonte\!\ \%”):fdl=0:fdt=”
Fonte “da empresa! %" lerá os comandos do arquivo atual e executará ":!uname -a". Sequências de escape podem ser usadas para ocultar uma determinada linha da saída do utilitário cat. Por exemplo, neste
Você pode verificar a atividade do modo modeline com o comando “:set modeline?”. Para desativá-lo, você pode adicionar a linha “set nomodeline” ao vimrc. Nas distribuições o problema é corrigido em
Fonte: opennet.ru