〜/ .inputrc文件无法正确来源


14

我有为某些按键绑定创建的〜/ .inputrc文件。

# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\e[1;5C":forward-word
"\e[1;5D":backward-word
"\e[5C":forward-word
"\e[5D":backward-word
"\e\e[C":forward-word
"\e\e[D":backward-word

每当我尝试运行时source ~/.inputrc,都会出现以下错误:

\ e [1; 5C:forward-word:找不到命令。\ e [1; 5D:向后单词:找不到命令。\ e [5C:forward-word:找不到命令。\ e [5D:向后单词:找不到命令。\ e \ e [C:forward-word:找不到命令。\ e \ e [D:后退单词:找不到命令。

当我打开新终端时,它也不起作用,我没有收到错误,但我的ctrl组合键在新终端中也不起作用。我自己创建了该文件,因为我没有root权限来更改/ etc / inputrc。有人可以帮我吗?谢谢。

编辑:我也尝试了冒号(:)后的空格文件。没用 我也尝试过使它可执行(chmod + x〜/ .inputrc),没有用。

编辑:我意识到此过程仅适用于'bash',而我正在运行'tcsh'。对于'csh',请使用.bindingsfile而不是.inputrcfile并使用bindkey语法。

Answers:


12

对于bash,这将立即重新加载当前定义的映射

bind -f  ~/.inputrc

从哪里获得bind命令?
danijar '18

bind是内置的shell。您在运行什么操作系统?
保罗

我在zsh中使用Debian。
danijar '18

在RHEL 7上使用bash时,这对我不起作用。运行此命令后,仍然无法重新加载.inputrc绑定。
user5359531

@ user5359531,可能是您以前的绑定不是“正在卸载”吗?(如果未显式设置它们,则它们将像以前一样保留。)也许还有其他东西,例如您的〜/ .inputrc没有$include /etc/inputrc
mwfearnley

6

.inputrc文件不是要获取的文件。bash或使用readline库的其他软件应自动考虑它。如果这不起作用,请在冒号后面添加一个空格,例如

"\e[1;5C": forward-word

(我一直在此配置文件中看到一个空格)。


1
+1强调“使用readline库的其他软件”。.inputrc不是shell脚本;这是一个readline配置文件。
chepner 2014年

实际上,这就是我首先拥有它的方式,然后将其更改为没有空间,只是为了进行尝试。无论哪种方式都行不通。我已经在编辑中添加了它。谢谢。
rrlamichhane 2014年

5

有问题的键绑定和~/.inputrc文件是针对的bash。对于csh(或tcsh),请使用文件~/.bindings并使用以下语法。

bindkey '^[[1;5C' forward-word
bindkey '^[[1;5D' backward-word

谷歌搜索后意识到这一点。


无论出于什么原因,我的Tsch都忽略了.bindings文件。添加source ~/.bindings到我的~/.cshrc文件中解决了这个问题。
drmuelr
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.