我一直在尝试让“match-hidden-files”在 bash 4.3.11 上工作,但我做不到。我想确保这不是我做错的事。
$ grep match-hidden-files .inputrc
set match-hidden-files on
以下是示例文件夹:
$ ls -ld .icon*
lrwxrwxrwx 1 victor victor 57 Oct 20 10:39 .icons -> /home/victor/Sync/BitTorrentSync/victor/ConfigFiles/icons
drwxrwxr-x 2 victor victor 4096 Nov 2 00:14 .icons2
-rw-rw-r-- 1 victor victor 0 Nov 2 00:55 .icons3
drwxrwxr-x 2 victor victor 4096 Nov 2 00:59 .icons4
当我输入“cd ico”(不带“.”)并按时,Tab没有任何反应。我希望看到这个:
$ ls .ico
.icons/ .icons2/ .icons3 .icons4
答案1
您不应期望看到cd ico
Tab以 开头的任何内容匹配,.
因为您已经自己给出了文件名的开头。
手册页不是很明确:
match-hidden-files (On)
This variable, when set to On, causes readline to match files
whose names begin with a `.' (hidden files) when performing
filename completion. If set to Off, the leading `.' must be
supplied by the user in the filename to be completed.
如果您这样做ls
Tab并且您有set match-hidden-files on
(默认),它将更改为ls .icons
第一个Tab并更改为:
$ ls .icons
.icons/ .icons2/ .icons3 .icons4/
在第二个上Tab,如果您将其设置为off
它则不会。
一旦你开始使用它,无论 的值是多少,ls ico
都不会追溯地在 之前添加点。i
match-hidden-files
请注意,您需要启动一个新的命令bash
来检查对 的任何更改~/.inputrc
,新命令不会重新读取它。由于match-hidden-files
默认值为on
,因此您无需显式设置它。