zsh - 在 zsh 中使用 _alternative 完成简单的命令
问题描述
终于开始切换到zsh(从bash)......我试图更多地了解完成系统并且可以使用快速指针。我已经能够让其他完成来处理命令参数,但我正在努力解决路径完成。
我使用一个简单的函数 ( 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
可以很好地满足我的大部分需求......知道如何完成这个简单的功能仍然很有趣,但现在至少我有一个使用cdpath
and的工作解决方案auto_cd
。
解决方案
推荐阅读
- ios - 如何在不使用 Cocoa Pods 的情况下添加或读取 Google 日历事件 iOS [Swift]
- visual-studio-2017 - SSDT 数据库解决方案中的重复项目引用
- postgresql - 使用 Conditionals(CASE) 从另一个字段中检索一个值,如果主要请求的字段是 None 或空
- python - Tkinter Button 在被禁用和更新后仍然响应点击
- c# - 我是否将 JoinableTaskFactory 与 AspNetCore 一起使用?
- react-native - 我可以使用 react-native-webview 渲染漏洞 HTML 页面吗?
- python - 我如何在这个脚本中从 file.txt 导入 python?
- sql - 如何插入记录并返回主键以更新另一个表中的外键?
- android - Firestore 中的复杂数据库建模
- javascript - 如何控制加载了加载查询功能的元素