I transitioned to MacVim but I kept some of my tty and screen 256 color, mouse and mouse scoll support in the file (some commented)
set nocompatible " we don't need vi compatibility, give us all of vim
set nomodeline " do not parse embedded modelines (see: CVE-2007-2438)
if (&t_Co >= 256)
set background=dark
color peaksea
endif
set lazyredraw " don't redraw when running macros
set ttyfast " fast local tty
set novisualbell " no visual bell
set noeb " no error bell *only slightly more annoying than visual bells*
set history=100 " keep some history
set clipboard=unnamed " Uses OS clipboard (shares clipboard accross vim instances)
set noeol " Don't automatically insert EOL at EOF
set backspace=indent,eol,start " backspace over autoident, EOL, and start of insert
set number " line numbers
set hlsearch " highlight search matches
set incsearch " incremental search (jump to partial match)
set smartcase " if I put case variation in my search, it's cause I care
set showmatch " show matching brackets
set scrolloff=8 " keep at least this many lines above/below cursor
set sidescrolloff=5 " keep at least this many columns left/right of cursor
set grepprg=ack " ack is smarter
set showmode " vim lets us know which mode we're in
set showcmd " show partial command in last line of screen
set shortmess+=rnixnm " shorter messages
set statusline=%F%m%r%h%w\ [%Y:%{&ff}]\ [A=\%03.3b]\ [0x=\%02.2B]\ [%l/%L,%v][%p%%]\ %{$PYTHONPROJECT}
set laststatus=2 " make the last line where the status is two lines deep so you can see status always
" use termcap
"set t_ti=
"set t_te=
set ttymouse=xterm2 " enable mouse in terminal
set mouse=a " enable mouse in all modes
set wildmenu " enable wildmenu
set wildmode=list:longest,full
set wildchar=<tab>
" change default auto-complete menu colors
highlight Pmenu ctermfg=1 ctermbg=4 guibg=grey30
" do not complete on these
set suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc,.cmi,.cmo,.swo
"set nofoldenable
"set foldmethod=marker
set path=~/projects/**
set tags+=TAGS
let maplocalleader=','
cwindow 30 " size of error window
let g:allml_global_maps = 1
let g:netrw_list_hide = ".*\.pyc$,^darcs.*,.*patch$,_darcs,_session_records,savior.egg-info,\.svn,\.hg,\.git"
let g:netrw_noretmap = 1 " do not make double click return to netrw browser
if has("autocmd")
filetype plugin indent on
syntax on
" mako templates
au! BufRead,BufNewFile *.mtpl setfiletype mako
au BufWinEnter *.mtpl setfiletype mako
au! BufRead,BufNewFile *.mako setfiletype mako
au BufWinEnter *.mako setfiletype mako
" for Perl programming, have things in braces indenting themselves:
autocmd FileType perl set smartindent
" for CSS, also have things in braces indented:
autocmd FileType css set smartindent
" for HTML, generally format text, but if a long line has been created leave it
" alone when editing:
autocmd FileType html set formatoptions+=tl
" for both CSS and HTML, use genuine tab characters for indentation, to make
" files a few bytes smaller:
autocmd FileType html,css set noexpandtab tabstop=2
" For PHP we use 8 tabstops and real tab characters
autocmd FileType php set noexpandtab tabstop=8
" in makefiles, don't expand tabs to spaces, since actual tab characters are
" needed, and have indentation at 8 chars to be sure that all indents are tabs
" (despite the mappings later):
autocmd FileType make set noexpandtab shiftwidth=8
" for Python
autocmd FileType python setlocal tabstop=4 shiftwidth=4 expandtab shiftround softtabstop=4 autoindent foldenable smartindent cinwords=if,elif,else,for,while,with,try,except,finally,def,class
"autocmd FileType python setlocal omnifunc=pythoncomplete#Complete
"autocmd FileType python setlocal omnifunc=pysmell#Complete
au FileType svn setlocal spell tw=76
au FileType git setlocal spell tw=76
au BufRead /tmp/mutt-* set tw=72
" set viewdir=~/.vim/.views
" au VimLeave * mksession! ~/.vim/.sessions/session.vim
" au BufWinLeave *.py mkview
" au BufWinEnter *.py silent loadview
" au BufWinLeave *.mako mkview
" au BufWinEnter *.mako silent loadview
" au BufWinLeave *.html mkview
" au BufWinEnter *.html silent loadview
" au BufWinLeave *.htm mkviewmap <C-right> <ESC>:bn<CR>
" au BufWinEnter *.htm silent loadviewmap <C-left> <ESC>:bp<CR>
endif
" CTRL_R register example
" imap <C-j>d <c-r>=system('~/bin/unittests')<cr>
" nnoremap <silent> <F8> :TlistToggle<CR>
" scroll mouse button map
" map <M-Esc>[62~ <MouseDown>
" map! <M-Esc>[62~ <MouseDown>
" map <M-Esc>[63~ <MouseUp>
" map! <M-Esc>[63~ <MouseUp>
" map <M-Esc>[64~ <S-MouseDown>
" map! <M-Esc>[64~ <S-MouseDown>
" map <M-Esc>[65~ <S-MouseUp>
" map! <M-Esc>[65~ <S-MouseUp>
"
" " numpad fixup
"imap ^[Oq 1
"imap ^[Or 2
"imap ^[Os 3
"imap ^[Ot 4
"imap ^[Ou 5
"imap ^[Ov 6
"imap ^[Ow 7
"imap ^[Ox 8
"imap ^[Oy 9
"imap ^[Op 0
"imap ^[On .
"imap ^[OQ /
"imap ^[OR *
"imap ^[Ol +
"imap ^[OS -
function! OnlineDoc()
" let s:browser = "firefox"
let s:browser = "lynx"
let s:wordUnderCursor = expand("<cword>")
if &ft == "cpp" || &ft == "c" || &ft == "ruby" || &ft == "php" || &ft == "python"
let s:url = "http://www.google.com/codesearch?q=".s:wordUnderCursor."+lang:".&ft
elseif &ft == "vim"
let s:url = "http://www.google.com/codesearch?q=".s:wordUnderCursor
else
return
endif
let s:cmd = "silent !" . s:browser . " " . s:url
"echo s:cmd
execute s:cmd
redraw!
endfunction
" online doc search
map <LocalLeader>k :call OnlineDoc()<CR>
" hightlight spaces at end of lines
highlight WhitespaceEOL ctermbg=red guibg=red
match WhitespaceEOL /\s\+$/
" This will highlight spaces before a tab:
highlight RedundantSpaces ctermbg=red guibg=red
match RedundantSpaces /\s\+$\| \+\ze\t/