Skip to content

Instantly share code, notes, and snippets.

@chrismcg
Created December 2, 2008 09:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chrismcg/31068 to your computer and use it in GitHub Desktop.
Save chrismcg/31068 to your computer and use it in GitHub Desktop.
set shiftwidth=2
set bs=2 " allow backspacing in insert mode
set tabstop=2
set autoindent
set smartindent
set expandtab
set smarttab
set number
set nowrap
set encoding=utf8
set fileencoding=utf8
set incsearch " incremental search
set showmatch " show matching [{(
set hlsearch
set hidden " don't need to save buffers when putting them in the background
set history=1000
set wildmenu
set wildmode=list:longest
set title
set scrolloff=3
set backupdir=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp
set directory=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp
" faster updatetime for taglist
set updatetime=1000
" Change leader to ,
let mapleader = ","
" better go to mark
nnoremap ` '
nnoremap ' `
" not so many prompts
set shortmess=atI
" status line
set laststatus=2
set statusline=
set statusline+=%-3.3n\ " Buffer number
set statusline+=%f\ " filename
set statusline+=%h%m%r%w\ " status flags
set statusline+=\ [%{strlen(&ft)?&ft:'none'}] " file type
set statusline+=\ [%{Tlist_Get_Tag_Prototype_By_Line()}] " file type
set statusline+=%= " right align
set statusline+=0x%-8B " char value
set statusline+=%-14(%l,%c%V%) " line, character
set statusline+=%<%P " file position
set ruler
filetype on
filetype indent on
filetype plugin on
syntax on
set background=dark
colorscheme ir_black
" gui options
" no toolbar
set guioptions-=T
" gentoo ebuilds
au BufRead,BufNewFile *.e{build,class} let is_bash=1|setfiletype sh
au BufRead,BufNewFile *.e{build,class} set ts=4 sw=4 noexpandtab
" TextMate style fuzzy finder
let g:fuzzy_ignore = "*.log"
let g:fuzzy_matching_limit = 70
map <leader>t :FuzzyFinderTextMate<CR>
map <leader>T :FuzzyFinderBuffer<CR>
" NERDTree
nnoremap <silent> <leader>n :execute 'NERDTreeToggle ' . getcwd()<CR>
" TagList
nnoremap <silent> <leader>l :TlistToggle<CR>
"let Tlist_Show_One_File = 1
let Tlist_Process_File_Always = 1
let Tlist_GainFocus_On_ToggleOpen = 1
let Tlist_Close_On_Select = 1
let Tlist_Sort_Type = "name"
let Tlist_Use_Right_Window = 1
let Tlist_WinWidth = 60
let Tlist_Exit_OnlyWindow = 1
" Bufexplorer
let g:bufExplorerFindActive = 1
let g:bufExplorerShowRelativePath = 1
" Rails.vim
nnoremap <leader>rmo :Rmodel
nnoremap <leader>rms :RSmodel
nnoremap <leader>rmv :RVmodel
nnoremap <leader>rco :Rcontroller
nnoremap <leader>rcs :RScontroller
nnoremap <leader>rcv :RVcontroller
" Align
vmap <leader>aa :Align
vmap <leader>a= :Align == \| => \| =<cr>
vmap <leader>ai :Align if<cr>
vmap <leader>ac :Align! P0 \:<cr>
" scmdiff
highlight DiffAdd ctermbg=DarkYellow ctermfg=black cterm=NONE
highlight DiffChange ctermbg=DarkYellow ctermfg=black cterm=NONE
highlight DiffText ctermbg=DarkCyan ctermfg=black cterm=NONE
highlight DiffDelete ctermbg=red ctermfg=white
" gitdiff
nnoremap <silent> <leader>gd :GITDiff<cr>
" Load extras
runtime! ftplugin/man.vim
runtime macros/matchit.vim
" My mappings
function! Run_spec_file(at_current_line)
let old_make = &makeprg
let spec_command = "script/spec --drb "
if a:at_current_line == "yes"
let &makeprg = spec_command."--line ".expand(line("."))." ".expand("%")
else
let &makeprg = spec_command.expand("%")
endif
exe "make"
let &makeprg = old_make
endfunction
" run the full file
nnoremap <leader>s :call Run_spec_file("no")<cr>
nnoremap <leader>ss :call Run_spec_file("yes")<cr>
" easy toggle fold
nnoremap <space> za
nnoremap <C-space> zMzv
" easy reload / edit vimrc
nmap \s :source $MYVIMRC<CR>
nmap \v :e $MYVIMRC<CR>
" better visual mode indenting
:vnoremap < <gv
:vnoremap > >gv
" select at current indent level from http://vim.wikia.com/wiki/Visual_selection_of_indent_block
" modified for ruby to allow selecting the prev and next lines too for blocks
function! SelectIndent (blockmode)
let temp_var=indent(line("."))
while indent(line(".")-1) >= temp_var
exe "normal k"
endwhile
if a:blockmode == "yes"
exe "normal k"
end
exe "normal V"
while indent(line(".")+1) >= temp_var
exe "normal j"
endwhile
if a:blockmode == "yes"
exe "normal j"
end
endfun
nmap gb :call SelectIndent("yes")<CR>
nmap gn :call SelectIndent("no")<CR>
" catch trailing whitespace
set listchars=tab:>-,trail:·,eol:$
nmap <silent> <leader>w :set nolist!<CR>
" better buffer switching
map <C-S-Right> :bnext<cr>
imap <C-S-Right> <ESC>:bnext<cr>
map <C-S-Left> :bprev<cr>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment