Before you can develop an application you must first invent your development environment.
And it goes without saying that our development environment must be morally pure. There was a time when I was infantuated with the glamour of OS X and Textmate. But I can no longer standby and allow proprietary infiltration, proprietary indoctrination, proprietary subversion, and the international closed source conspiracy to sap and impurify...
Just the other day my ibook's battery charger was emitting sparks. I realized just how far the insanity had infiltrated my life when the apple store informed me that I would need to dish out nearly 100 bucks for a replacement charger. If I had 100 bucks I wouldn't own a laptop which sparks when you plug it in, and I certainly could not afford a Textmate license.
Fortunately there's vim. With a few plugins you can have an excellent ide setup on the operating system of your choice without using bourgeois software.
1. Install vimIf you are using aptitude look for packages like vim-ruby or vim-gtk. When I compiled the vim 7.2 source on my machine the configure script and makefile automatically included ruby support. Once you have installed vim you can test whether ruby support is installed with:
:echo has('ruby') // returns 1 or 0
2. Install NERDTree PluginAll of these plugings have installation instructions and usage documentation on their sites. Essentially you extract some archives in your $HOME/.vim directory. NERDTree
3. Install a bunch of other stuffvim.rails Ruby Complete Supertab
>ls -R $HOME/.vim .vim/autoload: rails.vim .vim/colors: desert256.vim vividchalk.vim .vim/doc: NERD_tree.txt rails.txt tags .vim/nerdtree_plugin: exec_menuitem.vim fs_menu.vim git_menu.vim .vim/plugin: NERD_tree.vim rails.vim rubycomplete.vim supertab.vim # What your $HOME/.vim directory might look like.
4. Update Configuration
Once you have installed the plugins you might want to update a few settings make them more usable. The .vimrc file below:* disables backwards compatibility with vi, ensuring more features
* ensures syntax highlighting is enabled
* adds some convenience mappings for nerdtree
* ignores case when searching
* has a folding convenience mapping
* highlights matches when searching for them
* sets two spaces for tab displays, vim.rails will force tabs to two spaces in rails project files
* forces the default supertab completion to omnicomplete
set nocompatible syntax on filetype plugin indent on nmap
:NERDTreeToggle imap :NERDTreeToggle set ignorecase nnoremap za set hlsearch set ts=2 let g:SuperTabDefaultCompletionType = " "