ncurses 应用程序无法在 iTerm2 中运行

ncurses 应用程序无法在 iTerm2 中运行

我无法获得使用 ncurses 在 iTerm2 中工作的命令行工具。他们要么失败,要么退回到其他用户界面(如果有)(例如仅文本)。

示例可见光通信(通过 Homebrew 安装):

% /Applications/VLC.app/Contents/MacOS/VLC -I ncurses
VLC media player 3.0.16 Vetinari (revision 3.0.16-0-g5e70837d8d)
Error opening terminal: xterm-256color.

我尝试使用TERM(xterm, rxvt, vt100) env 变量的不同值,但得到了相同的错误。

有关 iTerm2 会话设置的更多详细信息:

% env | grep -i term
LC_TERMINAL_VERSION=3.4.9beta1
ITERM_PROFILE=Default
__CFBundleIdentifier=com.googlecode.iterm2
TERM_PROGRAM_VERSION=3.4.9beta1
TERM_PROGRAM=iTerm.app
LC_TERMINAL=iTerm2
COLORTERM=truecolor
TERM=xterm-256color

值得一提的是,这种情况仅发生在运行 macOS BigSur 11.5 的 M1 MacBook Pro 上。使用相同的 iTerm 设置,ncurses 应用程序可以在运行相同操作系统版本的 Intel Macbook Pro 中正常运行。

答案1

这应该是重复的,因为我在TERM=tmux-256color 导致“打开终端时出错”

如果你碰巧读到ncurses 6.1 发行说明,你可能会注意到这个评论:

此版本为使用扩展数字功能的终端描述提供了新的二进制格式。

(旧版本的 ncurses 无法读取该格式,如果您的应用程序碰巧尝试读取这些格式,它将失败)。

另外,在 ncurses 常见问题解答中:

由于版本太旧,ncurses 5.7 可能无法按预期工作。例如,命令 tput ed 被认为不适用于 MacOS。此外,ncurses 库不支持 256 色和直接色(分别在 ncurses 6.0 和 6.1 中完成),并且已知某些扩展即使仅使用低级 terminfo 或 termcap 接口也会出现故障(请参阅 ncurses 6.2)发行说明)。

相关内容