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