是否有一种机制可以从控制台获取函数定义而无需手动 grep 文件?
我寻找一种快速找到已知函数名称的定义的方法。
例如我想知道“_kill”自动完成函数是在哪里定义的。
在 ruby 中使用 pry 我可以得到这样的东西:
显示方法查找
来自: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
Run Code Online (Sandbox Code Playgroud)
对我来说以下作品:
\n\n$ autoload +X _kill # important step\n$ whence -v _kill\n_kill is a shell function from /usr/share/zsh/5.2/functions/_kill\nRun Code Online (Sandbox Code Playgroud)\n\nZsh 文档 \xe2\x80\x93 9.1 自动加载函数
\n\n\n\n\n要加载自动加载函数 myfunc 的定义而不执行 \n myfunc,请使用:
\n\n\n
autoload +X myfunc
之后autoload +X你还可以看到实际的功能whence -f
$ whence -f _kill\n_kill () {\n local curcontext="$curcontext" line state ret=1\n typeset -A opt_args\n _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\n if [[ -n "$state" ]]\n then\n local pgrp=\'process-groups:: _wanted \'\n [[ -n "$opt_args[(i)-[ns]]${${(@)line:#--}}" && -prefix - ]] && pgrp+=\'-x \'\n pgrp+="process-groups expl \'process-group\' compadd - 0"\n _alternative \'processes:: _pids\' \'jobs:: _jobs -t\' $pgrp && ret=0\n fi\n return ret\n}\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1053 次 |
| 最近记录: |