如何将 inputrc 设置转换为 bashrc 设置?

如何将 inputrc 设置转换为 bashrc 设置?

.inputrc我希望对尽可能少的文件进行修改,因此除非绝对必要,否则我不想触摸。所以,给定.inputrc喜欢:

"\e[5~": history-search-backward
"\e[6~": history-search-forward

我怎样才能仅使用它们来应用它们bash

这个苏帖子表示bind可以从 读取.inputrc,并且bind的帮助说:

$ help bind
bind: bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]

history-search-*看起来像 readline 函数,所以我尝试了:

bind "\e[6~":history-search-forward
bind "\e[5~":history-search-backward

Page Up现在触发一个铃声,Page Down打印一个~.

有没有通用的方法让我在 中使用inputrc线条bash

答案1

根据我的情况,.bashrc你需要类似的东西

bind '"\e[6~": history-search-forward'

答案2

对于其他搜索的人来说,这适用于全部 inputrc命令:只需将它们用引号引起来,bind在前面推一个,就可以了(如果实际inputrc命令本身需要引号,请确保有不同类型的引号)。


例如,一个inputrc可以有

# makes tab-completion *immediately* return multiple options, 
set show-all-if-ambiguous on
# bind C-d to go forword, not crush the shell
"\C-d": shell-forward-word

要将它们放入您的中bashrc,只需

bind "set show-all-if-ambiguous on"
bind '"\C-d": shell-forward-word'

相关内容