diff options
author | Mike Crute <mcrute@gmail.com> | 2010-12-27 17:41:04 -0500 |
---|---|---|
committer | Mike Crute <mike@crute.us> | 2010-12-27 17:41:04 -0500 |
commit | 497d5e988bdfe261953fd6085c9f157a934c9143 (patch) | |
tree | abf2a0fe5a7dfe5a87a5c91f5d81dc29777b0ec1 /.vimrc | |
parent | 12c99355a06fb8709f0e427e9cb21555178c3255 (diff) | |
download | dotfiles-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-- | .vimrc | 56 |
1 files changed, 47 insertions, 9 deletions
@@ -74,6 +74,11 @@ autocmd BufNewFile,BufRead,BufReadPost *.tmpl | |||
74 | autocmd BufNewFile,BufRead *.py | 74 | autocmd BufNewFile,BufRead *.py |
75 | \ setlocal foldmarker=#{,#} | 75 | \ setlocal foldmarker=#{,#} |
76 | 76 | ||
77 | autocmd Filetype html,xml,xsl | ||
78 | \ source ~/.vim/scripts/closetag.vim | ||
79 | |||
80 | autocmd BufNewFile,BufRead *.py | ||
81 | \ setlocal omnifunc=pythoncomplete#Complete | ||
77 | " }}} | 82 | " }}} |
78 | " General Settings {{{ | 83 | " General Settings {{{ |
79 | set backspace=indent,eol,start | 84 | set backspace=indent,eol,start |
@@ -87,6 +92,7 @@ set nojoinspaces | |||
87 | set backup | 92 | set backup |
88 | set directory=~/.vim/tmp,~/.tmp,~/tmp,/var/tmp,/tmp | 93 | set directory=~/.vim/tmp,~/.tmp,~/tmp,/var/tmp,/tmp |
89 | set backupdir=~/.vim/tmp,~/.tmp,~/tmp,/var/tmp,/tmp | 94 | set backupdir=~/.vim/tmp,~/.tmp,~/tmp,/var/tmp,/tmp |
95 | set viminfo='100,<50,s10,h,n$HOME/.vim/tmp/viminfo | ||
90 | "set list | 96 | "set list |
91 | set listchars=tab:>-,eol:$,trail:. | 97 | set 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 |
160 | let g:closetag_html=1 | 166 | let g:closetag_html=1 |
161 | 167 | ||
168 | " Do all python highlighting | ||
169 | let python_highlight_all=1 | ||
170 | |||
162 | " Some sane defaults for the explorer | 171 | " Some sane defaults for the explorer |
163 | let g:explHideFiles='^\.,.*\.sw[po]$,.*\.pyc$' | 172 | let g:explHideFiles='^\.,.*\.sw[po]$,.*\.pyc$' |
164 | let g:explDetailedHelp=0 | 173 | let g:explDetailedHelp=0 |
@@ -175,11 +184,43 @@ set foldenable | |||
175 | set foldcolumn=3 | 184 | set foldcolumn=3 |
176 | set foldmethod=marker | 185 | set foldmethod=marker |
177 | " }}} | 186 | " }}} |
178 | " Striving for Python Zen {{{ | 187 | " {{{ Select By Indent Level |
179 | let python_highlight_all=1 | 188 | onoremap <silent>ai :<C-u>cal IndTxtObj(0)<CR> |
189 | onoremap <silent>ii :<C-u>cal IndTxtObj(1)<CR> | ||
190 | vnoremap <silent>ai :<C-u>cal IndTxtObj(0)<CR><Esc>gv | ||
191 | vnoremap <silent>ii :<C-u>cal IndTxtObj(1)<CR><Esc>gv | ||
192 | |||
193 | function! 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 | ||
181 | autocmd 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 | ||
223 | endfunction | ||
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> | |||
263 | nnoremap <leader>p :!python %:p<CR> | 304 | nnoremap <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 | 307 | au BufWrite /private/tmp/crontab.* set nowritebackup |
267 | if $VIM_CRONTAB == "true" | 308 | au BufWrite /private/etc/pw.* set nowritebackup |
268 | set nobackup | ||
269 | set nowritebackup | ||
270 | endif | ||
271 | " }}} | 309 | " }}} |
272 | " vim:foldenable:foldmethod=marker: | 310 | " vim:foldenable:foldmethod=marker: |