在 vim 函数中延迟 tmux 发送键
delay tmux send-keys in vim function
我有一个 shell 脚本(我们将其命名为 a.sh
),其中我 运行 某个命令。在某些时候,此命令需要用户输入。
我在 tmux 会话中 运行 a.sh
设置了 vim 键绑定。
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)&
例如,如果您想用 ;
替换 &&
,则只需要 ()
。
我有一个 shell 脚本(我们将其命名为 a.sh
),其中我 运行 某个命令。在某些时候,此命令需要用户输入。
我在 tmux 会话中 运行 a.sh
设置了 vim 键绑定。
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)&
例如,如果您想用 ;
替换 &&
,则只需要 ()
。