分页: 1 / 1
有比etags和cscope更好的查找symbol定义的emacs插件吗
发表于 : 2010-10-15 10:46
由 torthtyo
我用cscope查找c++ symbol经常会跳出来一大堆候选list让你选,我用eclipse查找c++ symbol一般能够直接找到所需的定义,不知道emacs还有更好地symbo查找的工具。谢谢!
Re: 有比etags和cscope的查找symbol定义的emacs插件吗
发表于 : 2010-10-16 16:18
由 anewbie
xref 最好,但要钱,不过有破解。
global 次之,开源免费,且迅速进步中,源里的版本不行,要用最新版的。
PS,你那标题实在太渣了。
Re: 有比etags和cscope的查找symbol定义的emacs插件吗
发表于 : 2010-10-16 19:36
由 torthtyo
anewbie 写了:xref 最好,但要钱,不过有破解。
global 次之,开源免费,且迅速进步中,源里的版本不行,要用最新版的。
PS,你那标题实在太渣了。
谢谢,我去搜索一下这两个东西

那是我想到的最好的描述,你有更准确的表达方式吗?说来听听
Re: 有比etags和cscope的查找symbol定义的emacs插件吗
发表于 : 2010-10-16 19:45
由 torthtyo
anewbie 写了:xref 最好,但要钱,不过有破解。
global 次之,开源免费,且迅速进步中,源里的版本不行,要用最新版的。
PS,你那标题实在太渣了。
从网上搜到两个插件的链接,不确定是否正确,请查看并帮我确认一下。谢谢!
xref:
http://www.xref-tech.com/about.html
global:
http://www.gnu.org/software/global/globaldoc.html
Re: 有比etags和cscope的查找symbol定义的emacs插件吗
发表于 : 2010-10-16 19:58
由 anewbie
然。
以下纯属玩笑,别介意:
那是我想到的最好的描述,你有更准确的表达方式吗?说来听听
你确定这是你想到的最好的描述:
代码: 全选
有比etags和cscope的查找symbol定义的emacs插件吗
而不是这个?
代码: 全选
有比etags和cscope查找symbol定义更好的emacs插件吗
Re: 有比etags和cscope的查找symbol定义的emacs插件吗
发表于 : 2010-10-16 20:38
由 torthtyo
anewbie 写了:
然。
以下纯属玩笑,别介意:
那是我想到的最好的描述,你有更准确的表达方式吗?说来听听
你确定这是你想到的最好的描述:
代码: 全选
有比etags和cscope的查找symbol定义的emacs插件吗
而不是这个?
代码: 全选
有比etags和cscope查找symbol定义更好的emacs插件吗
确实够烂,看来今天思维短路,改了一下标题,看起来逻辑清楚多了

Re: 有比etags和cscope的查找symbol定义的emacs插件吗
发表于 : 2010-10-16 21:35
由 torthtyo
很奇怪的一个问题。我按装了global,并且配置.emacs如下
;;Load Global
(add-to-list 'load-path
"/home/deven/apps/share/gtags")
(autoload 'gtags-mode "gtags" "" t)
在/home/deven/svn-ropos/hdk_svn/drlvm下面建立index:
deven@deven:~/svn-repos/hdk_svn/drlvm$ gtags
在bash里面运行emacs -nw
查找function 定义:
M-x gtags-find-tag ret
Find tag: (default class_initialize) ret
Message buffer output:
Searching class_initialize ... Done
emacs跳转到Initialize.cpp的class_initialize函数定义行。一切正常。
然后当我直接在图形界面下打开emacs,执行同样的操作:
M-x gtags-find-tag ret
Find tag: (default class_initialize) ret
Message buffer output:
Searching for program: no such file or directory, global
百思不得其解!!
刚刚发现了一个可能导致错误的地方,terminal 下面的emacs和图形界面下面的emacs的messge buffer的output有一点不同
emacs -nw:
Searching class_initialize ... Done
emacs
setq: Searching for program: no such file or directory, global
Searching for program: no such file or directory, global
图形界面下面的output会多一条
setq: Searching for program: no such file or directory, global
不知道是什么缘故
Re: 有比etags和cscope的查找symbol定义的emacs插件吗
发表于 : 2010-10-16 21:54
由 torthtyo
上面帖子的环境是 ubuntu10.10, emacs是GNU Emacs 23.1.1
Re: 有比etags和cscope的查找symbol定义的emacs插件吗
发表于 : 2010-10-16 22:01
由 torthtyo
torthtyo 写了:上面帖子的环境是 ubuntu10.10, emacs是GNU Emacs 23.1.1
我大概知道了错误的原因,图形界面下面的emacs找不到global程序,在我的机器下面它在/home/deven/apps/bin/下面,我把该路径配置在.bashrc的PATH下面,但是重启机器gnome不会从该文件读环境变量。 我记得有个地方可以设置环境变量,让系统初始化的时候从该文件读取并设置环境变量。
直接从shell下面emacs启动emacs而不是从gnome的启动菜单里面启动emacs就没有这个问题
Re: 目前为止感觉global很好用,但是它只能find object的定义,不能find它的声明
发表于 : 2010-10-16 22:28
由 torthtyo
当某个object只被头文件声明,它的定义在当前的项目不存在的时候,global只能搜索所有该object的引用,这个我认为是一个缺陷。
比如我搜索vm_env->bootstrap_class_loader->LoadVerifyAndPrepareClass(vm_env, s); 中bootstrap_class_loader的定义,global返回null,其实这个变量声明在一个头文件environment.h里面。eclipse可以很轻松的找到它的声明,而gloabl只能用gtags-find-symbol查找所有的引用,这样搜索下来就是一大堆匹配的结果。
我觉得从技术上来讲global应该很容易实现查找头文件声明的功能。不知道为什么没有提供这个功能。
Re: 有比etags和cscope更好的查找symbol定义的emacs插件吗
发表于 : 2010-10-17 10:05
由 anewbie
Re: 有比etags和cscope更好的查找symbol定义的emacs插件吗
发表于 : 2010-10-17 10:11
由 anewbie
忘说了,emacs 不需要依赖系统环境变量——使用 emacs 自己的 exec-path 变量就行。