我在我的 zsh 配置文件中设置了几个函数,可以让我即时将别名保存到目录中。这非常简单 - 只需将 cd 的别名添加到目录中的 ~/.dirs 文件中即可。
在 zsh 中是否可以使来自该文件的别名在建议的选项卡补全中优先?例如,那里有一个名为“printeffect”的别名。如果我输入“printe”并点击选项卡,第一个完成建议是“printenv”。我希望它是“printeffect”。
这应该有效:
保存当前特殊别名的数组,您只需要在切换目录时重新定义数组
typeset -U MY_DIR_ALIASES
MY_DIR_ALIASES=(foo1 foo2 foo3 foo-etc)
自定义完成函数_foo
(文件名是_foo
)在光标位于某个-commands-
位置时完成:
_foo() {
cmds=( $MY_DIR_ALIASES )
_describe -commands- cmds
}
或者,如果您将其保存在名为的文件中_foo
:
#compdef -command-
# -*-shell-script-*-
cmds=( $MY_DIR_ALIASES )
_describe -commands- cmds
使这个完成函数在任何其他函数之前运行:
zstyle ':completion:::::' completer _foo _complete _approximate