在 tmux hg 输出中包含一些控制字符

In tmux hg output contains some control chars

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

git不会发生这种情况,屏幕不会发生这种情况。任何建议将不胜感激。谢谢

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

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

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

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

  • \hg --pager never --color always status|od说明了什么?

根据 Nicholas Marriott 的回答和 Rudi 的评论:问题似乎是 $TERM 在 tmux 中设置为 screen(而 std.gnome-terminal 将其设置为 xterm-256color 并筛选到 screen.xterm-256color).

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

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

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