O Vim já usa um shell (veja :set shell?
) para executar o comando externo; scripts com linhas shebang devem funcionar bem. A maneira canônica de executar o buffer atual é
:!./%
(Prepending ./
para lidar com o diretório atual não sendo parte de PATH
. Isso pressupõe que o script já é executável ( :!chmod +x %
, talvez feito em um mapeamento / ftplugin.)
Você pode executar novamente com apenas :!!
. Além disso, existem soluções mais sofisticadas para a execução de conteúdo de buffer (parcial, não salvo, etc.) em intérpretes externos; verifique a seção de plug-ins do vim.org .