Mar*_*cus 4 command-line bash 10.10 special-characters 11.04
我在插入反斜杠时遇到了一个奇怪的问题(Ubuntu 10.10 和 11.04,升级没有改变)。我的键盘(瑞典 Thinkpad T400)上的组合键是 AltGr + ?。然而,这似乎不是问题,因为它只出现在某些程序中。
例如,对于 bash 4.2、python 2.7、python 3.2、swipl 5.10,我无法在终端中键入或复制粘贴反斜杠。使用 ash、csh、ghci、nano、vi、idle、idle3,一切都按预期运行,我可以输入和复制粘贴。例如,复制
echo gurka\\\\agurk
Run Code Online (Sandbox Code Playgroud)
(四个字面反斜杠)并将其粘贴到 csh 中(然后按回车键),我得到
$ csh
% echo gurka\\\\agurk
gurka\\agurk
Run Code Online (Sandbox Code Playgroud)
但是用 bash,我得到
$ echo gurkaagurk
gurkaagurk
Run Code Online (Sandbox Code Playgroud)
不幸的是,在许多新安装之后,我第一次注意到它,我不知道它何时首次出现。我怀疑第一组常见的某个库的错误或冲突配置,但不是第二组,但我不确定如何继续。这非常烦人,我很感激提示。
更新: konsole 的行为以及使用 Ctrl-Alt-F1 获得的任何结果(这是我测试过的)的行为都是相同的。它也不适用于 gnome-terminal 和 xterm,但这两个指示错误(通过闪烁)。关于检查什么的想法?
更新:问题已解决,感谢 Gilles!这是 readline 库 (.inputrc) 的错误配置
马库斯
我认为您使用的所有程序都使用readline库来读取输入。所以我猜你错误地配置了 readline 库。系统配置文件是/etc/inputrc
,每个用户的文件是~/.inputrc
. 您可能在绑定中放置了过多的反斜杠,因此不是将命令绑定到转义序列,而是将其绑定到以反斜杠开头的序列。
右: "\e[1;5C": forward-word
(通过发送转义序列Ctrl+ Left)
:错误的 "\\e[1;5C": forward-word
(\ e [ 1 ; 5 C)
如果问题仅在 bash 中,则有问题的绑定将在~/.bashrc
. 请注意,.bashrc
上面的绑定将被写入bind "\\e[1;5C: forward-word"
,带有两个反斜杠,因为 bash 在将定义传递给 readline 之前会进行一轮反斜杠扩展。(bind '\e[1;5C: forward-word'
也可以,因为反斜杠在单引号中失去了它们的特殊含义。)