![ncurses 应用程序无法在 iTerm2 中运行](https://linux22.com/image/193883/ncurses%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%97%A0%E6%B3%95%E5%9C%A8%20iTerm2%20%E4%B8%AD%E8%BF%90%E8%A1%8C.png)
我无法获得使用 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)发行说明)。