Você provavelmente deseja o comando :edit
em vez do comando :read
. Mas o comando :edit
falharia se você tivesse alterações não salvas no Vim, então você teria que forçá-lo com !
. Além disso, não sei por que você tem um |
anterior ao comando, já que ele não pertence lá.
Tente isto:
au! FileChangedShell img.dat e!
Editar: Observe que o FileChangedShell não é acionado imediatamente toda vez que um arquivo no disco associado a um buffer do Vim é alterado. Há tempos específicos em que o Vim verifica um arquivo alterado. De :help FileChangedShell
:
Mostly triggered after executing a shell command, but also with a
:checktime
command or when Gvim regains input focus.
Eu acredito que isso também acontece quando você pede ao Vim para escrever o arquivo.