在zsh中使用_alternative轻松完成命令

时间:2019-11-28 17:26:33

标签: zsh completion

最后转而从bash切换到zsh ...我想进一步了解完成系统,可以使用快速指针。我已经能够使用其他补全来处理命令参数,但是我在尝试使用路径补全。

我使用一个简单的函数(cdp)跳转到项目目录。我已经建立了一个非常基本的完成脚本,该脚本几乎可以正常工作。我似乎无法获得我希望的行为。

理想情况下,键入cdp in{tab}将扩展到所有以in开始的项目,例如:

~/Projects/indigo ~/Projects/instant

相反,我只能获得cdp {tab}才能获得~/Projects路径。从那里,它将展开第一级目录。项目目录扩展后,我希望能够为cd运行标准完成。

这是完成脚本,保存在_cdp中并添加到fpath中:

#compdef cdp

basedir="$HOME/Projects"

# the function for jumping to directories...
cdp() {
  if [ -z "$1" ] ; then
    cd $basedir
  else
    cd "$1"
  fi
}

# completion helper...
_alternative "directories:user directory:($basedir/*)"

这是非常基本的,我只是试图找出下一步的工作。任何想法或指示都会很棒。谢谢!

更新

我发现cdpath可以很好地满足我的大部分需求...了解如何完成此简单功能仍然很有趣,但是至少到目前为止,我有一个使用{ {1}}和cdpath

0 个答案:

没有答案