Ctrl-e 和 Ctrl-a 在 Ubuntu Hardy 上不起作用?

Ric*_*ner 15 linux bash shell readline

我用的是 Mac,所以我的键盘上没有HomeEnd键。我也经常使用 SSH 连接到 Linux 服务器。我发现当我通过 SSH 连接到运行 Jaunty 的 Ubuntu Linux 服务器时,我可以使用 readline 键绑定Ctrl-a并且Ctrl-e将光标移动到行的开头或结尾,但是我经常使用几个 Hardy 服务器SSH 到,并且这些键绑定在连接到它们时不起作用。

我已经尝试从 Linux 机器连接到它们,以防万一这与我的 Mac 终端的配置方式有关,并且我看到了相同的结果。

有谁知道为什么,以及如何解决这个问题?

Tel*_*hus 24

只是一个想法,但尝试输入此内容并重试命令:

set -o emacs
Run Code Online (Sandbox Code Playgroud)

如果可行,请将设置放在~/.bashrc文件中以自动加载它。

如果你更喜欢 vi(m),你可以这样做:

set -o vi
Run Code Online (Sandbox Code Playgroud)

但是请注意,vi 绑定并不像 emacs 那样完整。


Ric*_*ner 6

找到答案了!/etc/bash.bashrcset -o vi中有它,由于某种原因,它阻止了 Ctrl-e 和 Ctrl-a 的工作。

  • `set -o vi` 命令使 Bash 使用 Vim 绑定。默认是 Emacs 样式绑定。因此,这不是“出于某种原因”,而是 `set -o vi` 调用了一组完全不同的 Readline 选项。有关如何即时切换的信息,请参阅我的答案。 (5认同)