summaryrefslogtreecommitdiff
path: root/.vimrc
diff options
context:
space:
mode:
authorMike Crute <mcrute@gmail.com>2010-12-27 17:41:04 -0500
committerMike Crute <mike@crute.us>2010-12-27 17:41:04 -0500
commit497d5e988bdfe261953fd6085c9f157a934c9143 (patch)
treeabf2a0fe5a7dfe5a87a5c91f5d81dc29777b0ec1 /.vimrc
parent12c99355a06fb8709f0e427e9cb21555178c3255 (diff)
downloaddotfiles-497d5e988bdfe261953fd6085c9f157a934c9143.tar.bz2
dotfiles-497d5e988bdfe261953fd6085c9f157a934c9143.tar.xz
dotfiles-497d5e988bdfe261953fd6085c9f157a934c9143.zip
Cleaning up some loose ends and adding indent-level selection
Diffstat (limited to '.vimrc')
-rw-r--r--.vimrc56
1 files changed, 47 insertions, 9 deletions
diff --git a/.vimrc b/.vimrc
index 84b0162..03efd05 100644
--- a/.vimrc
+++ b/.vimrc
@@ -74,6 +74,11 @@ autocmd BufNewFile,BufRead,BufReadPost *.tmpl
74autocmd BufNewFile,BufRead *.py 74autocmd BufNewFile,BufRead *.py
75 \ setlocal foldmarker=#{,#} 75 \ setlocal foldmarker=#{,#}
76 76
77autocmd Filetype html,xml,xsl
78 \ source ~/.vim/scripts/closetag.vim
79
80autocmd BufNewFile,BufRead *.py
81 \ setlocal omnifunc=pythoncomplete#Complete
77" }}} 82" }}}
78" General Settings {{{ 83" General Settings {{{
79set backspace=indent,eol,start 84set backspace=indent,eol,start
@@ -87,6 +92,7 @@ set nojoinspaces
87set backup 92set backup
88set directory=~/.vim/tmp,~/.tmp,~/tmp,/var/tmp,/tmp 93set directory=~/.vim/tmp,~/.tmp,~/tmp,/var/tmp,/tmp
89set backupdir=~/.vim/tmp,~/.tmp,~/tmp,/var/tmp,/tmp 94set backupdir=~/.vim/tmp,~/.tmp,~/tmp,/var/tmp,/tmp
95set viminfo='100,<50,s10,h,n$HOME/.vim/tmp/viminfo
90"set list 96"set list
91set listchars=tab:>-,eol:$,trail:. 97set listchars=tab:>-,eol:$,trail:.
92"set listchars=tab:▸\ ,eol:¬ 98"set listchars=tab:▸\ ,eol:¬
@@ -159,6 +165,9 @@ let g:explVertical=1
159" Set closing tag style for closetag.vim 165" Set closing tag style for closetag.vim
160let g:closetag_html=1 166let g:closetag_html=1
161 167
168" Do all python highlighting
169let python_highlight_all=1
170
162" Some sane defaults for the explorer 171" Some sane defaults for the explorer
163let g:explHideFiles='^\.,.*\.sw[po]$,.*\.pyc$' 172let g:explHideFiles='^\.,.*\.sw[po]$,.*\.pyc$'
164let g:explDetailedHelp=0 173let g:explDetailedHelp=0
@@ -175,11 +184,43 @@ set foldenable
175set foldcolumn=3 184set foldcolumn=3
176set foldmethod=marker 185set foldmethod=marker
177" }}} 186" }}}
178" Striving for Python Zen {{{ 187" {{{ Select By Indent Level
179let python_highlight_all=1 188onoremap <silent>ai :<C-u>cal IndTxtObj(0)<CR>
189onoremap <silent>ii :<C-u>cal IndTxtObj(1)<CR>
190vnoremap <silent>ai :<C-u>cal IndTxtObj(0)<CR><Esc>gv
191vnoremap <silent>ii :<C-u>cal IndTxtObj(1)<CR><Esc>gv
192
193function! IndTxtObj(inner)
194 let curline = line(".")
195 let lastline = line("$")
196 let i = indent(line(".")) - &shiftwidth * (v:count1 - 1)
197 let i = i < 0 ? 0 : i
198
199 if getline(".") !~ "^\\s*$"
200 let p = line(".") - 1
201 let nextblank = getline(p) =~ "^\\s*$"
180 202
181autocmd FileType python 203 while p > 0 && ((i == 0 && !nextblank) || (i > 0 && ((indent(p) >= i && !(nextblank && a:inner)) || (nextblank && !a:inner))))
182 \ set omnifunc=pythoncomplete#Complete 204 -
205 let p = line(".") - 1
206 let nextblank = getline(p) =~ "^\\s*$"
207 endwhile
208
209 normal! 0V
210 call cursor(curline, 0)
211
212 let p = line(".") + 1
213 let nextblank = getline(p) =~ "^\\s*$"
214
215 while p <= lastline && ((i == 0 && !nextblank) || (i > 0 && ((indent(p) >= i && !(nextblank && a:inner)) || (nextblank && !a:inner))))
216 +
217 let p = line(".") + 1
218 let nextblank = getline(p) =~ "^\\s*$"
219 endwhile
220
221 normal! $
222 endif
223endfunction
183" }}} 224" }}}
184" Line and Column Highlighting {{{ 225" Line and Column Highlighting {{{
185"autocmd BufEnter * call SetColumnHighlighting(1) 226"autocmd BufEnter * call SetColumnHighlighting(1)
@@ -263,10 +304,7 @@ vnoremap <leader>dc :s/\v\C(([a-z]+)([A-Z]))/\2_\l\3/g<CR>
263nnoremap <leader>p :!python %:p<CR> 304nnoremap <leader>p :!python %:p<CR>
264" }}} 305" }}}
265" {{{ Workarounds For Broken Shit 306" {{{ Workarounds For Broken Shit
266" Without this fix you can't write a Mac OS X crontab file 307au BufWrite /private/tmp/crontab.* set nowritebackup
267if $VIM_CRONTAB == "true" 308au BufWrite /private/etc/pw.* set nowritebackup
268 set nobackup
269 set nowritebackup
270endif
271" }}} 309" }}}
272" vim:foldenable:foldmethod=marker: 310" vim:foldenable:foldmethod=marker: