Dentro do Vim, execute :h :!
e :h :%
para saber o que cada um faz.
Agora, o :%
é usado para substituir o conteúdo do arquivo pela saída do comando shell usando :!
. Se você não quiser tocar no conteúdo do arquivo, não use %
. Apenas faça:
:!ls