Navegue perfeitamente nas divisões tmux e vim

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 <Ch/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:

  1. tmux primeiro recebe o pressionamento de tecla;

  2. 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);

  3. 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;

  4. 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.