【转】Emacs -- 自动补齐
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 -- 自动补齐相关推荐
- Racer: 自动补齐神器
Racer:Rust 自动补齐神器 原文:Racer - code completion for Rust 翻译:Peter 翻译经验不足,有错请指教,勿喷 Racer全称为Rust Auto-Com ...
- ios-晋级之路 CocoaPods引用第三方库不import不自动补齐
对于CocoaPods不自动补齐解决方案如下 选择工程的 Target -> Build Settings 菜单,找到\"User Header Search Paths\" ...
- mysql 自动补齐 表名,列名 方法, 重启mysql方法
1.mysql自动补齐方法 方法一.修改my.cnf vi /etc/my.cnf [mysql] auto-rehash #添加auto-rehash 注:修改 #no-auto-r ...
- Geany 代码自动补齐功能设置
很多人用 geany 感觉不方便,有一部分就是相比于 pycham 的自动补齐功能不好使. 现在给大家看下自动补齐功能设置方法,设置完后用起来非常方便哦. Geany 代码自动补全设置: 默认出现自动 ...
- Jupyter 编写python代码实现代码自动补齐功能设置实例演示
Jupyter 代码自动补齐功能 第一章:启用代码自动补齐功能 ① 安装工具包 ② 重启 Jupyter 服务 ③ 功能设置 ④ 效果展示 ⑤ cmd 安装工具包详细过程展示 第一章:启用代码自动补齐 ...
- sql server 语句自动补齐
sql2008 sql语句自动补齐功能 sql2008的命令自动补齐功能在哪设置 包括查询的表明自动补齐 不想用插件 这个好像2008自带的有这个功能 难道我装的版本不对 楼主说的是自动联想功能吧,任 ...
- linux快捷命令补齐,Linux Shell简介——自动补齐/命令行的历史记录/编辑命令行/可用的 Shell 快捷方式.doc...
Linux Shell简介--自动补齐/命令行的历史记录/编辑命令行/可用的 Shell 快捷方式 Unix (及后继者 Linux)在命令行下面诞生,因此,Unix 中的命令行有许多非常实用的功能. ...
- 输入框限制只能输入数字,正数、负数、0,最多两位小数;数字输入框可以输入负数,并最多保留两位小数;el-number-input去掉四舍五入和自动补齐小数;
场景: –要求1:输入框只能输入数字,可以使正数.负数.0,小数点最多保留两位. –要求2:不需要自动补齐小数点,也不需要自动四舍五入. element-ui的数字输入框el-input-number ...
- editplus public class自动补齐大括号问题破解
这样你再打public class就不会自动补齐大括号了
最新文章
- Not injecting HSTS header since it did not match the requestMatcher HSTS设置问题解决
- C# IPGlobalStatistics获取本机网络流量信息
- 实现不同vlan间PC不可互访,而不同vlan的PC均可访问服务器的特殊效果,(华为)...
- 微信小程序多图上传带进度提示的代码实例
- 不得不说的wepapi 优化
- jQuery学习(五)—课堂实训题专栏
- iOS应用程序瘦身的静态库解决方案
- (原创)一个简洁通用的调用DLL函数的帮助类
- java flv 转swf_swf转flv格式转换器 使用ffmpeg进行视频文件转换成FLV整理
- 2021-07-20 计算两个日期间的工作日天数VBA函数
- html 拦截境外ip,Windows服务器系统怎么屏蔽国外IP的访问
- 最长回文子串 马拉车算法
- 科普│串联质谱分析仪(ESI离子源)之离子阱质谱仪
- R语言中Axis()函数的参数详解
- leetcode 1534. Count Good Triplets(python)
- hive正则表达式的用法
- 《Unity开发实战》——1.3节设置首选项
- python里load什么意思_如何从python中执行LOAD DATA命令
- 写作软件评测iA Writer、Ulysses、Effie、Typora、Writeathon、Bear
- IPGUARD基本策略详解
热门文章
- Java笔记-JSP初步研究
- C语言工作笔记-函数指针的使用(补充C回调系统)
- 系统架构师学习笔记-系统开发基础知识(二)
- 序列复杂度怎么看_《趣学算法》作者又一力作上架,再分享您一篇算法复杂度...
- zabbix2.4 mysql模板_zabbix自带的模板监控mysql
- python编辑程序模型_python并发编程之IO模型
- 什么是心跳线?心跳线,主要用于主从服务器之间,是连接工作机与备份机的网线
- (王道408考研操作系统)第五章输入/输出(I/O)管理-第一节4:I/O软件层次结构
- shell命令获取结果指定行(指定行结果)
- Python之collections模块详细实例