这是我的.inputrc
9 set show-all-if-unmodified on
10 set menu-complete-display-prefix on
11 #set completion-ignore-case on
12 set disable-completion on
1)我如何停止bash尝试显示所有可能的结果,而只列出与ls
相同的结果?
当前行为:
[11:56:33dev@srv:~/test/config$ [Tab]
Display all 1643 possibilities? (y or n)
所需行为:
[11:39:07]dev@srv:~/test/config$ ls[Tab]
a.ini config.ini environment.ini mappings.csv market.ini trace.ini
2)当发现结果不明确时,如何停止bash自动完成,而仅显示可能结果的列表?
当前行为:
[12:04:50]dev@srv:~/test/config$ ./ma[Tab]
mappings.csv market.ini
[12:04:50]dev@srv:~/test/config$ ./mappings.csv
所需行为:
[12:04:50]dev@srv:~/test/config$ ./ma[Tab]
mappings.csv market.ini
[12:04:50]dev@srv:~/test/config$ ./ma
答案 0 :(得分:0)
快速浏览Bash Reference Manual之后,要解决第一个问题,请尝试以下操作:
set completion-query-items -1
set page-completions off
completion-query-items
确定用户何时处于的可能完成的次数 问是否应显示可能性列表。一种 负值表示Readline永远不要问。
第二个问题(因为您正在使用./
)实际上可能是其中一个文件被标记为可执行文件,而第二个文件则未被标记为可执行文件。看看这个片段:
$ touch foo foobar
$ ./fo<TAB> # neither file is executable so nothing is completed
$ chmod +x foo
$ ./fo<TAB>
$ ./foo # foo is the only file executable and is completed
$ chmod +x foobar
$ ./foo<TAB>
./foo ./foobar # both files are executable and the completion is now ambiguous
尝试执行cat ma<TAB>
,以查看行为是否符合预期。