16 set list listchars=tab:\ \ ,trail:ยท
25 set wildmode=list:longest,list:full
26 set wildignore+=*.o,*.obj,.git,*.rbc,*.class,.svn,vendor/gems/*
31 " Without setting this, ZoomWin restores windows in a way that causes
32 " equalalways behavior to be triggered the next time CommandT is used.
33 " This is likely a bludgeon to solve some other issue, but it works
36 " NERDTree configuration
37 let NERDTreeIgnore=['\.pyc$', '\.rbc$', '\~$']
38 map <Leader>n :NERDTreeToggle<CR>
41 map <Leader>rt :!ctags --extra=+f -R *<CR><CR>
44 " Remember last location in file
46 au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
47 \| exe "normal g'\"" | endif
50 function s:setupWrapping()
56 function s:setupMarkup()
57 call s:setupWrapping()
58 map <buffer> <Leader>p :Hammer<CR>
62 au FileType make set noexpandtab
64 " Thorfile, Rakefile, Vagrantfile and Gemfile are Ruby
65 au BufRead,BufNewFile {Gemfile,Rakefile,Vagrantfile,Thorfile,config.ru} set ft=ruby
67 " md, markdown, and mk are markdown and define buffer-local preview
68 au BufRead,BufNewFile *.{md,markdown,mdown,mkd,mkdn} call s:setupMarkup()
70 " add json syntax highlighting
71 au BufNewFile,BufRead *.json set ft=javascript
73 au BufRead,BufNewFile *.txt call s:setupWrapping()
75 " make Python follow PEP8 ( http://www.python.org/dev/peps/pep-0008/ )
76 au FileType python set softtabstop=4 tabstop=4 shiftwidth=4 textwidth=79
78 " allow backspacing over everything in insert mode
79 set backspace=indent,eol,start
81 " load the plugin and indent settings for the detected filetype
82 filetype plugin indent on
85 " Opens an edit command with the path of the currently edited file filled in
86 " Normal mode: <Leader>e
87 map <Leader>e :e <C-R>=expand("%:p:h") . "/" <CR>
89 " Opens a tab edit command with the path of the currently edited file filled in
90 " Normal mode: <Leader>t
91 map <Leader>te :tabe <C-R>=expand("%:p:h") . "/" <CR>
93 " Inserts the path of the currently edited file into a command
94 " Command mode: Ctrl+P
95 cmap <C-P> <C-R>=expand("%:p:h") . "/" <CR>
97 " Unimpaired configuration
101 " Bubble multiple lines
105 " Enable syntastic syntax checking
106 let g:syntastic_enable_signs=1
107 let g:syntastic_quiet_warnings=1
111 let g:gist_clip_command = 'pbcopy'
113 let g:gist_clip_command = 'xclip -selection clipboard'
115 let g:gist_detect_filetype = 1
116 let g:gist_open_browser_after_post = 1
118 " Use modeline overrides
122 " Default color scheme
126 " Directories for swp files
127 set backupdir=~/.vim/.backup
128 set directory=~/.vim/.backup
130 " Turn off jslint errors by default
131 let g:JSLintHighlightErrorLine = 0
133 " MacVIM shift+arrow-keys behavior (required in .vimrc)
134 let macvim_hig_shift_movement = 1
136 " % to bounce from do to end etc.
137 runtime! macros/matchit.vim
139 " Show (partial) command in the status line
142 " Include user's local vim config
143 if filereadable(expand("~/.vimrc.local"))
144 source ~/.vimrc.local
148 nmap <F8> :TagbarToggle<CR>
149 let g:tagbar_ctags_bin="/usr/local/bin/ctags"
155 call pathogen#infect()
158 set foldmethod=syntax
164 python from powerline.vim import setup as powerline_setup
165 python powerline_setup()
166 python del powerline_setup
168 " Fix CtrlP root folder and add some ignores
169 let g:ctrlp_working_path_mode = 0
170 let g:ctrlp_custom_ignore = '\v[\/](\.(git|hg|svn)|node_modules|DS_Store)$'
171 let g:ctrlp_user_command = ['.git', 'cd %s && git ls-files']
174 autocmd FocusLost * :set number
175 autocmd InsertEnter * :set number
176 autocmd InsertLeave * :set relativenumber
177 autocmd CursorMoved * :set relativenumber
179 function! NumberToggle()
180 if(&relativenumber == 1)
187 nnoremap <C-n> :call NumberToggle()<cr>
189 " Find file and Find stuff to quickfix.
190 command -nargs=1 Qff :cexpr system('find . \| ag <f-args>') | copen
192 function! ToggleCWindow()
193 if exists("g:qwindow")
201 nnoremap <C-h> :call ToggleCWindow()<cr>