terminal - tmux: Pane 分割线显示终端之间的差异

标签 terminal tmux

我正在将终端应用程序从 OSX 的 Terminal.app 切换到 Google Chrome Secure Shell app ,以及 tmux 中窗口中 Pane 之间的分割线从一个终端到另一个终端的变化方式。

在 Terminal.app 中,分割线就是这样一条线:

在 Secure Shell 中,分割线呈现为一行 qs:

我可以想到三种可能的情况:

  1. 这是我可以在 shell 中修复的设置。
  2. 我可以通过 Secure Shell 的偏好设置修复此设置。
  3. Secure Shell 的首选项尚不支持此设置。

但我不确定它是什么。如果是情况#3,我很乐意破解它,但我不确定是什么负责显示一行与 qs,所以我无法立足并开始谷歌搜索并了解需要做什么。

最佳答案

您的终端模拟器(Google Chrome Secure Shell)不支持备用字符集 (ASC) 功能,该功能由您连接到时有效的 TERM 环境变量指定的 terminfo 数据库条目公布(或启动)您的 tmux session 。

Chromium 项目有 an issue关于 Chrome 应用使用的终端模拟器中的字符集支持。

<小时/>

根据 VT100 User Guide, Table 3-9: Special Graphics Characters ,当选择“特殊图形集”时,使用q绘制“水平线-扫描5”。

terminfo 下,VT100 特殊图形字符可作为备用字符集 (ACS) 功能的一部分使用;请参阅 terminfo(5) man page 的“线条图形”部分.

<小时/>

如果您使用 tmux 1.4 或更高版本,并且 Google Chrome Secure Shell 支持 UTF-8,那么您应该能够通过以下方式获取 UTF-8 线条绘制字符将 -u 提供给您的 tmux 客户端(或者在运行 tmux 时将 UTF-8 存在于 LC_ALL、LC_CTYPE 或 LANG 中 客户端)。

或者,您可以配置tmux来取消设置与ACS相关的terminfo功能(在您的~/.tmux.conf中):

# Google Chrome Secure Shell does not (yet) support ACS; do not use it (for now).
set-option -ga terminal-overrides ',*:enacs@:smacs@:rmacs@:acsc@'

tmux 将回退到 ASCII 线条绘制(例如 -|+)连接的客户端不支持 UTF-8,并且其 TERM 的 terminfo 数据库条目(由 terminal-overrides 调整)不公布 ACS 功能。

注意:在配置更改生效之前,您基本上需要重新启动 tmux 服务器(退出所有 session )。

关于terminal - tmux: Pane 分割线显示终端之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10525400/

相关文章:

emacs - 如何将 <C-left> 发送到 Emacs 术语中?

在终端上找不到 Python 模块,但在 Python shell、Linux 上找到

bash - 如何使用 shell 命令运行 tmux

macos - 如何将 iterm2 选项卡标题设置为正在运行的 tmux session 名称的标题?

linux - 如果命令超过 1 行,如何在 shell 或 bash 中输入新行/移动到下一行而不执行命令?

macos - 具有权限的文件夹树

ubuntu - 如何在 tmux 中更改默认的开始选择键?

environment-variables - tmux为不同 session 设置 session 变量

tmux - 如何在 tmux 中用鼠标滚动(不是历史记录,而是终端输出)

ssh - 使用 ssh 和 byobu 更新 DISPLAY