一个最基本的需求是 terminfo 的统一。主流(或者说传统)的 terminfo 是 xterm-256color,但是也有很多例外情况。参见 ncurses 官方 terminfo 维护网页
https://invisible-island.net/ncurses/terminfo.src-sections.htmlterminfo 的统一,具体来说是本地 terminal 和远程机设置为同一个 terminfo (对你来说本地 terminal 是 vscode 自带的,远程机需要有足够的 terminfo 的数据文件),tmux 配置文件使用 tmux-256color 作为 terminfo 以避免大部分问题。我写了一个 wiki 页面介绍了 terminfo 获取和配置的须知:
https://github.com/g6ai/dotfiles/wiki/terminfo 。同一个 wiki 里也介绍了如何正确配置 tmux,terminal 等等。
如果 terminfo 的配置不对,使用 tmux 会遇到各种显示问题。推荐的自行解决思路是搞清 vscode 自带 terminal 如何设置的 terminfo,搞清远程机器的 tmux 如何设置的,搞清远程机器是否有相对完备的 terminfo 数据文件,我在 wiki 里有基本介绍。如果需要大家帮助,请提供上述信息,提供问题截图,大家方能帮助。
terminal TUI 环境的配置的确令人烦躁,不过你不是一个人,tmux,vscode,各个 terminal emulator 的 github issue 和 reddit 板块里有成千上万的帖子在讨论各种细节问题。