![](/img/trans.png)
[英]zsh-completions error when loading `zsh: compinit: function definition file not found`
[英]ZSH search for function definition
是否有一种从控制台获取函数定义而不手动文件的机制?
我搜索一种快速查找已知函数名称定义的方法。
例如,我想知道定义“_kill”自动完成功能的位置。
在ruby中使用pry我可以得到这样的东西:
show-method查找
来自:app / models / search / object.rb @第2行:
行数:7
def self.find(conditions = {}, options = {})
type = extract_object_type
raise 'do not call Search::Object directly' if type == 'Object'
search_logic = "Search::#{type.camelize}Logic".constantize.new(conditions, options)
search_logic.process!
search_logic.execute
end
对于zsh,请尝试whence -f
或type -f
。 例如:
myhost% whence -f _kill
_kill () {
# undefined
builtin autoload -XUz
}
对我来说下面的作品:
$ autoload +X _kill # important step
$ whence -v _kill
_kill is a shell function from /usr/share/zsh/5.2/functions/_kill
要在不执行myfunc的情况下加载自动加载函数myfunc的定义,请使用:
autoload +X myfunc
autoload +X
您还可以使用whence -f
查看实际功能
$ whence -f _kill
_kill () {
local curcontext="$curcontext" line state ret=1
typeset -A opt_args
_arguments -C '(-s -l 1)-n[specify signal number]:signal number' '(-n -l 1)-s[specify signal name]:signal:_signals -s' '(-n -s)-l[list signal names or numbers of specified signals]:*:signal:_signals' '(-n -s -l)1::signal:_signals -p -s' '*:processes:->processes' && ret=0
if [[ -n "$state" ]]
then
local pgrp='process-groups:: _wanted '
[[ -n "$opt_args[(i)-[ns]]${${(@)line:#--}}" && -prefix - ]] && pgrp+='-x '
pgrp+="process-groups expl 'process-group' compadd - 0"
_alternative 'processes:: _pids' 'jobs:: _jobs -t' $pgrp && ret=0
fi
return ret
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.