Tom Hale Asked: 2018-12-10 18:08:36 +0800 CST2018-12-10 18:08:36 +0800 CST 2018-12-10 18:08:36 +0800 CST 为什么我的 readline / .inputrc 配置被忽略? 772 我的配置行中有.inputrc: set enable-bracketed-paste on # Insert paste as a string rather than possibly running it 这在命令行中键入时有效: bind 'set enable-bracketed-paste on' 但是,当我开始时没有设置变量bash v4.4.23。 为什么这条线被忽略了? readline inputrc 2 个回答 Voted Best Answer Tom Hale 2018-12-10T18:08:36+08:002018-12-10T18:08:36+08:00 TL;博士: 将注释放在单独的行中以进行配置。 如果该行有效,则行尾的注释会导致readline默默地忽略整行。 手册确实说: Lines beginning with a ‘#’ are comments. 它并不是说注释会导致其他有效的配置行被忽略。 这很奇怪,因为这行: set foobar on # baz 结果是: readline: /home/ravi/.config/readline/inputrc: line 34: foobar: unknown variable name 这意味着以 a#结尾的行确实被解析为有效性。如果它们是有效的,它们就会被忽略。 user232326 2018-12-12T00:28:58+08:002018-12-12T00:28:58+08:00 readline 的解析器似乎不是那么好: $ bind 'set "enable-bracketed-paste" "on" '; echo $?; bind -v | grep 'bracketed' 0 readline: "enable-bracketed-paste": unknown variable name $ bind 'set enable-bracketed-paste "on" '; echo $?; bind -v | grep 'bracketed' 0 set enable-bracketed-paste off $ bind 'set enable-bracketed-paste on '; echo $?; bind -v | grep 'bracketed' 0 set enable-bracketed-paste on $ bind 'set enable-bracketed-paste on .'; echo $?; bind -v | grep 'bracketed' 0 set enable-bracketed-paste off 似乎选项后面的任何字符串都被视为选项的一部分(也许?)。 手册指出注释仅位于行首,因此,我建议您遵守该规则。相反,使用: # Insert paste as a string rather than possibly running it set enable-bracketed-paste on
TL;博士:
将注释放在单独的行中以进行配置。
如果该行有效,则行尾的注释会导致
readline
默默地忽略整行。手册确实说:
它并不是说注释会导致其他有效的配置行被忽略。
这很奇怪,因为这行:
结果是:
这意味着以 a
#
结尾的行确实被解析为有效性。如果它们是有效的,它们就会被忽略。readline 的解析器似乎不是那么好:
似乎选项后面的任何字符串都被视为选项的一部分(也许?)。
手册指出注释仅位于行首,因此,我建议您遵守该规则。相反,使用: