Oh-my-zsh 里自带了很多以_开头的函数,是做什么用的?

2015-05-18 15:56:25 +08:00
 kamushin
比如我输入gradle按下TAB,自动补全成了_gradle,回车后得到这个
_arguments:comparguments:312: can only be called from completion function。
这个补全有什么作用和意义吗?
5221 次点击
所在节点    Linux
11 条回复
dsdshcym
2015-05-18 16:01:51 +08:00
只在补全的时候用的, _ 开头表示 private
kamushin
2015-05-18 16:03:19 +08:00
@dsdshcym 能给个文档链接吗?Google了好久不知道该怎么描述这个问题来找文档。
582033
2015-05-18 16:22:44 +08:00
按照一般的思维来猜,也是private
kamushin
2015-05-18 16:31:29 +08:00
@582033 private代表我不能直接在shell里用?那为什么要出现在补全列表里?
kamushin
2015-05-18 16:36:17 +08:00
@dsdshcym 我看到_gradle是在gradle这个plugin里,但是我再.zshrc里并没有load这个plugin,为什么还是出现在我的补全列表里了?
jun4rui
2015-05-18 17:45:30 +08:00
所以要多看看别的语言的代码,_这个貌似是Python里面来的吧?结果很多地方现在都在用,例如js
kamushin
2015-05-18 17:46:59 +08:00
@jun4rui Python里_开头的可以被调用 = =
dsdshcym
2015-05-18 18:16:55 +08:00
@kamushin 猜的 = =
能被调用也可以是 private 嘛,只是约定
jun4rui
2015-05-18 19:46:52 +08:00
@kamushin 要假装看不见的!呵呵。

不过我也不知道出处是哪里,有解惑的兄弟吗?在车上没法动用Google为自己解惑了
keroro520
2015-05-18 20:08:42 +08:00
`_gradle`跟gradle插件好像没什么关系...`_gradle`是在/usr/share/zsh/functions/Completion/Unix 目录下的函数。

看样子似乎是oh-my-zsh.sh里面compinit自动载入了$fpath的下的函数作为补全...作者偷懒,直接把$fpath全载入了。
kamushin
2015-05-19 08:23:55 +08:00
@keroro520 原来是这样。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/191952

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX