如何重新加载.inputrc?


98

背景

我听说readline模块正在读取~/.inputrc,这就是它如何更改bash等程序下的击键行为。

如何在编辑后重新加载此文件以查看更改的行为而无需重新启动终端程序?


8
背景(没错)
丹尼斯·威廉姆森

3
我是来这里寻找如何使用命令加载.inputrc的。superuser.com/q/419670/56544
dfrankow

1
@CaptainLepton我看到了。终端与外壳不同。这样做exec bash在bash命令将更换新的bash命令当前shell会话。xterm是一个终端。
Kusalananda

1
@Kusalananda感谢您的澄清。那是一个好主意。您是否将运行> exec bash描述为在当前终端中运行新shell而不是在替换先前的可执行文件时重新启动bash?
普顿船长,2016年

1
是的,没有办法“重新启动”当前的s​​hell会话。这是一种方法。使用@maxelost提供的解决方案是另一种方法。
Kusalananda

Answers:


82

默认情况下,C-x C-r绑定到re-read-init-file

有关说明,请参见《Bash参考手册》。


4
这对我不起作用。我在.inputrc文件中尝试了其他映射,也没有运气:“ \ eX \ eR”:重新读取初始化文件有什么建议吗?
莱普顿船长,

6
@Captain实际上,它可以,但是它不清除同时删除的击键。如果例如添加一些,它们将被加载。您唯一的解决方案bash -l是全新初始化的新的(行为类似于登录shell的shell)。
丹尼尔·贝克

我当时在编辑,/etc/inputrc但几乎没空~/.inputrc,无法/etc/使用它。删除~/.inputrc导致读取/etc/inputrc并激活我的更改。
Malvineous

1
@Malvineous我以前就被它迷住了..如果您添加$include /etc/inputrc到的顶部~/.inputrc,它可以避免此问题。
mwfearnley

53

您也可以使用从命令行重新加载新条目bind -f ~/.inputrc。这将加载.inputrc中的条目。请注意,它只是加载,而不是“重新加载”-因此它不会重置您碰巧从.inputrc中删除的任何行。

要从干净的面板快速进行测试,只需运行bash然后在新的嵌套shell中工作(或启动新的终端)即可。


我明白了,如果我错了,请纠正我,bind -f那只会真正接受文件名,而不接受文件,因此bind -f <(echo 'one line with ~/.inputrc syntax')(或琐碎的bind -f <(cat ~/.inputrc))之类的东西将不起作用。这有点烦人。你知道我在这方面能做什么吗?
恩里科·玛丽亚·德·安吉利斯


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.