|  | @@ -0,0 +1,206 @@
 | 
											
												
													
														|  | 
 |  | +" based on http://github.com/jferris/config_files/blob/master/vimrc
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" Use Vim settings, rather then Vi settings (much better!).
 | 
											
												
													
														|  | 
 |  | +" This must be first, because it changes other options as a side effect.
 | 
											
												
													
														|  | 
 |  | +set nocompatible
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" allow backspacing over everything in insert mode
 | 
											
												
													
														|  | 
 |  | +set backspace=indent,eol,start
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +set nobackup
 | 
											
												
													
														|  | 
 |  | +set nowritebackup
 | 
											
												
													
														|  | 
 |  | +set history=50		" keep 50 lines of command line history
 | 
											
												
													
														|  | 
 |  | +set ruler		" show the cursor position all the time
 | 
											
												
													
														|  | 
 |  | +set showcmd		" display incomplete commands
 | 
											
												
													
														|  | 
 |  | +set incsearch		" do incremental searching
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" Don't use Ex mode, use Q for formatting
 | 
											
												
													
														|  | 
 |  | +map Q gq
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" This is an alternative that also works in block mode, but the deleted
 | 
											
												
													
														|  | 
 |  | +" text is lost and it only works for putting the current register.
 | 
											
												
													
														|  | 
 |  | +"vnoremap p "_dp
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" Switch syntax highlighting on, when the terminal has colors
 | 
											
												
													
														|  | 
 |  | +" Also switch on highlighting the last used search pattern.
 | 
											
												
													
														|  | 
 |  | +if (&t_Co > 2 || has("gui_running")) && !exists("syntax_on")
 | 
											
												
													
														|  | 
 |  | +  syntax on
 | 
											
												
													
														|  | 
 |  | +  set hlsearch
 | 
											
												
													
														|  | 
 |  | +endif
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" Switch wrap off for everything
 | 
											
												
													
														|  | 
 |  | +set nowrap
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" Only do this part when compiled with support for autocommands.
 | 
											
												
													
														|  | 
 |  | +if has("autocmd")
 | 
											
												
													
														|  | 
 |  | +  " Enable file type detection.
 | 
											
												
													
														|  | 
 |  | +  " Use the default filetype settings, so that mail gets 'tw' set to 72,
 | 
											
												
													
														|  | 
 |  | +  " 'cindent' is on in C files, etc.
 | 
											
												
													
														|  | 
 |  | +  " Also load indent files, to automatically do language-dependent indenting.
 | 
											
												
													
														|  | 
 |  | +  filetype plugin indent on
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  " Set File type to 'text' for files ending in .txt
 | 
											
												
													
														|  | 
 |  | +  autocmd BufNewFile,BufRead *.txt setfiletype text
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  " Enable soft-wrapping for text files
 | 
											
												
													
														|  | 
 |  | +  autocmd FileType text,markdown,html,xhtml,eruby setlocal wrap linebreak nolist
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  " Put these in an autocmd group, so that we can delete them easily.
 | 
											
												
													
														|  | 
 |  | +  augroup vimrcEx
 | 
											
												
													
														|  | 
 |  | +  au!
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  " For all text files set 'textwidth' to 78 characters.
 | 
											
												
													
														|  | 
 |  | +  " autocmd FileType text setlocal textwidth=78
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  " When editing a file, always jump to the last known cursor position.
 | 
											
												
													
														|  | 
 |  | +  " Don't do it when the position is invalid or when inside an event handler
 | 
											
												
													
														|  | 
 |  | +  " (happens when dropping a file on gvim).
 | 
											
												
													
														|  | 
 |  | +  autocmd BufReadPost *
 | 
											
												
													
														|  | 
 |  | +    \ if line("'\"") > 0 && line("'\"") <= line("$") |
 | 
											
												
													
														|  | 
 |  | +    \   exe "normal g`\"" |
 | 
											
												
													
														|  | 
 |  | +    \ endif
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  " Automatically load .vimrc source when saved
 | 
											
												
													
														|  | 
 |  | +  autocmd BufWritePost .vimrc source $MYVIMRC
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  augroup END
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +else
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  set autoindent		" always set autoindenting on
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +endif " has("autocmd")
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" if has("folding")
 | 
											
												
													
														|  | 
 |  | +  " set foldenable
 | 
											
												
													
														|  | 
 |  | +  " set foldmethod=syntax
 | 
											
												
													
														|  | 
 |  | +  " set foldlevel=1
 | 
											
												
													
														|  | 
 |  | +  " set foldnestmax=2
 | 
											
												
													
														|  | 
 |  | +  " set foldtext=strpart(getline(v:foldstart),0,50).'\ ...\ '.substitute(getline(v:foldend),'^[\ #]*','','g').'\ '
 | 
											
												
													
														|  | 
 |  | +" endif
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" Softtabs, 2 spaces
 | 
											
												
													
														|  | 
 |  | +set tabstop=2
 | 
											
												
													
														|  | 
 |  | +set shiftwidth=2
 | 
											
												
													
														|  | 
 |  | +set expandtab
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" Always display the status line
 | 
											
												
													
														|  | 
 |  | +set laststatus=2
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" \ is the leader character
 | 
											
												
													
														|  | 
 |  | +let mapleader = ","
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" Edit the README_FOR_APP (makes :R commands work)
 | 
											
												
													
														|  | 
 |  | +map <Leader>R :e doc/README_FOR_APP<CR>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" Leader shortcuts for Rails commands
 | 
											
												
													
														|  | 
 |  | +map <Leader>m :Rmodel 
 | 
											
												
													
														|  | 
 |  | +map <Leader>c :Rcontroller 
 | 
											
												
													
														|  | 
 |  | +map <Leader>v :Rview 
 | 
											
												
													
														|  | 
 |  | +map <Leader>u :Runittest 
 | 
											
												
													
														|  | 
 |  | +map <Leader>f :Rfunctionaltest 
 | 
											
												
													
														|  | 
 |  | +map <Leader>tm :RTmodel 
 | 
											
												
													
														|  | 
 |  | +map <Leader>tc :RTcontroller 
 | 
											
												
													
														|  | 
 |  | +map <Leader>tv :RTview 
 | 
											
												
													
														|  | 
 |  | +map <Leader>tu :RTunittest 
 | 
											
												
													
														|  | 
 |  | +map <Leader>tf :RTfunctionaltest 
 | 
											
												
													
														|  | 
 |  | +map <Leader>sm :RSmodel 
 | 
											
												
													
														|  | 
 |  | +map <Leader>sc :RScontroller 
 | 
											
												
													
														|  | 
 |  | +map <Leader>sv :RSview 
 | 
											
												
													
														|  | 
 |  | +map <Leader>su :RSunittest 
 | 
											
												
													
														|  | 
 |  | +map <Leader>sf :RSfunctionaltest 
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" Hide search highlighting
 | 
											
												
													
														|  | 
 |  | +map <Leader>h :set invhls <CR>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" Opens an edit command with the path of the currently edited file filled in
 | 
											
												
													
														|  | 
 |  | +" Normal mode: <Leader>e
 | 
											
												
													
														|  | 
 |  | +map <Leader>e :e <C-R>=expand("%:p:h") . "/" <CR>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" Opens a tab edit command with the path of the currently edited file filled in
 | 
											
												
													
														|  | 
 |  | +" Normal mode: <Leader>t
 | 
											
												
													
														|  | 
 |  | +map <Leader>te :tabe <C-R>=expand("%:p:h") . "/" <CR>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" Inserts the path of the currently edited file into a command
 | 
											
												
													
														|  | 
 |  | +" Command mode: Ctrl+P
 | 
											
												
													
														|  | 
 |  | +cmap <C-P> <C-R>=expand("%:p:h") . "/" <CR>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" Duplicate a selection
 | 
											
												
													
														|  | 
 |  | +" Visual mode: D
 | 
											
												
													
														|  | 
 |  | +vmap D y'>p
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" Press Shift+P while in visual mode to replace the selection without
 | 
											
												
													
														|  | 
 |  | +" overwriting the default register
 | 
											
												
													
														|  | 
 |  | +vmap P p :call setreg('"', getreg('0')) <CR>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" For Haml
 | 
											
												
													
														|  | 
 |  | +au! BufRead,BufNewFile *.haml         setfiletype haml
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" No Help, please
 | 
											
												
													
														|  | 
 |  | +nmap <F1> <Esc>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" Press ^F from insert mode to insert the current file name
 | 
											
												
													
														|  | 
 |  | +imap <C-F> <C-R>=expand("%")<CR>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" Maps autocomplete to tab
 | 
											
												
													
														|  | 
 |  | +imap <Tab> <C-N>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +imap <C-L> <Space>=><Space>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" Display extra whitespace
 | 
											
												
													
														|  | 
 |  | +" set list listchars=tab:Èá,trail:á
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" Edit routes
 | 
											
												
													
														|  | 
 |  | +command! Rroutes :e config/routes.rb
 | 
											
												
													
														|  | 
 |  | +command! Rschema :e db/schema.rb
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" Local config
 | 
											
												
													
														|  | 
 |  | +if filereadable(".vimrc.local")
 | 
											
												
													
														|  | 
 |  | +  source .vimrc.local
 | 
											
												
													
														|  | 
 |  | +endif
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" Use Ack instead of Grep when available
 | 
											
												
													
														|  | 
 |  | +if executable("ack")
 | 
											
												
													
														|  | 
 |  | +  set grepprg=ack\ -H\ --nogroup\ --nocolor\ --ignore-dir=tmp\ --ignore-dir=coverage
 | 
											
												
													
														|  | 
 |  | +endif
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" Color scheme
 | 
											
												
													
														|  | 
 |  | +" colorscheme vividchalk
 | 
											
												
													
														|  | 
 |  | +" highlight NonText guibg=#060606
 | 
											
												
													
														|  | 
 |  | +" highlight Folded  guibg=#0A0A0A guifg=#9090D0
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" Numbers
 | 
											
												
													
														|  | 
 |  | +set number
 | 
											
												
													
														|  | 
 |  | +set numberwidth=5
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" Snippets are activated by Shift+Tab
 | 
											
												
													
														|  | 
 |  | +let g:snippetsEmu_key = "<S-Tab>"
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" Tab completion options
 | 
											
												
													
														|  | 
 |  | +" (only complete to the longest unambiguous match, and show a menu)
 | 
											
												
													
														|  | 
 |  | +set completeopt=longest,menu
 | 
											
												
													
														|  | 
 |  | +set wildmode=list:longest,list:full
 | 
											
												
													
														|  | 
 |  | +set complete=.,t
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" case only matters with mixed case expressions
 | 
											
												
													
														|  | 
 |  | +set ignorecase
 | 
											
												
													
														|  | 
 |  | +set smartcase
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" Tags
 | 
											
												
													
														|  | 
 |  | +let g:Tlist_Ctags_Cmd="ctags --exclude='*.js'"
 | 
											
												
													
														|  | 
 |  | +set tags=./tags;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +let g:fuf_splitPathMatching=1
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +" Open URL
 | 
											
												
													
														|  | 
 |  | +command -bar -nargs=1 OpenURL :!open <args>
 | 
											
												
													
														|  | 
 |  | +function! OpenURL()
 | 
											
												
													
														|  | 
 |  | +  let s:uri = matchstr(getline("."), '[a-z]*:\/\/[^ >,;:]*')
 | 
											
												
													
														|  | 
 |  | +  echo s:uri
 | 
											
												
													
														|  | 
 |  | +  if s:uri != ""
 | 
											
												
													
														|  | 
 |  | +	  exec "!open \"" . s:uri . "\""
 | 
											
												
													
														|  | 
 |  | +  else
 | 
											
												
													
														|  | 
 |  | +	  echo "No URI found in line."
 | 
											
												
													
														|  | 
 |  | +  endif
 | 
											
												
													
														|  | 
 |  | +endfunction
 | 
											
												
													
														|  | 
 |  | +map <Leader>w :call OpenURL()<CR>
 |