Entre os painéis tmux e as divisões do Vim, é difícil controlar o contexto atual para saber quais combinações de teclas usar para navegar nas divisões. Por muito tempo, usei <C‑h/j/k/l>
pressionamentos de tecla dentro do Vim para alternar para a próxima divisão na direção fornecida e queria usar o mesmo para painéis tmux. Porém, se eu simplesmente vincular as mesmas chaves no tmux, elas parariam de funcionar no Vim.
Eu desenvolvi uma solução que configura o tmux e o Vim para cooperar nesse sentido. Funciona mais ou menos assim:
tmux primeiro recebe o pressionamento de tecla;
Se o painel atual do tmux contém vim rodando em primeiro plano (
tmux display -p '#{pane_current_command}'
), o tmux encaminha a tecla pressionada para ele (tmux send-keys
);O Vim tenta alternar as divisões na direção determinada e, quando isso não é mais possível, ele retorna o comando para tmux;
tmux muda o painel na direção dada.
Com isso consigo navegar pelos splits sem ter que prestar atenção se vêm do vim ou do tmux. É libertador.