![Bash 的“set -o vi”与 readline 自己的选项?](https://linux22.com/image/143059/Bash%20%E7%9A%84%E2%80%9Cset%20-o%20vi%E2%80%9D%E4%B8%8E%20readline%20%E8%87%AA%E5%B7%B1%E7%9A%84%E9%80%89%E9%A1%B9%EF%BC%9F.png)
我知道对于阅读线来说,
set editing-mode vi
您可以将上述选项放入~/.inputrc
,editing-mode
Readline 将其记录为
editing-mode
(emacs) 控制 readline 是否以一组类似于emacs
或 的键绑定开头vi
。editing-mode
可以设置为emacs
或vi
。
对于 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 库的应用程序的默认命令行编辑模式。