| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 | " 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 modeset backspace=indent,eol,startset nobackupset nowritebackupset history=50		" keep 50 lines of command line historyset ruler		" show the cursor position all the timeset showcmd		" display incomplete commandsset incsearch		" do incremental searching" Don't use Ex mode, use Q for formattingmap 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 hlsearchendif" Switch wrap off for everythingset 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 ENDelse  set autoindent		" always set autoindenting onendif " 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 spacesset tabstop=2set shiftwidth=2set expandtab" Always display the status lineset laststatus=2" \ is the leader characterlet mapleader = ","" Edit the README_FOR_APP (makes :R commands work)map <Leader>R :e doc/README_FOR_APP<CR>" Leader shortcuts for Rails commandsmap <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 highlightingmap <Leader>h :set invhls <CR>" Opens an edit command with the path of the currently edited file filled in" Normal mode: <Leader>emap <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>tmap <Leader>te :tabe <C-R>=expand("%:p:h") . "/" <CR>" Inserts the path of the currently edited file into a command" Command mode: Ctrl+Pcmap <C-P> <C-R>=expand("%:p:h") . "/" <CR>" Duplicate a selection" Visual mode: Dvmap D y'>p" Press Shift+P while in visual mode to replace the selection without" overwriting the default registervmap P p :call setreg('"', getreg('0')) <CR>" For Hamlau! BufRead,BufNewFile *.haml         setfiletype haml" No Help, pleasenmap <F1> <Esc>" Press ^F from insert mode to insert the current file nameimap <C-F> <C-R>=expand("%")<CR>" Maps autocomplete to tabimap <Tab> <C-N>imap <C-L> <Space>=><Space>" Display extra whitespace" set list listchars=tab:Èá,trail:á" Edit routescommand! Rroutes :e config/routes.rbcommand! Rschema :e db/schema.rb" Local configif filereadable(".vimrc.local")  source .vimrc.localendif" Use Ack instead of Grep when availableif executable("ack")  set grepprg=ack\ -H\ --nogroup\ --nocolor\ --ignore-dir=tmp\ --ignore-dir=coverageendif" Color scheme" colorscheme vividchalk" highlight NonText guibg=#060606" highlight Folded  guibg=#0A0A0A guifg=#9090D0" Numbersset numberset numberwidth=5" Snippets are activated by Shift+Tablet g:snippetsEmu_key = "<S-Tab>"" Tab completion options" (only complete to the longest unambiguous match, and show a menu)set completeopt=longest,menuset wildmode=list:longest,list:fullset complete=.,t" case only matters with mixed case expressionsset ignorecaseset smartcase" Tagslet g:Tlist_Ctags_Cmd="ctags --exclude='*.js'"set tags=./tags;let g:fuf_splitPathMatching=1" Open URLcommand -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."  endifendfunctionmap <Leader>w :call OpenURL()<CR>
 |