Tl;dr - 如何找到在 ssh 连接的远程端运行的命令的名称(例如 $BASH_COMMAND)?
...
我的示例设置是两个 tmux 垂直窗格,
- LH 窗格运行具有垂直分割的本地 vim 会话,
- RH 窗格运行运行 vim 的 ssh 会话,同样带有垂直分割。
使用 tmux-navigator,我可以从左到右导航前 3 个 vim 缓冲区,但第 4 个(最右边的缓冲区)无法访问。
原因是 tmux-navigator 测试“pane_current_command”的值并将其与“vim”进行比较,然后再决定要分派哪些按键。在右侧 tmux 窗格中,当前命令是“ssh”,而不是“vim”。
我想要做的是测试 (pane_current_command =~ 'ssh'),如果是,检查在连接远端运行的命令?我找不到办法来解决这个问题,所以欢迎提出任何建议?
供参考,该问题几乎与此问题相同,但没有嵌套的 tmux 会话: https://github.com/christoomey/vim-tmux-navigator/issues/12
答案1
通常不可能知道ssh
正在运行什么命令。但是,根据您的情况,您可以在启动之前设置窗格标题vim
,例如:
printf '\033]2;vim\033\\'
并受到tmux
检查pane_title
。