庸置疑,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 相关包,操作方法等等。
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 ...
一个基于etag的emacs IDE插件
emacs,ide,自定义编辑器
Arduino 之类的 Emacs IDE。
cmake-ide:将Emacs用作CC ++ IDE
emacs 的完全配置, 将emacs配置为IDE 代码补全,模板公功能。 函数跳转, 工程管理, 等等
lpy:适用于GNU Emacs的最小Python IDE
可移植的Emacs配置专注于为C ++和Lisp / Clojure编程添加IDE级别的功能。 它仅适用于Linux和OS X上的Emacs 26.1及更高版本,包括-nw模式,但它也应适用于Windows。 它是模块化且可定制的。 它不是入门工具包,而是...
omnisharp-emacs, 在为csharp工作时,Troll同事使用 Emacs ! omnisharp omnisharp是awesome服务器的一个端口,它是awesome... 它提供了用于编辑 C# 解决方案中的文件的ide,它由后台工作的OmniSharp服务器实例提供。
螺旋式:基于UNREPL的Emacs Clojure IDE
psc-ide-emacs:用于PureScript的psc-ide工具的Emacs集成
Brief indruction of Emacs and related plugins.
Atom-merlin.zip,vim和emacs中ocaml的上下文相关完成merlin是一个为ocaml提供现代ide特性的编辑器服务。,atom是一个用web技术构建的开源文本编辑器。
common lisp work ide ,带有自动补全,自我感觉比官方的emacs 好用
IDE for Emacs 在Emacs中跨多种语言和框架执行类似IDE任务的统一方式。特征与, 和。 所有语言和框架的全局快捷方式和功能。 JavaClojure Python 去javascipt 传统的类似IDE的可交换布局。 高级导航控制(来回)。 ...
如果你喜欢GNU/Emacs ,如果你喜欢在编辑器中编程而不是大而慢的 IDE,但仍然喜欢拥有一个方便的代码编辑器,那么 Kuso IDE 是你的正确选择。 依赖关系 Kuso IDE 需要这些软件: GNU Emacs >= 24.3 文本信息 git ...
ecb 2.40 use for java IDE of emacs
目前,此版本仅专注于C和C ++语言的IDE。 但是很快将支持更多的语言。 目前,这只是一个测试版,欢迎对该项目提供任何帮助。 | 目录 苹果系统 视窗 安装 编程语言支持 更新 Condor Emacs发布 配套 执照 特征 ...