无法让“匹配隐藏文件”工作

无法让“匹配隐藏文件”工作

我一直在尝试让“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 icoTab以 开头的任何内容匹配,.因为您已经自己给出了文件名的开头。

手册页不是很明确:

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.

如果您这样做lsTab并且您有set match-hidden-files on(默认),它将更改为ls .icons第一个Tab并更改为:

$ ls .icons
.icons/  .icons2/ .icons3  .icons4/

在第二个上Tab,如果您将其设置为off它则不会。

一旦你开始使用它,无论 的值是多少,ls ico都不会追溯地在 之前添加点。imatch-hidden-files

请注意,您需要启动一个新的命令bash来检查对 的任何更改~/.inputrc,新命令不会重新读取它。由于match-hidden-files默认值为on,因此您无需显式设置它。

相关内容