使用 emacs 结合 xcscope 阅读 go 代码

whispermemory · 2013-08-01 12:02:20 · 5052 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2013-08-01 12:02:20 的主题,其中的信息可能已经有所发展或是发生改变。

#-TITLE: xcscope 支持 go 语言

Table of Contents

1 下载源码,编译 ./configure make sudo make install ,会把 cscope 生成到 usr/local/bin/ 下面

2 为 mac 添加补丁

2.1 patch -p0 < cscopeosx.patch

2.2 cscopeosx.patch 如下

3 把cscope源码中的contrib/xcscope/xcscope.el 拷贝到 emacs 的 load-path 中,并在 emacs 中添加如下代码

4 为源码生成 cscope 文件

4.1 find . -name "*.go" > cscope.files

4.2 添加 Go 源码支持 find usr/local/go/src/pkg -name "*.go" cscope.files

4.3 cscope -Rbkq

4.3.1 R 表示递归进子文件夹

4.3.2 b 表示表示cscope不启动自带的用户界面,而仅仅建立符号数据库

4.3.3 q 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度

4.3.4 k 在生成索引文件时,不搜索/usr/include目录

5 在 emacs 中快速生成索引文件

5.1 /cscope-15.8/contrib/xcscope/cscope-indexer 拷贝到 /usr/local/bin 下面, emacs 将使 用该程序简历索引

5.2 M-x cscope-index-files

Date: 2013-08-01T20:00+0800

Author: whispermemory

Org version 7.9.3f with Emacs version 24

Validate XHTML 1.0


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

5052 次点击  
加入收藏 微博
4 回复  |  直到 2013-08-09 02:08:40
ifqqfi
ifqqfi · #1 · 12年之前

请问你打的patch是让cscope支持go语言的patch么? 原生cscope应该是不支持go语言的吧。

这个patch从哪里获取呢? 谢谢

whispermemory
whispermemory · #2 · 12年之前
ifqqfiifqqfi #1 回复

请问你打的patch是让cscope支持go语言的patch么? 原生cscope应该是不支持go语言的吧。 这个patch从哪里获取呢? 谢谢

不是的,这个 patch 是为了让 emacs 支持 mac 系统。 cscope 本身是支持 go 语言的语法创建索引的,因为它跟 c 语言类似。需要在 xcscope.el 中添加如下代码

(add-hook 'go-mode-hook (function cscope:hook))

同时 需要在 .emacs 中添加

(setq exec-path (cons "/usr/local/bin" exec-path))  
(add-to-list 'load-path "~/.emacs.d/plugins/xcscope")
(require 'xcscope)
ifqqfi
ifqqfi · #3 · 12年之前

嗯,试了下,果然可以用。 找了半天,又绕回来来了,原来cscope就可以用啊! 哈哈

whispermemory
whispermemory · #4 · 12年之前
ifqqfiifqqfi #3 回复

嗯,试了下,果然可以用。 找了半天,又绕回来来了,原来cscope就可以用啊! 哈哈

嘿嘿 神奇啊。看代码很舒服。就是 cscope 的源码里太多宏定义,看了一下头大了。

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传