My IDE in Emacs (mainly for Python)
08/23/2011 12:26am | 1 Comments
I'm writing this article up to mainly keep track of the current state of my IDE in Emacs, how to set one up, and to keep my to-do list.Implemented Features
Default Emacs Library Includes
I use the following from the library that comes with Emacs (as of version 23)- Viper-mode (viper-mode 3, though I'm sure 5 would be good too)
- Windmove (through keybindings, for moving around windows easier)
- hideshow (for code folding)
- ibuffer (for listing on buffers when buffer switching)
- ido (for listing of file in a directory in the minibuffer
Code to instantiate:
(setq viper-mode t) (require 'viper) (load-library "hideshow") (add-hook 'python-mode-hook 'hs-minor-mode) (require 'ido) (ido-mode 'both)
Keybindings
(global-set-key (kbd "C-x C-l") 'windmove-right) (global-set-key (kbd "C-x C-h") 'windmove-left) (global-set-key (kbd "C-x C-k") 'windmove-up) (global-set-key (kbd "C-x C-j") 'windmove-down) (global-set-key (kbd "C-x C-;") 'hippie-expand) (global-set-key (kbd "C-x C-g") 'find-name-dired) (global-set-key (kbd "C-c C-t") 'ansi-term)
Viper Keybindings (in .viper)
(setq viper-expert-level '3) (setq viper-inhibit-startup-message 't) (setq-default indent-tabs-mode nil) ; I think this makes tabs into spaces (setq viper-shift-width 4) ; don't touch or else... ;; Makes searching w/ regex default (setq viper-re-search t) ; don't touch or else... ;; The following is for hideshow to work ALMOST similar to vi folding ;; (there were keybindings I didn't like) (define-key viper-vi-global-user-map "zt" 'hs-toggle-hiding) (define-key viper-vi-global-user-map "zM" 'hs-hide-all) (define-key viper-vi-global-user-map "zm" 'hs-hide-block) (define-key viper-vi-global-user-map "zR" 'hs-show-all) (define-key viper-vi-global-user-map "zr" 'hs-show-block)
Features implemented using external files
Yasnippet (for bundling and snippets)
Yasnippet provides me features along the lives of textmates bundling, which I think definitely makes things faster in the long run. After all, who wants to write boilerplate code? http://manual.macromates.com/en/bundles Yasnippet site: http://code.google.com/p/yasnippet/lusty-explorer.el (for a great tab completion file navigator)
Followed this emacs-fu guide: http://emacs-fu.blogspot.com/2010/07/navigating-through-files-and-buffers.html And downloaded the .el here: http://www.emacswiki.org/emacs/LustyExplorer Specifically I have the following in my .emacs:(when (require 'lusty-explorer nil 'noerror) ;; overrride the normal file-opening, buffer switching (global-set-key (kbd "C-x C-f") 'lusty-file-explorer) (global-set-key (kbd "C-x b") 'lusty-buffer-explorer))
Desired features
I have yet to implement this, but I would like:- Better file search (the ones I could find don't do what I'm looking for)
- Specifically, looking for a smart find that allow autocompletion
- Looking for something along the lines of eclipse
Comments
P-$ | 08/28/2011 07:41am
Yusuke, you have lost your mind!