От :help FileChangedShell
:
NOTE: When this autocommand is executed, the current buffer "%" may be different from the buffer that was changed "<afile>".
Вам нужно найти окно, в котором редактируется соответствующий файл. Для этого номер буфера (in <abuf>
) еще проще:
let winNr = bufwinnr(0 + expand('<abuf>')) execute winNr . 'wincmd w' edit
То же самое относится и к имени буфера; замещать
let MyBn = bufname("%")
с
let MyBn = expand('<afile>')