![如何将 inputrc 设置转换为 bashrc 设置?](https://linux22.com/image/73637/%E5%A6%82%E4%BD%95%E5%B0%86%20inputrc%20%E8%AE%BE%E7%BD%AE%E8%BD%AC%E6%8D%A2%E4%B8%BA%20bashrc%20%E8%AE%BE%E7%BD%AE%EF%BC%9F.png)
.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'