显示所有是否模棱两可vs显示所有未修改?

Kva*_*ass 5 bash readline tab-completion

我找不到关于Readline选项show-all-if-ambiguous和的区别show-all-if-unmodified以及它们是否影响不同的东西或相互排斥的清晰解释。官方文件很少。

123*_*123 6

使用手册页中的描述

如果未修改则显示所有

这将以类似于show-if-if-ambiguous的方式更改完成功能的默认行为。如果将其设置为“ on”,则具有多个可能补全而没有任何可能的部分补全(可能的补全不具有公共前缀)的单词会导致立即列出匹配项,而不是按响。默认值为“关闭”。

这意味着如果可以完成任何部分完成,则将填写它们,并且不会显示所有完成。
如果没有部分完成,则显示所有完成。

如果模棱两可则显示

这会更改完成功能的默认行为。如果设置为“ on”,则具有多个可能补全的单词会导致立即列出匹配项,而不是按响。默认值为“关闭”。

这意味着该单词将被部分完成,直到出现歧义为止并将一步打印所有的完成。


说我们有一个文件abcd.txtabce.txt

使用
所有未修改的内容

打字

$ls a<tab>
Run Code Online (Sandbox Code Playgroud)

将会呈现

$ls abc
Run Code Online (Sandbox Code Playgroud)

并再次按Tab键(因为没有部分完成)会导致

$ls abc
abcd.txt abce.txt
$ls abc
Run Code Online (Sandbox Code Playgroud)

使用
歧义显示

打字

ls a<tab>
Run Code Online (Sandbox Code Playgroud)

将会呈现

$ls a
abcd.txt abce.txt
$ls abc
Run Code Online (Sandbox Code Playgroud)

因此,只需一步就可以执行两个动作。

还要注意,如果所有显示都模棱两可,则会覆盖所有未修改的显示,因此,如果将两者都设置为on,则行为将与前者相同。