我将以下内容添加到我的~/.inputrc
:
set show-all-if-ambiguous on # single tab to start completion help
set completion-ignore-case on # completion is case-insensitive
$include /etc/inputrc
如果我运行strace bash
我可以看到它已加载:
stat("/home/john/.inputrc", {st_mode=S_IFREG|0644, st_size=156, ...}) = 0
open("/home/john/.inputrc", O_RDONLY) = 3
read(3, "set show-all-if-ambiguous on #"..., 156) = 156
close(3) = 0
stat("/etc/inputrc", {st_mode=S_IFREG|0644, st_size=714, ...}) = 0
open("/etc/inputrc", O_RDONLY) = 3
read(3, "# do not bell on tab-completion\n"..., 714) = 714
close(3)
= 0
鉴于:
$ ls ~
Projects Pictures
在新的 bash 窗口中cd p<TAB>
不会产生任何结果。
然而,如果我输入:bind 'set completion-ignore-case on'
,它会列出两个文件夹并按预期更改大小写。
我在这里缺少什么?
编辑:
/etc/inputrc 未修改并包含:
# do not bell on tab-completion
#set bell-style none
set meta-flag on
set input-meta on
set convert-meta off
set output-meta on
$if mode=emacs
# for linux console and RH/Debian xterm
"\e[1~": beginning-of-line
"\e[4~": end-of-line
"\e[5~": beginning-of-history
"\e[6~": end-of-history
"\e[7~": beginning-of-line
"\e[3~": delete-char
"\e[2~": quoted-insert
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word
"\e[1;5C": forward-word
"\e[1;5D": backward-word
# for rxvt
"\e[8~": end-of-line
# for non RH/Debian xterm, can't hurt for RH/DEbian xterm
"\eOH": beginning-of-line
"\eOF": end-of-line
# for freebsd console
"\e[H": beginning-of-line
"\e[F": end-of-line
$endif
答案1
似乎inputrc
支持# comments
,但只能在自己的行上而不是尾随。每条语句后面都有# comment
导致它无法应用。
set show-all-if-ambiguous on
set completion-ignore-case on
似乎按预期工作。