庸置疑,Emacs是这个世界上最强悍的编辑器了。在此不想引起Emacs vs VI 的论战。Emcas的扩展能力可以说是无限的,这点从后来的Eclipse、Firefox之类的架构可以看出其影响力。
编辑器、IDE都在不断的发展和进步,Emacs这个老家伙也没有停止其步伐。最近23.1正式发布,内置支持Unicode编码,还增加了很多新功能。Textmate是编辑器的后起之秀,有很多新鲜的好用的功能,其他编辑器争相模仿,不过只能在Mac OSX上使用,也贵的要命。对于Emacs和Vim来说,利用其脚本扩展是轻易而举的。Emacs就出现了几个好用的插件。Yasnippet和Auto Complete就是其中佼佼者。
Yasnippet的不用多说,能实现Textmate的bundle功能。官方网站有详细介绍和说明,用起来很是顺手,不过bundles明显缺少,对于日常使用C++,python也够了。
对于Emacs的自动补全就有点麻烦了。智能提示已经是IDE的标配,Emacs当然也可以,只是要借助很多插件。首先必备的是cedet,主要是用其中的semantic,当然还可以加上ECB,浏览代码更方便。不过加上之后会慢很多。自动补全还有一个轻量级的Auto complete,可以和semantic、yasnippet等搭配使用。如图:
最新development version可以通过auto-install-batch安装,不过配置时发现一些问题。auto-complete-yasnippet.el中,
(defun ac-yasnippet-candidate ()
(let ((table (yas/snippet-table
major-mode)))
(if table
(ac-yasnippet-candidate-1 table))))
需要修改为:
(defun ac-yasnippet-candidate ()
(let ((table (yas/snippet-table-p
major-mode)))
(if table
(ac-yasnippet-candidate-1 table))))
另外,在.emacs中增加配置:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Auto complete
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(when (require 'auto-complete nil t)
(require 'auto-complete-extension nil t) ;optional
(require 'auto-complete-yasnippet nil t) ;optional
(require 'auto-complete-semantic nil t) ;optional
(require 'auto-complete-gtags nil t) ;optional
(require 'auto-complete-cpp)
(ac-c++-init)
(require 'auto-complete-emacs-lisp)
(ac-emacs-lisp-init)
(require 'auto-complete-python)
(ac-ropemacs-init)
(require 'auto-complete-ruby)
(ac-ruby-init)
(require 'auto-complete-css)
(ac-css-init)
(require 'ac-anything)
(define-key ac-complete-mode-map (kbd "C-:") 'ac-complete-with-anything)
(setq-default ac-sources '(ac-source-yasnippet
ac-source-semantic
ac-source-imenu
ac-source-abbrev
ac-source-words-in-buffer
ac-source-files-in-current-dir
ac-source-filename))
(global-auto-complete-mode t)
(define-key ac-complete-mode-map "\t" 'ac-expand)
(define-key ac-complete-mode-map "\r" 'ac-complete)
(define-key ac-complete-mode-map "\M-n" 'ac-next)
(define-key ac-complete-mode-map "\M-p" 'ac-previous)
(setq ac-auto-start 1)
(global-set-key "\M-/" 'ac-start)
(define-key ac-complete-mode-map "\M-/" 'ac-stop)
(setq ac-dwim t)
(setq ac-override-local-map nil) ;don't override local map
;; Enables omnicompletion with `c-mode-common'.
(add-hook 'c-mode-common-hook
'(lambda ()
(add-to-list 'ac-omni-completion-sources
(cons "\\." '(ac-source-semantic)))
(add-to-list 'ac-omni-completion-sources
(cons "->" '(ac-source-semantic)))
(add-to-list 'ac-sources 'ac-source-gtags)))
)
对于python,还需要ropemacs插件,这样对于Python还有refactor的功能了。但是Rope和autocomplete的配合在新版本中不能使用以前的方法,如果使用老版本的auto complete可以参考 http://www.enigmacurry.com/2009/01/21/autocompleteel-python-code-completion-in-emacs/ 。目前还没有找到更好的办法,但使用ropemacs自动提示也没有问题。
分享到:
相关推荐
Emacs,被誉为“可扩展、可定制、自我文档化”的实时显示编辑器,不仅是一个文本编辑器,更是一个强大的集成开发环境(IDE)。它以其高度的可配置性和丰富的功能库,使得开发者能够根据个人需求定制自己的开发环境。...
Python Emacs IDE 是一种高效且可定制的编程环境,它结合了强大的Python开发工具与历史悠久的Emacs编辑器。Emacs以其高度的可扩展性和自定义性而闻名,使其成为许多程序员首选的文本编辑器,尤其是对于喜欢深入定制...
Pymacs is a powerful tool which, once started from Emacs, allows two-way communication between Emacs Lisp and Python. Pymacs aims to employ Python as an extension language for Emacs rather than the ...
"mkprj" 是一个专为Emacs设计的IDE插件,它基于etag技术,极大地提升了开发者在Emacs中的项目管理和代码编辑体验。这篇文章将深入探讨mkprj插件的功能、工作原理以及它如何利用etag提升效率。 首先,我们来理解什么...
CMake-IDE是一款基于Emacs的集成开发环境(IDE)扩展,专为C++开发者设计,使其能在Emacs中享受高效、便捷的编程体验。它利用CMake构建系统的优势,结合其他工具如libclang、autopilot和flycheck,提供代码补全、...
emacs,ide,自定义编辑器
Emacs不仅是一个编辑器,更是一个功能丰富的集成开发环境(IDE),它提供了丰富的自定义能力和扩展机制,使其成为程序员和文本工作者的得力工具。 Emacs的全称是“Editing MACroS”,由GNU项目维护,支持多种操作...
4. **集成开发环境(IDE)**:Emacs可以作为许多编程语言的IDE,如Python、Java、C++等,它集成了代码高亮、自动补全、调试工具等功能。 5. **邮件和新闻阅读器**:内置的Rmail和 Gnus模块使Emacs可以处理电子邮件...
“lpy:适用于GNU Emacs的最小Python IDE”表明这是一个基于GNU Emacs的轻量级Python集成开发环境(IDE)。lpy是专为Python程序员设计的,旨在提供一个简洁、高效的编程环境,利用Emacs的强大功能来增强Python开发...
它提供了类似IDE的功能,如代码补全、符号跳转、语法检查等。通过集成Gccsense,用户可以在Emacs中获得类似于Visual Studio或IntelliJ IDEA的开发体验。Gccsense利用GCC的编译信息来提供这些功能,因此它需要GCC在...
Emacs不仅是一款优秀的文本编辑器,还可以作为一个强大的集成开发环境(IDE)。一个好的IDE通常需要具备以下功能: - **源代码编辑**:提供语法高亮、自动完成等功能。 - **代码分析**:检查代码错误和潜在的问题。 -...
它借鉴了许多现代IDE的特点,比如实时预览、Git集成、项目管理等。将Atom的这些特性融合到Emacs中,使得开发者能够在保持Emacs原有的强大功能的同时,享受到更加现代化的开发环境。 压缩包中的"emacs-master"可能是...
9. **交互式开发环境(IDE)特性**:讲解Emacs作为IDE的能力,如集成调试器、自动完成、代码跳转等,特别强调对于开发者友好性的提升。 10. **Emacs社区与资源**:提供Emacs社区的相关信息,如邮件列表、论坛和在线...
5. **集成开发环境**:Emacs可以作为一个IDE,集成了版本控制(如Git)、构建工具、调试器等功能,对于软件开发人员来说尤其方便。 6. **自动完成与补全**:Emacs提供了强大的自动补全功能,可以自动填充文件名、...
将Helm与gtags结合使用,可以在Emacs中实现类似IDE的代码导航功能,使得在大型项目中定位和理解代码变得轻松。 至于"实用小函数",这是Emacs配置中不可或缺的部分。Emacs Lisp(Elisp)是Emacs的内置脚本语言,用户...
3. **集成环境**:除了基本的文本编辑功能外,Emacs还可以作为集成开发环境(IDE),支持编译、调试等多种功能。 4. **跨平台**:Emacs可以在多种操作系统上运行,包括Unix、Linux、Windows等。 5. **丰富的插件**:...
通过安装合适的插件,Emacs可以变成一个强大的IDE,支持版本控制、代码补全、单元测试等功能。 **具体做法:** - **版本控制系统集成:** 使用Magit等插件来管理Git仓库。 - **代码补全与提示:** 安装Auto-...
它不仅仅是一个编辑器,更是一个高度可扩展的平台,允许用户通过Lisp语言编写自定义功能,甚至可以将其转化为一个集成开发环境(IDE)。在Windows系统中,通常会以压缩包的形式提供下载,如“emacs-25.1-2-x86_64-w...
emacs 的完全配置, 将emacs配置为IDE 代码补全,模板公功能。 函数跳转, 工程管理, 等等
Emacs是一款历史悠久且功能强大的文本编辑器,尤其在编程领域被广大开发者誉为“神级”集成开发环境(IDE)。它的强大在于其高度可定制性和扩展性,通过编写或使用他人编写的配置(通常称为“ Emacs Lisp”或“Elisp...