在中zsh
,cd
命令具有两个参数的形式:cd OLD NEW
更改为${PWD/OLD/NEW}
。使用新式的完成系统,zsh能够完成NEW
:第二个参数根据OLD
可以替换为现有目录的内容完成。但是第一个参数仅在现有目录中完成。
OLD
除了完成现有目录之外,zsh如何让zsh提供可能的值?
例如,如果当前目录是,/path/to/foo
并且还有目录/also/to/foo
和/path/to/foo/prime
,则cd p
Tab完成p
到prime
。如果我打算运行,cd path also
那么我希望zsh也可以path
作为补充。怎么样?
使用第二个参数的已经输入的值来限制第一个参数的可能性是一个加号,但是独立完成第一个参数也可以。
@JeffSchaller第二个参数敏感的示例是
—
吉尔斯(Gilles)'所以
cd p also<Left*5><Tab>
:如果<Tab>
在光标处于位置时按,则also
希望also
完成,而不是p
。
如果输入
—
巴马尔
cd t<tab>
,它应该提供th/to/foo/prime
和to/foo/prime
?还是应该只将自己限制在目录边界?
@Barmar我认为限制目录边界将是最方便的。
—
吉尔斯(Gilles)'所以
有趣的问题……
—
wogsland
cd p also <Tab>
还是cd p also <left arrow x 5> <Tab>
?