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