Yusuke Tsutsumi

yusuketsutsumi

  • Home
  • Projects
  • About

Recent Posts


  • Automatic Package installation using ELPA in Emacs 24
  • Python Pet Peeves
  • Search and replace multi-line expressions with SED
  • WebPageTest and IE9
  • Getting Python2.5 to Build with sqlite3 and zlib on Ubuntu Natty 2.5

Coding


My focus is on implementing technologies for back-end preformance and test evaluation.

  • My Emacs Build
  • MySQL m4

Videos


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!
Leave a comment:



  • Coding
  • GitHub
  • StackOverflow
  • Contact
  • Email
  • Social
  • LinkedIn
  • Google+
Copyright 2011 Yusuke Tsutsumi, All rights reserved