在 VIM 函数中延迟 TMUX 发送密钥



我有一个shell脚本(让我们将其命名为a.sh(,我可以在其中运行某个命令。在某些时候,此命令需要用户输入。

我已经设置了一个 vim 键绑定,我在 tmux 会话中运行a.sh

function! CreateTmux()
!tmux has-session -t mysession || tmux new-session -d -s mysession
!tmux send-keys -t mysession 'a.sh' Enter
" This should be delayed by a few seconds
!tmux send-keys -t mysession 'my choice' Enter
endfunction
nnoremap <F9> :call CreateTmux()<CR>

我想通过 tmux 对会话进行延迟send-keys,以输入我对提示的选择。这是我的代码。

限制:
1.我希望避免在 vim 中阻塞命令,以便我可以继续工作。
2.我无法编辑 a.sh 因此在没有提示的情况下无法通过。
3. 我没有 vim 8,无法在我正在使用的服务器上获取它。

您可以尝试在后台运行最后一个 tmux 行,并使用 shell 睡眠。将函数的最后一行替换为

!(sleep 4 && tmux send-keys -t mysession 'my choice' Enter)&

例如,如果要将&&替换为;,则只需要()

最新更新