【问题标题】:Can tmux query physical terminal? (Maybe iTerm2 only)tmux 可以查询物理终端吗? (也许只有 iTerm2)
【发布时间】:2018-09-25 22:29:39
【问题描述】:

我正在尝试检测 iTerm2 的存在,如果我在 iTerm2 (echo -n $'\e[5n'; read -s -t 0.1 line; printf '%q\n' "$line") 中运行以下命令,终端会回复 $'\033'\[ITERM2\ 3.2.1n$'\033'\[0n

但是,如果我在终端中运行 tmux 会话,则 tmux 会响应并且什么也没有给我。

知道如何让 tmux 查询物理终端以报告其状态吗?

脚注

【问题讨论】:

  • 在这种情况下,echo 回显到它所在的直接终端,即 tmux。然后 tmux 必须将 $'\e[5n' 传递给它包含在 (iTerm2) 中的终端,但 tmux 会亲自响应 echo。我个人不确定如何避免这种情况。
  • 我刚刚找到了这个 [unix.stackexchange.com/questions/213799/…],也许我可以在 tmux 中绑定一个响应,让它在看到 '\e[0n' 时输入这个词

标签: tmux iterm2


【解决方案1】:

根据 freenode 的 #tmux 中的 ft(以及在 this Super User answer 中看到的),您可以使用:

'\ePtmux;\e" STUFF_FOR_THE_TERMINAL_HERE "\e\\'

所以,应该是这样的:

echo -n $'\ePtmux;\e\e[5n\e\\'

【讨论】:

    猜你喜欢
    • 2012-10-03
    • 2022-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-15
    • 2012-04-18
    • 1970-01-01
    相关资源
    最近更新 更多