Linux 终端中的导航箭头

Linux 终端中的导航箭头

我目前使用的是 LTS 版 ubuntu,但我又一次发现有些不对劲。目前,默认安装中的 CTRL+[left/right] 不会逐字跳转。有点奇怪,如果我没记错的话,我认为 10 年前我在默认的 freebsd 中就可以正常使用它。无论如何,似乎默认的左右键在默认情况下也无法正常工作!如果我输入:

pxd[LEFT][LEFT][DEL]w[ENTER]

然后我得到了pwd,显然(希望如此?)我现在注意到的是,它在普通的 c++ cmd 行应用程序中不起作用。以下是示例代码:

#include <iostream>
#include <string>
using namespace std;
int main()
{
        string s;
        getline(cin, s);
        cout << "\n\n{\n" << s << "\n}" << endl;
}

现在编译并运行它:g++ test.cpp -o test && ./test然后输入与 bash 相同的按键序列pwd。突然它就不起作用了。我得到了这样的混乱:p[3~w

所有 *nixes 中的终端有什么问题?

答案1

诸如getline()方法之类的简单功能使用内核的 tty 驱动程序的 cooky 模式,该模式仅具有一些真正基本的行编辑功能(退格、^W删除单词等),但不支持箭头等。

要获得完整的行编辑功能,您应该使用readline库而不是getline()

相关内容