cwd*_*cwd 5 command-line zsh environment-variables variable
在之前针对 bash 的问题中,我问如何在命令行中扩展相对路径并使用制表符补全?
我喜欢 @Mikel 的答案,其中提到使用Ctrl+ Alt+e来扩展所有变量,并且我经常使用它。
从那时起,我已经切换到,zsh
虽然我可以键入$PWD
并按Tab以展开当前目录的路径,但如果我键入类似的内容$PWD/.profile
并按Tab它不会展开。
我已经阅读了类似的问题,并且看到了有关扩展别名的答案,以及如何通过键入变量并按来扩展变量,但没有什么与在 中按+ +Tab相同 。CtrlAltebash
是否有某种方法允许转义序列(例如Ctrl+ Alt+)e展开正在输入的命令行中的所有变量zsh
?
您可以设置compinit来扩展您的参数~/.zshrc
:
zstyle ':completion:*' completer _expand _complete
autoload -Uz compinit
compinit
Run Code Online (Sandbox Code Playgroud)
这是一个最小的设置,如果您已经启用了compinit_expand
,那么添加到以下设置就足够了completer
还有一个expand-word
默认绑定到^X*
( Ctrl+ x *) 的小部件,其本质上与 bash 中的绑定相同。
注意:这两种方法仅适用于当前单词。
作为替代方案,zsh
您实际上可以执行原始问题中所要求的操作:将相对路径转换为绝对路径。以下是联机帮助页中的一个稍作修改的示例zshcontrib(1)
:
zstyle ':completion:*' completer _expand _complete
autoload -Uz compinit
compinit
Run Code Online (Sandbox Code Playgroud)
这定义了abspath-word
小部件,它用绝对路径表示替换当前单词并将其绑定到Ctrl+ xp。