1. Emacs 自带的hippie-expand (参考的是王垠的)
hippie-expand是 Emacs 自带的功能,
把M-/ 绑定到 hippie-expand,在.emacs文件中加入
;;绑定按键
(global-set-key [(meta ?/)] 'hippie-expand)

hippie-expand 的补全方式。它是一个优先列表, hippie-expand 会优先使用表最前面的函数来补全。通常的设置是:

(setq hippie-expand-try-functions-list
'(try-expand-dabbrev
try-expand-dabbrev-visible
try-expand-dabbrev-all-buffers
try-expand-dabbrev-from-kill
try-complete-file-name-partially
try-complete-file-name
try-expand-all-abbrevs
try-expand-list
try-expand-line
try-complete-lisp-symbol-partially
try-complete-lisp-symbol))
首先使用当前的buffer补全,如果找不到,就到别的可见的窗口里寻找,
如果还找不到,那么到所有打开的buffer去找,如果还……那么到kill-ring里,
到文件名,到简称列表里,到list,…… 当前使用的匹配方式会在 echo 区域
显示.
确实是非常好用,基本上我M-/就能到达我想要的了.

2 采用etags
etags能像cscope那样,在代码里跳来跳去,比如查找函数,变量等,它还能够自动补齐代码.
1),先生成etags文件
find . /usr/include/ -name "*.c" -or -name "*.cpp" -or -name "*.hpp" -or -name "*.h" |xargs etags --members --language=c++
2).配置.emacs
(setq tags-file-name "~/TAGS")
3),使用
在emacs中,M-tab 就可以自动补齐了,不过有时候还是不是很好用.
M-. 查找一个tag,比如函数定义类型定义等。
C-u M-. 查找下一个tag的位置
M-* 回到上一次运行M-.前的光标位置。 M-TAB 自动补齐函数名。

3 采用cedet包
1)下载cedet
网址是 http://cedet.sourceforge.net/
2)编译
tar -zxf cedet-1.0pre3.tar.gz
cd cedet-1.0pre3
make
如果make不成功的话,就看看那个说明吧
3)配置
查看emacs的配置文件在哪里
whereis emacs
拷贝编译好了的cedet
cp -r cedet-1.0pre3 /usr/share/emacs/
查看是否有我们需要的那个文件
ls /usr/share/emacs/cedet-1.0pre3/common/cedet.el

配置.emacs文件,在.emacs文件中加入
;;;;;;;;;;cedet
(load-file "/usr/share/emacs/cedet-1.0pre3/common/cedet.el")

;;设置检索范围
(setq semanticdb-project-roots
(list
(expand-file-name "/")));;可以设置为项目的顶级目录

;;绑定按键,ctr+tab,以下三种,任意选择一个,我喜欢第二个
;;(global-set-key [(control tab)] 'senator-complete-symbol);
(global-set-key [(control tab)] ' senator-completion-menu-popup)
;; (global-set-key [(control tab)] 'semantic-ia-complete-symbol-menu)

4)使用
在一个未输入完成的函数上尝试下ctr+tab键

转载于:https://www.cnblogs.com/napoleon_liu/archive/2010/01/28/1658615.html

【转】Emacs -- 自动补齐相关推荐

  1. Racer: 自动补齐神器

    Racer:Rust 自动补齐神器 原文:Racer - code completion for Rust 翻译:Peter 翻译经验不足,有错请指教,勿喷 Racer全称为Rust Auto-Com ...

  2. ios-晋级之路 CocoaPods引用第三方库不import不自动补齐

    对于CocoaPods不自动补齐解决方案如下 选择工程的 Target -> Build Settings 菜单,找到\"User Header Search Paths\" ...

  3. mysql 自动补齐 表名,列名 方法, 重启mysql方法

    1.mysql自动补齐方法 方法一.修改my.cnf vi /etc/my.cnf [mysql] auto-rehash         #添加auto-rehash 注:修改 #no-auto-r ...

  4. Geany 代码自动补齐功能设置

    很多人用 geany 感觉不方便,有一部分就是相比于 pycham 的自动补齐功能不好使. 现在给大家看下自动补齐功能设置方法,设置完后用起来非常方便哦. Geany 代码自动补全设置: 默认出现自动 ...

  5. Jupyter 编写python代码实现代码自动补齐功能设置实例演示

    Jupyter 代码自动补齐功能 第一章:启用代码自动补齐功能 ① 安装工具包 ② 重启 Jupyter 服务 ③ 功能设置 ④ 效果展示 ⑤ cmd 安装工具包详细过程展示 第一章:启用代码自动补齐 ...

  6. sql server 语句自动补齐

    sql2008 sql语句自动补齐功能 sql2008的命令自动补齐功能在哪设置 包括查询的表明自动补齐 不想用插件 这个好像2008自带的有这个功能 难道我装的版本不对 楼主说的是自动联想功能吧,任 ...

  7. linux快捷命令补齐,Linux Shell简介——自动补齐/命令行的历史记录/编辑命令行/可用的 Shell 快捷方式.doc...

    Linux Shell简介--自动补齐/命令行的历史记录/编辑命令行/可用的 Shell 快捷方式 Unix (及后继者 Linux)在命令行下面诞生,因此,Unix 中的命令行有许多非常实用的功能. ...

  8. 输入框限制只能输入数字,正数、负数、0,最多两位小数;数字输入框可以输入负数,并最多保留两位小数;el-number-input去掉四舍五入和自动补齐小数;

    场景: –要求1:输入框只能输入数字,可以使正数.负数.0,小数点最多保留两位. –要求2:不需要自动补齐小数点,也不需要自动四舍五入. element-ui的数字输入框el-input-number ...

  9. editplus public class自动补齐大括号问题破解

    这样你再打public class就不会自动补齐大括号了

最新文章

  1. Not injecting HSTS header since it did not match the requestMatcher HSTS设置问题解决
  2. C# IPGlobalStatistics获取本机网络流量信息
  3. 实现不同vlan间PC不可互访,而不同vlan的PC均可访问服务器的特殊效果,(华为)...
  4. 微信小程序多图上传带进度提示的代码实例
  5. 不得不说的wepapi 优化
  6. jQuery学习(五)—课堂实训题专栏
  7. iOS应用程序瘦身的静态库解决方案
  8. (原创)一个简洁通用的调用DLL函数的帮助类
  9. java flv 转swf_swf转flv格式转换器 使用ffmpeg进行视频文件转换成FLV整理
  10. 2021-07-20 计算两个日期间的工作日天数VBA函数
  11. html 拦截境外ip,Windows服务器系统怎么屏蔽国外IP的访问
  12. 最长回文子串 马拉车算法
  13. 科普│串联质谱分析仪(ESI离子源)之离子阱质谱仪
  14. R语言中Axis()函数的参数详解
  15. leetcode 1534. Count Good Triplets(python)
  16. hive正则表达式的用法
  17. 《Unity开发实战》——1.3节设置首选项
  18. python里load什么意思_如何从python中执行LOAD DATA命令
  19. 写作软件评测iA Writer、Ulysses、Effie、Typora、Writeathon、Bear
  20. IPGUARD基本策略详解

热门文章

  1. Java笔记-JSP初步研究
  2. C语言工作笔记-函数指针的使用(补充C回调系统)
  3. 系统架构师学习笔记-系统开发基础知识(二)
  4. 序列复杂度怎么看_《趣学算法》作者又一力作上架,再分享您一篇算法复杂度...
  5. zabbix2.4 mysql模板_zabbix自带的模板监控mysql
  6. python编辑程序模型_python并发编程之IO模型
  7. 什么是心跳线?心跳线,主要用于主从服务器之间,是连接工作机与备份机的网线
  8. (王道408考研操作系统)第五章输入/输出(I/O)管理-第一节4:I/O软件层次结构
  9. shell命令获取结果指定行(指定行结果)
  10. Python之collections模块详细实例