我使用不同的终端获得两种不同的行为,这是我的代码:
(use ncurses)
(initscr)
(curs_set 0)
(noecho)
(start_color)
(define win (newwin 20 50 1 1))
(wclear win)
(box win 0 0)
(for-each (lambda (y)
(for-each (lambda (x)
(mvwaddch win y x #\. ))
(iota 49)))
(iota 19))
(wrefresh win)
(wgetch win)
(endwin)
该代码是用 Chicken Scheme 编写的,但任何了解 nCurses 的人都可以轻松阅读。我认为我的问题与库无关,因为它是一个调用 C 函数的简单包装器。
但是,如果我使用 xterm、uxterm 或可以使用 CTRL-ALT-F1 输入的 Linux 终端,我会得到正确的行为(一个盒装窗口)。
.................................................┐
.................................................│
.................................................│
.................................................│
.................................................│
.................................................│
.................................................│
.................................................│
.................................................│
.................................................│
.................................................│
.................................................│
.................................................│
.................................................│
.................................................│
.................................................│
.................................................│
.................................................│
.................................................│
└────────────────────────────────────────────────┘
但如果我使用任何其他终端,如 gnome-terminal、terminator 或 sakura,我会得到以下信息:
.┐
.│
.│
.│
.│
.│
.│
.│
.│
.│
.│
.│
.│
.│
.│
.│
.│
.│
.│
└─┘
我不认为这是库错误,但我可以尝试用 C 重写示例(我的 C 有点生锈)。
听起来好像你的TERM
变量设置为xterm
,这偶尔会给基于 VTE 的终端(gnome-terminal 等)带来问题。这是一个常见问题解答(为什么不直接使用 TERM 设置为“xterm”?).
这不是一个错误(至少在 ncurses 中)。
将其设置为vte
如果你有一个完整的终端数据库就可以工作......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)