|
@@ -1,117 +1,91 @@
|
|
|
-" 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 number
|
|
|
+set ruler
|
|
|
+syntax on
|
|
|
|
|
|
-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
|
|
|
+" Set encoding
|
|
|
+set encoding=utf-8
|
|
|
|
|
|
-" Switch wrap off for everything
|
|
|
+" Whitespace stuff
|
|
|
set nowrap
|
|
|
+set tabstop=2
|
|
|
+set shiftwidth=2
|
|
|
+set softtabstop=2
|
|
|
+set expandtab
|
|
|
+set list listchars=tab:\ \ ,trail:·
|
|
|
|
|
|
-" 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
|
|
|
+" Searching
|
|
|
+set hlsearch
|
|
|
+set incsearch
|
|
|
+set ignorecase
|
|
|
+set smartcase
|
|
|
|
|
|
- " Set File type to 'text' for files ending in .txt
|
|
|
- autocmd BufNewFile,BufRead *.txt setfiletype text
|
|
|
+" Tab completion
|
|
|
+set wildmode=list:longest,list:full
|
|
|
+set wildignore+=*.o,*.obj,.git,*.rbc,*.class,.svn,vendor/gems/*
|
|
|
|
|
|
- " Enable soft-wrapping for text files
|
|
|
- autocmd FileType text,markdown,html,xhtml,eruby setlocal wrap linebreak nolist
|
|
|
+" Status bar
|
|
|
+set laststatus=2
|
|
|
|
|
|
- " Put these in an autocmd group, so that we can delete them easily.
|
|
|
- augroup vimrcEx
|
|
|
- au!
|
|
|
+" Without setting this, ZoomWin restores windows in a way that causes
|
|
|
+" equalalways behavior to be triggered the next time CommandT is used.
|
|
|
+" This is likely a bludgeon to solve some other issue, but it works
|
|
|
+set noequalalways
|
|
|
|
|
|
- " For all text files set 'textwidth' to 78 characters.
|
|
|
- " autocmd FileType text setlocal textwidth=78
|
|
|
+" NERDTree configuration
|
|
|
+let NERDTreeIgnore=['\.pyc$', '\.rbc$', '\~$']
|
|
|
+map <Leader>n :NERDTreeToggle<CR>
|
|
|
|
|
|
- " 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
|
|
|
+" Command-T configuration
|
|
|
+let g:CommandTMaxHeight=20
|
|
|
|
|
|
- " Automatically load .vimrc source when saved
|
|
|
- autocmd BufWritePost .vimrc source $MYVIMRC
|
|
|
+" ZoomWin configuration
|
|
|
+map <Leader><Leader> :ZoomWin<CR>
|
|
|
|
|
|
- augroup END
|
|
|
+" CTags
|
|
|
+map <Leader>rt :!ctags --extra=+f -R *<CR><CR>
|
|
|
+map <C-\> :tnext<CR>
|
|
|
|
|
|
-else
|
|
|
+" Remember last location in file
|
|
|
+if has("autocmd")
|
|
|
+ au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
|
|
|
+ \| exe "normal g'\"" | endif
|
|
|
+endif
|
|
|
|
|
|
- set autoindent " always set autoindenting on
|
|
|
+function s:setupWrapping()
|
|
|
+ set wrap
|
|
|
+ set wrapmargin=2
|
|
|
+ set textwidth=72
|
|
|
+endfunction
|
|
|
|
|
|
-endif " has("autocmd")
|
|
|
+function s:setupMarkup()
|
|
|
+ call s:setupWrapping()
|
|
|
+ map <buffer> <Leader>p :Hammer<CR>
|
|
|
+endfunction
|
|
|
|
|
|
-" 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
|
|
|
+" make uses real tabs
|
|
|
+au FileType make set noexpandtab
|
|
|
|
|
|
-" Softtabs, 2 spaces
|
|
|
-set tabstop=2
|
|
|
-set shiftwidth=2
|
|
|
-set expandtab
|
|
|
+" Thorfile, Rakefile, Vagrantfile and Gemfile are Ruby
|
|
|
+au BufRead,BufNewFile {Gemfile,Rakefile,Vagrantfile,Thorfile,config.ru} set ft=ruby
|
|
|
|
|
|
-" Always display the status line
|
|
|
-set laststatus=2
|
|
|
+" md, markdown, and mk are markdown and define buffer-local preview
|
|
|
+au BufRead,BufNewFile *.{md,markdown,mdown,mkd,mkdn} call s:setupMarkup()
|
|
|
|
|
|
-" \ 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>
|
|
|
+" add json syntax highlighting
|
|
|
+au BufNewFile,BufRead *.json set ft=javascript
|
|
|
+
|
|
|
+au BufRead,BufNewFile *.txt call s:setupWrapping()
|
|
|
+
|
|
|
+" make Python follow PEP8 ( http://www.python.org/dev/peps/pep-0008/ )
|
|
|
+au FileType python set softtabstop=4 tabstop=4 shiftwidth=4 textwidth=79
|
|
|
+
|
|
|
+" allow backspacing over everything in insert mode
|
|
|
+set backspace=indent,eol,start
|
|
|
+
|
|
|
+" load the plugin and indent settings for the detected filetype
|
|
|
+filetype plugin indent on
|
|
|
|
|
|
" Opens an edit command with the path of the currently edited file filled in
|
|
|
" Normal mode: <Leader>e
|
|
@@ -125,82 +99,51 @@ map <Leader>te :tabe <C-R>=expand("%:p:h") . "/" <CR>
|
|
|
" 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>
|
|
|
+" Unimpaired configuration
|
|
|
+" Bubble single lines
|
|
|
+nmap <C-Up> [e
|
|
|
+nmap <C-Down> ]e
|
|
|
+" Bubble multiple lines
|
|
|
+vmap <C-Up> [egv
|
|
|
+vmap <C-Down> ]egv
|
|
|
+
|
|
|
+" Enable syntastic syntax checking
|
|
|
+let g:syntastic_enable_signs=1
|
|
|
+let g:syntastic_quiet_warnings=1
|
|
|
+
|
|
|
+" gist-vim defaults
|
|
|
+if has("mac")
|
|
|
+ let g:gist_clip_command = 'pbcopy'
|
|
|
+elseif has("unix")
|
|
|
+ let g:gist_clip_command = 'xclip -selection clipboard'
|
|
|
+endif
|
|
|
+let g:gist_detect_filetype = 1
|
|
|
+let g:gist_open_browser_after_post = 1
|
|
|
|
|
|
-" For Haml
|
|
|
-au! BufRead,BufNewFile *.haml setfiletype haml
|
|
|
+" Use modeline overrides
|
|
|
+set modeline
|
|
|
+set modelines=10
|
|
|
|
|
|
-" No Help, please
|
|
|
-nmap <F1> <Esc>
|
|
|
+" Default color scheme
|
|
|
+color vividchalk
|
|
|
|
|
|
-" Press ^F from insert mode to insert the current file name
|
|
|
-imap <C-F> <C-R>=expand("%")<CR>
|
|
|
+" Directories for swp files
|
|
|
+set backupdir=~/.vim/backup
|
|
|
+set directory=~/.vim/backup
|
|
|
|
|
|
-" Maps autocomplete to tab
|
|
|
-imap <Tab> <C-N>
|
|
|
+" Turn off jslint errors by default
|
|
|
+let g:JSLintHighlightErrorLine = 0
|
|
|
|
|
|
-imap <C-L> <Space>=><Space>
|
|
|
+" MacVIM shift+arrow-keys behavior (required in .vimrc)
|
|
|
+let macvim_hig_shift_movement = 1
|
|
|
|
|
|
-" Display extra whitespace
|
|
|
-" set list listchars=tab:Èá,trail:á
|
|
|
+" % to bounce from do to end etc.
|
|
|
+runtime! macros/matchit.vim
|
|
|
|
|
|
-" Edit routes
|
|
|
-command! Rroutes :e config/routes.rb
|
|
|
-command! Rschema :e db/schema.rb
|
|
|
+" Show (partial) command in the status line
|
|
|
+set showcmd
|
|
|
|
|
|
-" Local config
|
|
|
-if filereadable(".vimrc.local")
|
|
|
- source .vimrc.local
|
|
|
+" Include user's local vim config
|
|
|
+if filereadable(expand("~/.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>
|