`
seagle0128
  • 浏览: 44215 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Emacs IDE

阅读更多

庸置疑,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也够了。

Yasnippet

对于Emacs的自动补全就有点麻烦了。智能提示已经是IDE的标配,Emacs当然也可以,只是要借助很多插件。首先必备的是cedet,主要是用其中的semantic,当然还可以加上ECB,浏览代码更方便。不过加上之后会慢很多。自动补全还有一个轻量级的Auto complete,可以和semantic、yasnippet等搭配使用。如图:

Auto Complete

最新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自动提示也没有问题。

0
0
分享到:
评论
4 楼 seagle0128 2009-09-27  
更新一下,现在可以下载使用 auto-complete-config.el,就不用作那些patch了。initialize之后,使用很爽。但是python的自动补全还是有些问题。
3 楼 seagle0128 2009-09-27  
metadmin 写道
使用eclipse,而不是emacs不一定就是差距吧~~~


我使用eclipse,但使用emacs快捷键,非常爽。


我指的是思维的差距哈,老外喜欢DIY,对很多古老的语言也用的很成熟,其实没有那么追新
2 楼 metadmin 2009-09-11  
使用eclipse,而不是emacs不一定就是差距吧~~~


我使用eclipse,但使用emacs快捷键,非常爽。
1 楼 seagle0128 2009-09-08  
估计这年头用emacs的不多,我看老外很多用emacs而不是eclipse开发java。国内和国外还差距挺大

相关推荐

    emacs配置IDE

    Emacs,被誉为“可扩展、可定制、自我文档化”的实时显示编辑器,不仅是一个文本编辑器,更是一个强大的集成开发环境(IDE)。它以其高度的可配置性和丰富的功能库,使得开发者能够根据个人需求定制自己的开发环境。...

    python emacs ide

    Python Emacs IDE 是一种高效且可定制的编程环境,它结合了强大的Python开发工具与历史悠久的Emacs编辑器。Emacs以其高度的可扩展性和自定义性而闻名,使其成为许多程序员首选的文本编辑器,尤其是对于喜欢深入定制...

    python for emacs ide

    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:一个基于etag的emacs IDE插件-开源

    "mkprj" 是一个专为Emacs设计的IDE插件,它基于etag技术,极大地提升了开发者在Emacs中的项目管理和代码编辑体验。这篇文章将深入探讨mkprj插件的功能、工作原理以及它如何利用etag提升效率。 首先,我们来理解什么...

    cmake-ide:将Emacs用作CC ++ IDE

    CMake-IDE是一款基于Emacs的集成开发环境(IDE)扩展,专为C++开发者设计,使其能在Emacs中享受高效、便捷的编程体验。它利用CMake构建系统的优势,结合其他工具如libclang、autopilot和flycheck,提供代码补全、...

    EMACS 2.4.3 for mac

    emacs,ide,自定义编辑器

    Survive in Emacs(Emacs生存指南).7z

    Emacs不仅是一个编辑器,更是一个功能丰富的集成开发环境(IDE),它提供了丰富的自定义能力和扩展机制,使其成为程序员和文本工作者的得力工具。 Emacs的全称是“Editing MACroS”,由GNU项目维护,支持多种操作...

    emacs23中文版

    4. **集成开发环境(IDE)**:Emacs可以作为许多编程语言的IDE,如Python、Java、C++等,它集成了代码高亮、自动补全、调试工具等功能。 5. **邮件和新闻阅读器**:内置的Rmail和 Gnus模块使Emacs可以处理电子邮件...

    lpy:适用于GNU Emacs的最小Python IDE

    “lpy:适用于GNU Emacs的最小Python IDE”表明这是一个基于GNU Emacs的轻量级Python集成开发环境(IDE)。lpy是专为Python程序员设计的,旨在提供一个简洁、高效的编程环境,利用Emacs的强大功能来增强Python开发...

    Emacs 配置文件和脚本

    它提供了类似IDE的功能,如代码补全、符号跳转、语法检查等。通过集成Gccsense,用户可以在Emacs中获得类似于Visual Studio或IntelliJ IDEA的开发体验。Gccsense利用GCC的编译信息来提供这些功能,因此它需要GCC在...

    emacs introduction

    Emacs不仅是一款优秀的文本编辑器,还可以作为一个强大的集成开发环境(IDE)。一个好的IDE通常需要具备以下功能: - **源代码编辑**:提供语法高亮、自动完成等功能。 - **代码分析**:检查代码错误和潜在的问题。 -...

    Atom-emacs,用于javascript开发的gnu emacs配置。.zip

    它借鉴了许多现代IDE的特点,比如实时预览、Git集成、项目管理等。将Atom的这些特性融合到Emacs中,使得开发者能够在保持Emacs原有的强大功能的同时,享受到更加现代化的开发环境。 压缩包中的"emacs-master"可能是...

    GNU.Emacs完全手册

    9. **交互式开发环境(IDE)特性**:讲解Emacs作为IDE的能力,如集成调试器、自动完成、代码跳转等,特别强调对于开发者友好性的提升。 10. **Emacs社区与资源**:提供Emacs社区的相关信息,如邮件列表、论坛和在线...

    emacs-win32

    5. **集成开发环境**:Emacs可以作为一个IDE,集成了版本控制(如Git)、构建工具、调试器等功能,对于软件开发人员来说尤其方便。 6. **自动完成与补全**:Emacs提供了强大的自动补全功能,可以自动填充文件名、...

    emacs 配置

    将Helm与gtags结合使用,可以在Emacs中实现类似IDE的代码导航功能,使得在大型项目中定位和理解代码变得轻松。 至于"实用小函数",这是Emacs配置中不可或缺的部分。Emacs Lisp(Elisp)是Emacs的内置脚本语言,用户...

    emacs编辑环境.pdf

    3. **集成环境**:除了基本的文本编辑功能外,Emacs还可以作为集成开发环境(IDE),支持编译、调试等多种功能。 4. **跨平台**:Emacs可以在多种操作系统上运行,包括Unix、Linux、Windows等。 5. **丰富的插件**:...

    Harley Hahns的emacs field 指南

    通过安装合适的插件,Emacs可以变成一个强大的IDE,支持版本控制、代码补全、单元测试等功能。 **具体做法:** - **版本控制系统集成:** 使用Magit等插件来管理Git仓库。 - **代码补全与提示:** 安装Auto-...

    EMACS安装包

    它不仅仅是一个编辑器,更是一个高度可扩展的平台,允许用户通过Lisp语言编写自定义功能,甚至可以将其转化为一个集成开发环境(IDE)。在Windows系统中,通常会以压缩包的形式提供下载,如“emacs-25.1-2-x86_64-w...

    emacs的完全配置(autocomplete cedet ecb yasnippet)

    emacs 的完全配置, 将emacs配置为IDE 代码补全,模板公功能。 函数跳转, 工程管理, 等等

    emacs大神集成开发环境

    Emacs是一款历史悠久且功能强大的文本编辑器,尤其在编程领域被广大开发者誉为“神级”集成开发环境(IDE)。它的强大在于其高度可定制性和扩展性,通过编写或使用他人编写的配置(通常称为“ Emacs Lisp”或“Elisp...

Global site tag (gtag.js) - Google Analytics