1

我在我的 zsh 配置文件中设置了几个函数,可以让我即时将别名保存到目录中。这非常简单 - 只需将 cd 的别名添加到目录中的 ~/.dirs 文件中即可。

在 zsh 中是否可以使来自该文件的别名在建议的选项卡补全中优先?例如,那里有一个名为“printeffect”的别名。如果我输入“printe”并点击选项卡,第一个完成建议是“printenv”。我希望它是“printeffect”。

4

1 回答 1

0

这应该有效:

  • 保存当前特殊别名的数组,您只需要在切换目录时重新定义数组

    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
    
于 2012-12-11T12:28:38.417 回答