我知道对于阅读线来说,
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 库的应用程序的默认命令行编辑模式。