首页 > 解决方案 > 如何从 ncurses getch() 返回 Ctrl+M?

问题描述

我正在使用 ncurses 编写应用程序并尝试从键盘获取 CTRL-M 按键。每当我按下 CTRL-M(又名 \r)时,Ncurses 都会返回 CTRL-J(又名 \n),所以我怀疑它在某处进行 CRLF 翻译。我的程序在 raw() 模式下运行,所以我认为它不应该进行任何翻译。这是一个 ncurses 问题还是来自上游的某个地方,比如终端驱动程序?

我怎样才能让它在没有翻译的情况下给我原始按键?

FWIW 我在 Linux 上使用 ncurses,在 xfce4-terminal 中运行 bash。我的术语是 xterm-256color。我在 Google 上搜索并检查了 ncurses 文档,但在此问题上找不到任何内容。

标签: clinuxncurses

解决方案


你需要打电话nonl()。尽管它记录在outopts手册部分,但它也会影响输入。


推荐阅读