Function List:
M-x imenu
(defun list-funcs (arg) "List functions in buffer." (interactive "p") (message "functions");;; (list-matching-lines "^\\bstatic\\b*\\binline\\b*[ ]*[A-Za-z_<>]+[ ]+[A-Za-z0-9_:]+[\(]")) (list-matching-lines "^[A-Za-z0-9_]+[ ]+[A-Za-z0-9_<>: ]*[\(]"))
缓冲区
- C-x C-f :打开或创建文件
- C-x C-b :显示buffer列表,可以用方向键选择
- C-x C-w :另存为
- C-x b :switch-to-buffer
- C-x k :kill buffer
- C-x C-s :save buffer
- C-x C-c :save buffer and kill terminal
- C-x ← :pervious buffer
- C-x → :next buffer
Cscope: http://files.cnblogs.com/leajon-first/cscope_windows.7z
建立符号数据库
-----------------------------------(1) 我们假设我们要阅读的代码放在D:\src\myproject下。然后打开命令行,进入源代码所在的目录,为cscope建立搜索文件列表。在命令行中执行以下命令:
D:\soft\vxwork_src> dir /s /b *.c *.h > cscope.files
D:\soft\vxwork_src> cscope -b
执行结束后你可以在当前目录下发现cscope.out文件,这就是cscope建立的符号数据库。上面这个命令中,-b参数使得cscope不启动自带的用户界面,而仅仅建立符号数据库。
(2) 编辑D:\Program Files\Vim\_vimrc,添加如下内容。
cs a D:\soft\vxwork_src\cscope.out
如果你的源代码是C++,则可以将cpp等扩展名也加入到上面的命令中。
dir /s /b *.c *.h *cpp *.hpp > cscope.files
如果是Linux用户,则可以使用find命令实现同样的功能:
find $(pwd) -name "*.[ch]"
使用简介
默认是的快捷键都是绑定到 C-c s
的前缀上面,如果嫌麻烦的话可以自己更改 快捷键绑定。这是默认的用于查找的键绑定:
C-c s s Find symbol. C-c s d Find global definition. C-c s g Find global definition (alternate binding). C-c s G Find global definition without prompting. C-c s c Find functions calling a function. C-c s C Find called functions (list functions called from a function). C-c s t Find text string. C-c s e Find egrep pattern. C-c s f Find a file. C-c s i Find files #including a file.
下面是在搜索到的结果之间切换用的快捷键:
C-c s b Display *cscope* buffer. C-c s B Auto display *cscope* buffer toggle. C-c s n Next symbol. C-c s N Next file. C-c s p Previous symbol. C-c s P Previous file. C-c s u Pop mark.
更详细的使用说明请参见 xcscope.el 文件头部的注释。
参考文档:
elips:
https://www.gnu.org/software/emacs/manual/pdf/elisp.pdf