Provavelmente, isso é melhor feito usando o modelo cliente-servidor de vim . Há uma boa orientação sobre como usá-lo em :help remote.txt .
Primeiramente, você precisará de um cliente vim compilado com a opção +clientserver . Se a sua distribuição não empacotar desta forma, obtenha a fonte (através de apt-get source , abs , et al) e adicione essa opção.
Uma vez feito isso, você precisará religar suas chaves em tmux para que, quando você mudar de janela, ele envie algo semelhante ao seguinte para a janela ativa:
vim --servername foo --remote-send '<C-\><C-N>:w<CR>'
Algo como o seguinte deve funcionar (não testado):
bind-key 0 run-shell "vim --servername foo --remote-send '<C-\><C-N>:w<CR>'" \; select-window -t :0