终端快捷方式中的箭头键不起作用

终端快捷方式中的箭头键不起作用

我是 Linux 新手,正在使用 Ubuntu 13.04。我有一个名为“dictionary”(完整路径:)的 C++ 程序/home/anmol/Desktop/c++/dictionary,我用 Code::Blocks IDE(和 GCC 版本 4.7.3)编译了它。

我已经通过进入系统设置->键盘->快捷键并输入命令:为其设置了自定义键盘快捷键gnome-terminal --disable-factory -x /home/anmol/Desktop/c++/dictionary

现在我面临的问题是终端内的箭头键不起作用......例如,每当我按下左箭头键时,我都会得到“^[[D”......但是当我正常运行终端(通过按++ Ctrl)时,箭头键工作正常。AltT

现在,当我用 Google 搜索该问题时,我发现如果默认 shell 从 bash 更改为 sh,就会发生这种情况。

因此,在我的 c++ 程序中,为了查看默认 shell 是什么,我在函数system("chsh");后面添加了一行main(),结果发现默认 shell 仅为 bash!我仍然尝试添加该行,system("chsh -s /bin/bash")但问题仍然存在...(当我将sudo命令作为前缀时,它抛出了错误chsh: PAM:Authentication Failure)!

另外,在 Code::Blocks 环境设置页面中,我发现了以下两个设置:

  • Shell 中运行命令:/bin/sh -c
  • 终端启动控制台程序:gnome-terminal --disable-factory -t $TITLE -x

我更改了“运行命令的 Shell”:。/bin/bash -c但问题仍然存在。

答案1

首先安装rlwrap工具(Ubuntu 中默认未安装),运行以下命令终端

sudo apt-get install rlwrap

现在使用下一个命令设置您的自定义键盘快捷键:

gnome-terminal --disable-factory -x bash -c 'rlwrap -a /home/anmol/Desktop/c++/dictionary'

相关内容