【问题标题】:In tmux hg output contains some control chars在 tmux hg 输出中包含一些控制字符
【发布时间】:2020-03-04 23:00:48
【问题描述】:

我正在尝试从屏幕切换到 tmux。当我运行 hg status 时,我得到如下损坏的输出:

这不会发生在 git 上,也不会发生在 screen 上。任何建议将不胜感激。谢谢。

【问题讨论】:

  • 当你 script 屏幕上的输出 vs tmux 时会发生什么?它们看起来一样吗?
  • @jeremysprofile 使用脚本没有任何变化,在屏幕上或标准上。 gnome 终端输出正常,在 tmux 上它的损坏方式与没有脚本时完全相同。
  • 看起来 mercurial 认为您在 VT100 终端上。我猜 $TERM 设置不正确。试试TERM=xterm-256color hg st 看看有没有变化

标签: mercurial tmux


【解决方案1】:

嗯,看来 hg 正在做一些很奇怪的事情。我的猜测是它对如何显示颜色有完全错误的想法,但应该没有理由让它在 tmux 中做任何与屏幕不同的事情。

  • 在运行 hg 之前,echo $TERM 在 tmux 中显示什么?它在 tmux 之外显示了什么?

  • 您是否创建了.hgrc 或类似的配置文件?里面有什么?

  • \hg --pager never --color always status是不是也一样?

  • \hg --pager never --color always status|od 显示什么?

【讨论】:

    【解决方案2】:

    根据 Nicholas Marriott 的回答和 Rudi 的评论:问题似乎是 $TERM 在 tmux 中设置为 screen(而标准 gnome-terminal 将其设置为 xterm-256color 和屏幕设置为 @987654323 @)。

    因此解决方案(至少对我有用)是在~/.tmux.conf 中设置终端,如下所示:

    set -g default-terminal "screen.xterm-256color"
    

    注意:使用 hg --pager never 也可以,但这不是可接受的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-17
      • 1970-01-01
      • 1970-01-01
      • 2018-09-17
      • 2016-05-21
      • 1970-01-01
      • 2015-05-31
      相关资源
      最近更新 更多