Bash 的“set -o vi”与 readline 自己的选项?

Bash 的“set -o vi”与 readline 自己的选项?

我知道对于阅读线来说,

set editing-mode vi

您可以将上述选项放入~/.inputrcediting-modeReadline 将其记录为

editing-mode(emacs) 控制 readline 是否以一组类似于emacs或 的键绑定开头viediting-mode可以设置为emacsvi

对于 Bash 来说,还有:

set -o vi

根据bash 文档

vi使用vi风格的行编辑界面。这也会影响用于 read -e 的编辑界面。

Bash 能-o vi做到吗任何事物除了设置适当的 Readline 模式之外?而且,如果你已经做好了editing-mode准备,~/.inputrc这会有什么不同吗?

答案1

两者是相同的。

set -o vi在交互式 shell 中执行操作bash会调用set内置函数。 set内置调用的 C 代码rl_variable_bind("editing-mode", option_name)(其中option_name将是vi)这是设置命令行编辑模式的Readline库函数。

set -o在 shell中的命令行上设置命令行编辑模式bash将覆盖 中配置的相应设置~/.inputrc

设置编辑模式~/.inputrc会将其设置为任何使用 Readline 库的应用程序的默认命令行编辑模式。

相关内容