(setq gdb-many-windows t) ;;设置M-x gdb 执行后,开启更方便的gdb窗口
C-M-f 跳转到对应结束符号 C-M-b 跳转到对应开始符号
M+/ 自动补全
M-x speedbar-get-focus 开启speedbar
M-x ecb-activate 打开ecb
CTAGS:
ctags -e -R * 生成emacs用的TAGS 使用etag快捷键: M-x visit-tags-table 指定TAGS文件 M-. 查找一个tag,比如函数定义类型定义等。 C-u M-. 查找下一个tag的位置 C-M-. 输入函数名,查找定义 M-* 回到上一次运行M-.前的光标位置。 M-TAB 自动补齐函数名(M可用ESC代替)
Global:
gtags * 生成GTAGS gnu global命令都是 gtags开头的, M-x gtags-mode 开启gtags gtags-visit-rootdir 设置gtags根目录
补全(yasnippets & auto-complete):
yasnippets sudo yaourt -S emacs-yasnippets sudo yaourt -S auto-complete aur里面竟然没有,汗,这个的PKGBUILD 是我自己写的
gccsense:
转载: gcc-code-assist gcc4.4代码基础上改的那位,用来从被补全代码中分析出补全信息 gccrec 编译一个文件,往往要加上编译参数的,比如自定义的include地址。但是编辑器在补全的时候,是不知道这些的,硬生生地调用gcc-code-assist来“模拟编译”,参数补全造成的错误会扰乱补全信息的获取。 gccrec就是为了解决这个问题,在使用编辑器补全之前,需要执行一次gccrec,它会将编译参数信息存到~/.gccrec这个sqlite3的数据库中。具体用法参见下一节的示例。 autopch 用来启用预编译头,来提高速度。 autopch gcc-code-assist *.c gcc-code-assist gccsense 绑定补全 (require 'gccsense) (global-set-key (kbd "M-/") 'ac-complete-gccsense) 先记录编译命令 gccrec gcc-code-assist *.c gccrec g++-code-assist *.cpp 然后就可以补全了 alt+/ ??? 目前似乎只有cpp才支持,c不支持???
Clang:
You should probably use clang_complete, not gccsense. clang-complete 更好用些,下面几个实现: http://mike.struct.cn/blogs/entry/15/ https://github.com/mikeandmore/auto-complete-clang https://github.com/brianjcj/auto-complete-clang https://llvm.org/svn/llvm-project/cfe/trunk/utils/clang-completion-mode.el
去https://github.com/mikeandmore/auto-complete-clang这个网址去下载tar.gz包,解压缩,按照readme的内容,把auto-complete-clang.el 放入emacs的loadpath中,然后把 sample-config.el的内容抄入.emacs中, clang的自动补全非常好用
自己写个了PKGBUILD,放到aur上面了,archlinux直接安装 yaourt -S auto-complete-clang,然后按照提示写入.emacs文件就可以了