1. cscope 是c和c++代码代码索引工具
2. 安装方法 : sudo apt-get install cscope
生成三个文件 cscope, cscope-indexer 和 xcscope.el (路径:/usr/share/emacs/site-lisp/xcscope.el)
3.cscope-indexer
cscope的脚本文件,用来产生cscope数据库
参数: -l 列表文件名,
-i 数据库文件名
-l 只是产生列表文件
-r 递归子目录
-v 输出详细信息
dir 指定特定的目录,如果不指定默认为当前目录
4. cscope的配置文件
;********************************************************
; *
; * Author : joans@joans-computer
; * Date : 2011-07-23
; * File : cscope-conf.el
; *
; *
; ********************************************************/
(require 'xcscope)
(setq cscope-do-not-update-database t)
;cscope-index-file 索引文件名称( cscope.files )
;cscope-database-file 数据库文件名称( cscope.out )
;cscope-use-relative-paths 文件列表生成索引时使用相对路径
;cscope-index-recursively 生成文件列表时递归搜索
;cscope-indexing-script cscope索引脚本 ( cscope-indexer )
;cscope-symbol-chars cscope符号字符
;cscope-filename-chars cscope文件名称字符
;cscope-minor-mode-hooks cscope模式钩子
;cscope-options-args cscope命令可选参数
;cscope-list-entry-hook cscope模式钩子
5. xcscope.el 使用
cscope数据库定位:
数据库目录: 该目录下要么包含cscope数据库文件(cscope.out), 要么包含cscope文件列表(cscope.files)。如果只有cscope.files存在,则cscope.out会被自动的创建。
1)cscope-database-regexps 搜索合适的数据路径
2)cscope-initial-directory 如果datebase-regexps找不到数据库,则使用这个变量
3)如果还是没有找到,则使用当前目录
4)如果当前目录还不是则找其父目录,直到跟目录为止
5)如果到达跟目录都没找到数据库,则使用当前目录
C-c s s 查找符号
C-c s d 查找全局定义
C-c s g 查找全局定义
C-c s G 不带提示的查找全局定义,直接定位光标所在符号
C-c s c 查找调用的函数
C-c s C 查找函数的Caller
C-c s t 查找字符串
C-c s e 查找正则表达式
C-c s f 查找一个文件
C-c s i 查找被哪些文件include了
C-c s b 显示 *cscope* buffer
C-c s B 自动显示 *cscope* buffer
C-c s n 下一个符号
C-c s N 下一个文件
C-c s p 前一个符号
C-c s P 前一个文件
C-c s u 弹出mark
C-c s a 设置初始化目录
C-c s A 取消初始化目录
C-c s L 创建文件列表到索引
C-c s I 创建列表和索引
C-c s E 编辑文件列表到所以
C-c s W 定位这个buffer的cscope目录
C-c s S 定位这个buffer的cscope目录
C-c s T 定位这个buffer的cscope目录
C-c s D 列出buffer的路径