#14045·奥米兹

feat(cli): 在模板中添加 `omz generate plugin` 以生成自定义插件

作者: robbyrussell创建于 2026年9月5日更新于 2026年9月5日
标签Feature

□ 问题

"我怎样做我自己的插件?"是我们得到的最常见问题之一,今天诚实的回答是"看看‘Custom/plugins/example/',读出维基,然后在‘plugins/'中逆向修改几个插件". 例子分三行。 所有人们真正需要知道的东西... ‘$+commands' 的警卫, 如何获得完成, 一个README应该是什么样子...

关于一个好插件的外观,我们有很多积累的知识。 我希望工具能直接交给你

这是一个实验。 目标是降低栏杆,让更多人用自定义的插件来玩自己的工作流程... 不一定把它们提交上游,只是提交到工匠。 如果它成功了,它也给了我们一个自然的护花板 对于那些确实变成了贡献。

□ 我在建的:`omz 生成插件'

铁道产生"风格"的脚手架. 运行它, 回答几个问题( 或通过标记) , 在“ $ZSH CUSTOM/ plugins/ / ” 中获得一个工作完善的插件, 您可以立即开始编辑 。

用法: omz 生成插件 [<名> [选项]

-d, --描述 <text> README 和文件头的一行描述
-c, --command <cmd> CLI工具 此插件包接。 添加一个$+命令守护
和脚手架的完成功能
无完成 跳过完成脚手架
可执行 完成时将插件添加到.zshrc中的插件=()
(重新开始你的壳)
-y, --yes 永远不要提示;未给出的,使用默认

任何你没有作为旗帜通过的东西都会被交互询问. 在非交互式 shell (script, CI, 重定向 stdin) 中,它只是使用默认,一个缺失的名称是使用错误.

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}什么样子的会话

$ omz 生成插件
omz 生成插件: 插件名称: foo
omz 生成插件: 简短描述 [Oh My Zsh的foo插件]: Foo CLI 快捷键
omz 生成插件: 命令行工具 此插件包 (空白表示无) [foo] :
omz 生成插件: 添加一个完成函数(   foo) ? [Y/n] y
omz 生成插件: foo 是否生成自己的 zsh 补全, 例如“ foo 补全 zsh ”) ? [y/N] n
omz 生成插件: 现在将 foo 添加到 .zshrc 中的插件=( ) ? [y/N] n

创建~/.oh-my-zsh/海关/插件/foo
创建 ~/.oh-my-zsh/custom/plugins/foo/foo.plugin.zsh
创建 ~/.oh-my-zsh/custom/plugins/foo/README.md
创建~.oh-my-zsh/custom/plugins/foo/ foo

omz 生成插件: 生成插件"foo".

下一步:

1. 编辑:vim~/.oh-my-zsh/custom/plugins/foo/foo.plugin.zsh
2. 现在试试: omz 插件加载 foo
3. 保留: omz 插件启用 foo

文件:https://GitHub.com/ohmyzsh/ohmyzsh/wiki/Customization#overriding-and-adding-plugins 页面存档备份,存于互联网档案馆.

"试试现在"这个步骤是我最喜欢的部分......omz插件加载'已经存在,并给了你一个瞬间反馈回路而不触动.zshrc'.

得到的东西 . . . . . . .

内容来源: ohmyzsh/ohmyzsh