【积水成渊-逐步定制自己的Emacs神器】4:Emacs自动补全
来源:互联网 发布:mac搜狗输入法不能用 编辑:程序博客网 时间:2024/05/09 20:27
前言
本文介绍了Emacs里的自动补全功能,包括其内置的缓冲区文件名补全和使用扩展package实现的文本的补全和程序代码的补全功能等。
本文提到的几个package(或mode):
- ido-mode
- auto-complete
- company
- yasnippet
缓冲区名字补全: ido-mode
在使用C-x b或者M-x dired输入缓冲区名字或者路径名字的时候,需要记住使用过的缓冲区或者文件目录的结构,这使得用户要输入记住和输入很多东西,增加了使用Emacs的困难程度。
ido-mode解决了这个问题,它会在我切换缓冲区或者要使用C-x C-f查找文件的时候,自动为我列出匹配项目,我仅需键入有限的几个输入,或者根本不用输入,直接使用C-s向后选择ido-mode给提供的选项,使用C-r向前选择,然后回车即可选中。
要打开ido-mode,使用M-x customize,然后搜索ido,找到ido-mode打开即可,你可以让它只作用于buffer补全或者只作用于文件补全,也可以同时作用。
要想让ido-mode支持模糊匹配,还需要打开:Ido Enable Flex Matchin。
auto-complete 补全
auto-complete这个package是很多以auto-complete-开头的其它package的基础,所以要想使用这个系列的补全插件要先安装auto-complete。
根据我的使用情况auto-complete package可以在一下两个package archive(package源,见第三篇文章)找到:
- (“melpa” . “https://melpa.org/packages/“)
- (“marmalade” . “http://marmalade-repo.org/packages/“)
确保添加了上面任何一个package archive之后,执行:
M-x package-install RET auto-complete RET
进行安装。
也可以使用前面第三篇文章里,使用M-x list- package进入包安装界面,搜索auto-complete来进行安装。
company-mode :complete anything
company是Emacs中一个文本补全框架,正如其名字,它可以补全任何东西。使用也很简单。
网上有关于company和auto-complete功能比较的讨论:More info about how this compares to auto-complete
具体使用哪个更合适,我现在还没有结论,要自己尝试后才能知道哪个更适合自己。
yasnippet: template complete
yasnippet跟Vim中的UltiSnip很像,可以自己定义补全模板,定义模板中光标的停留地点和跳转顺序等。
yasnippet甚至支持在自定义模板的时候嵌入Elisp代码。
yasnippet针对每个mode可以有一套补全的模板,模板文件在yasnippet/snippets/下面,按照mode名字单独存放。
作者水平有限,对相关知识的理解和总结难免有错误,还望给予指正,非常感谢!
在这里也能看到这篇文章:github博客, CSDN博客, 欢迎访问
- 【积水成渊-逐步定制自己的Emacs神器】4:Emacs自动补全
- 【积水成渊-逐步定制自己的Emacs神器】1:Emacs入门
- 【积水成渊-逐步定制自己的Emacs神器】2:基本的定制Emacs
- 【积水成渊-逐步定制自己的Emacs神器】3:为Emacs安装扩展
- 【积水成渊-逐步定制自己的Emacs神器】6:首次变身IDE,Emacs C++ IDE
- 【积水成渊-逐步定制自己的Emacs神器】5:回到最初,重新开始
- emacs 自动补全
- emacs自动补全
- Emacs 自动补全 GCCSense
- emacs clang 自动补全
- emacs完美的C++的自动补全
- Emacs 设置 Python 编辑模式下的自动补全
- emacs company自动补全的候选来源
- emacs 自动补全 auto-complete
- emacs+autocomplete+semantic实现自动补全
- [转]emacs 自动补全
- [转]emacs 自动补全
- Emacs基本配置,自动补全
- CSS3+jQuery密码强度验证代码特效,通过码速表演示密码强度
- appleScript初涉实现邮件发送初涉实现邮件发送
- EditText属性整理
- 新建从网页拷贝代码的python文件保存不了的解决方案
- Linux shell script
- 【积水成渊-逐步定制自己的Emacs神器】4:Emacs自动补全
- 2015年大二上-数据结构-图-2-(3)-Dijkstra算法
- 关于类已经定义了的原因
- PHP旧代码迁移
- 字节流与字符流的区别
- win7_oracle11g_64位连接32位PLSQL_Developer
- getmail: refuse to deliver mail as root
- eclipse打开文件位置插件
- vs2008 MFC程序 读取显示图像、更改背景图像