I do sometimes use vim, but I find that a simple tabbed GUI text editor gives me the most productivity. I've never liked IDEs, especially since I would rather just type "make" than try to use an internal build system. Add to this the fact that both my company and all my personal projects are based on the GNU toolset in some form or another.
:vsp
Syntax highlighting
:syntax on
Tabs
:tabnew
Bracket matching
:inoremap ( ()
:inoremap [ []
:inoremap { {}
And so many built-in tools...you really should take another look. I use TextMate on my Mac to churn out massive amounts of HTML, but any other editing happens in (G)Vim.
" Coding aids
set undolevels=5000
set backspace=indent,eol,start
vnoremap < <gv
vnoremap > >gv
" Braces, etc.
inoremap ( ()<LEFT>
inoremap (<CR> (<CR>)<ESC>O
inoremap () ()
inoremap { {}<LEFT>
inoremap {<CR> {<CR>}<Esc>O
inoremap {{ {
inoremap [ []<LEFT>
inoremap [<CR> [<CR>]<Esc>O
inoremap [] []
" Wrap in braces, etc.
vnoremap -( <ESC>`>a)<ESC>`<i(<ESC>
vnoremap -[ <ESC>`>a]<ESC>`<i[<ESC>
vnoremap -{ <ESC>`>a}<ESC>`<i{<ESC>
vnoremap -" <ESC>`>a"<ESC>`<i"<ESC>
vnoremap -' <ESC>`>a'<ESC>`<i'<ESC>
" End the line, adding a semicolon
inoremap <S-CR> <ESC>A;<ESC>o
noremap <S-CR> A;<ESC>j
I also use NERDCommenter for quick commenting, an XML tag wrapper script, and a tag closer script. As you can see above, typing the open/close pair doesn't result in "())", and typing an open brace plus a carriage return automatically adds the close brace to the line below, in the format: function hello($name) {
// Insertion point
}
Edit: Of course, that isn't my entire .vimrcThis is pretty personal, so I guess it's something you may want to at least give a try.