在中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 pTab完成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>?