Provavelmente você pode usar o comando Vim :! para executar tmux send-keys para envie um Control-R † para o outro painel. Como o send-keys pode enviar pressionamentos de teclas para qualquer painel (não apenas o ativo), você nem precisa alternar os painéis ativos para frente e para trás.
Aqui está um mapeamento do Vim (você pode colocá-lo no seu .vimrc ou apenas colá-lo no prompt : para experimentá-lo):
:map <Leader>rl :w<Bar>execute 'silent !tmux send-keys -t bottom C-r'<Bar>redraw!<C-M>
Isso mapeia a sequência de teclas \rl (os padrões <Leader> são definidos como \ , mas pode ser personalizado), para a seguinte sequência de comandos do Vim (separados por <Bar> ; consulte :help map_bar ):
- Escreva o buffer atual em seu arquivo.
- Execute o comando tmux para enviar o Control-R para o painel ‡ inferior.
Usamosexecuteaqui para que o próximo comando Vim (redraw) não seja considerado parte do comando:!shell.
Usamos o comandosilentpara evitar o aviso "Pressione ENTER para continuar".
Você pode omitirslientse você quiser o prompt ou quiser ver a saída do comando:!(por exemplo, o comando tmux não está funcionando e você deseja ver se está dando erro mensagem). - Redesenhar a tela.
Isso normalmente ocorre após o prompt "Press ENTER", mas estamos suprimindo-o comsilent.
† Eu não tenho lynx em mãos, mas o Control-R parece ser a chave de recarga baseada em minha pesquisa por “reload lynx” (ie "Recarregar arquivos e atualizar a exibição" do guia do usuário.
‡ Além de bottom , existem outras formas de especificar o painel de destino (procure por “target-pane” no página de manual do tmux ):
-
.+1,.-1: próximo painel anterior nesta janela -
top,bottom,left,righte combinações detop/bottomcomleft/right
(por exemplo,bottom-left) -
%42( tmux > 1.5+): um número do painel pré-mes%%da variável de ambiente TMUX_PANE do painel de destinoEste último formulário pode ser útil se o seu painel Lynx não estiver sempre na mesma janela tmux da sua instância do Vim. Antes de iniciar o Lynx, salve o valor de TMUX_PANE em um arquivo temporário e leia o arquivo para formar o argumento do painel de destino:
# before running Lynx (anytime really, but "before" is usually scriptable) echo "$TMUX_PANE" > /tmp/my-lynx-pane # in the Vim :! command in the mapping: tmux send-keys -t "$(cat /tmp/my-lynx-pane)" C-r