tmux:在run-shell命令后挂起,不响应任何命令

mak*_*imr 5 tmux

我在tmux 1.8中遇到绑定问题.

当我键入运行shell的命令时出现问题例如:

bind y run-shell "tmux show-buffer | xclip -sel clip -i"
Run Code Online (Sandbox Code Playgroud)

我键入y执行命令后,tmux不响应任何其他绑定(例如w)可能需要几分钟,然后您可以使用绑定.

可能是什么问题呢?它出现在1.8版本(1.7版本都可以)OS Ubuntu 13.04(64)

G M*_*awr 9

从tmux的缓冲区读取后,xclip似乎没有关闭STDOUT.因此,tmux不知道复制任务已完成,并继续/等待xclip的终止,从而使窗口管理器无响应.

来源:https://wiki.archlinux.org/index.php/Tmux#X_clipboard_integration

管道输出/dev/null应该修复它:

bind y run-shell "tmux show-buffer | xclip -sel clip -i > /dev/null"
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅/sf/answers/1483316411/.


小智 2

问题是 tmux 正在等待该命令返回,并且它挂起。这有效地阻止您执行任何 tmux 命令。我通过在 run-shell 之后添加 -b 来解决这个问题,这使得命令在后台运行。问题是这些进程会一直存在,因此这不是一个完美的解决方案。

解决此问题的另一种方法是关闭窗口并重新连接会话。