# HG changeset patch # User Steve Losh # Date 1296678107 18000 # Node ID 2769ab7796c0b5333de5c5a8b849999204a7f480 # Parent ab9db71ab5ab33a3ff0b9e74d840f33c9a6e3f8b vim: The Great Vimfiles Cleanup of January 2011 diff -r ab9db71ab5ab -r 2769ab7796c0 vim/.vimrc --- a/vim/.vimrc Wed Feb 02 14:07:42 2011 -0500 +++ b/vim/.vimrc Wed Feb 02 15:21:47 2011 -0500 @@ -1,20 +1,22 @@ +" .vimrc +" Author: Steve Losh +" Source: http://bitbucket.org/sjl/dotfiles/src/tip/vim/ +" +" This file changes a lot. I'll try to document pieces of it whenever I have +" a few minutes to kill. + +" Preamble -------------------------------------------------------------------- {{{ + filetype off call pathogen#runtime_append_all_bundles() filetype plugin indent on - set nocompatible -" Security -set modelines=0 +" }}} +" Basic options --------------------------------------------------------------- {{{ -" Tabs/spaces -set tabstop=4 -set shiftwidth=4 -set softtabstop=4 -set expandtab - -" Basic options set encoding=utf-8 +set modelines=0 set scrolloff=3 set autoindent set showmode @@ -32,62 +34,73 @@ set undofile set undoreload=10000 set cpoptions+=J +set list +set listchars=tab:▸\ ,eol:¬ -" Status line +" Save when losing focus +au FocusLost * :wa + +" Tabs, spaces, wrapping {{{ + +set tabstop=4 +set shiftwidth=4 +set softtabstop=4 +set expandtab +set wrap +set textwidth=79 +set formatoptions=qrn1 +set colorcolumn=85 + +" }}} +" Status line {{{ + set statusline=%F%m%r%h%w%=(%{&ff}/%Y)\ (line\ %l\/%L,\ col\ %c) -" Backups +" }}} +" Backups {{{ + set backupdir=~/.vim/tmp/backup// " backups set directory=~/.vim/tmp/swap// " swap files set backup " enable backups -" Leader +" }}} +" Leader {{{ + let mapleader = "," let maplocalleader = "\\" -" Make Y not dumb -nnoremap Y y$ +" }}} +" Color scheme (terminal) {{{ -" Searching +syntax on +set background=dark +colorscheme molokai + +" }}} + +" }}} +" Searching and Movement ------------------------------------------------------ {{{ + nnoremap / /\v vnoremap / /\v + set ignorecase set smartcase set incsearch set showmatch set hlsearch set gdefault + map :noh + runtime macros/matchit.vim nmap % vmap % -" Soft/hard wrapping -set wrap -set textwidth=79 -set formatoptions=qrn1 -set colorcolumn=85 - -" Use the same symbols as TextMate for tabstops and EOLs -set list -set listchars=tab:▸\ ,eol:¬ +nnoremap Y y$ +nnoremap D d$ -" Color scheme (terminal) -syntax on -set background=dark -colorscheme molokai - -" NERD Tree -map :NERDTreeToggle -let NERDTreeIgnore=['.vim$', '\~$', '.*\.pyc$', 'pip-log\.txt$', 'whoosh_index', 'xapian_index', '.*.pid', 'monitor.py', '.*-fixtures-.*.json'] - -" MOVEMENT --------------------------------------- - -" Use the damn jkl; keys -"nnoremap -"nnoremap -"nnoremap -"nnoremap +" Directional Keys {{{ " Why stretch? noremap h ; @@ -109,14 +122,17 @@ noremap l noremap w vl -" Folding ---------------------------------------- +" }}} + +" }}} +" Folding --------------------------------------------------------------------- {{{ set foldlevelstart=0 nnoremap za vnoremap za nnoremap zO zCzO -function! MyFoldText() +function! MyFoldText() " {{{ let line = getline(v:foldstart) let nucolwidth = &fdc + &number * &numberwidth @@ -130,63 +146,86 @@ let line = strpart(line, 0, windowwidth - 2 -len(foldedlinecount)) let fillcharcount = windowwidth - len(line) - len(foldedlinecount) - 4 return line . '…' . repeat(" ",fillcharcount) . foldedlinecount . '…' . ' ' -endfunction +endfunction " }}} set foldtext=MyFoldText() +" }}} +" Destroy infuriating keys ---------------------------------------------------- {{{ + " Fuck you, help key. set fuoptions=maxvert,maxhorz inoremap :set invfullscreena noremap :set invfullscreen -" Fuck you too, manual key +" Fuck you too, manual key. nnoremap K -" Various filetype-specific stuff +" Stop it, hash key. +inoremap # X# + +" }}} +" Various filetype-specific stuff --------------------------------------------- {{{ +" Cram {{{ +au BufNewFile,BufRead *.t set filetype=cram +let cram_fold=1 +autocmd Syntax cram setlocal foldlevel=1 +" }}} +" Clojure {{{ au BufNewFile,BufRead *.clj nmap ee 0;\et - +au FileType clojure call TurnOnClojureFolding() +" }}} +" HTML and HTMLDjango {{{ au BufNewFile,BufRead *.html setlocal filetype=htmldjango au BufNewFile,BufRead *.html setlocal foldmethod=manual au BufNewFile,BufRead *.html nnoremap f Vatzf au BufNewFile,BufRead *.html inoremap kA au BufNewFile,BufRead *.html imap au BufNewFile,BufRead *.html imap . - +au BufNewFile,BufRead *.html nnoremap vitavitoi +" }}} +" LessCSS {{{ au BufNewFile,BufRead *.less setlocal filetype=less au BufNewFile,BufRead *.less setlocal foldmethod=marker au BufNewFile,BufRead *.less setlocal foldmarker={,} au BufNewFile,BufRead *.less setlocal nocursorline au BufNewFile,BufRead *.less nnoremap cc ddko au BufNewFile,BufRead *.less nnoremap S ?{jV/^\s*\}?$k:sort:noh -au BufNewFile,BufRead *.less inoremap { {.}kA - +au BufNewFile,BufRead *.less inoremap { {}.kA +" }}} +" Javascript {{{ au BufNewFile,BufRead *.js setlocal foldmethod=marker au BufNewFile,BufRead *.js setlocal foldmarker={,} - +" }}} +" Confluence {{{ au BufRead,BufNewFile *.confluencewiki setlocal filetype=confluencewiki au BufRead,BufNewFile *.confluencewiki setlocal wrap linebreak nolist - +" }}} +" Fish {{{ au BufNewFile,BufRead *.fish setlocal filetype=fish - +" }}} +" Markdown {{{ au BufNewFile,BufRead *.m*down setlocal filetype=markdown au BufNewFile,BufRead *.m*down nnoremap 1 yypVr= au BufNewFile,BufRead *.m*down nnoremap 2 yypVr- au BufNewFile,BufRead *.m*down nnoremap 3 I### - -au BufNewFile,BufRead *.vim setlocal foldmethod=marker - -au FileType python,man map d :call ShowPyDoc('', 1) -au FileType python,man map D :call ShowPyDoc('', 1) - +" }}} +" Vim {{{ +au FileType vim setlocal foldmethod=marker +" }}} +" Django {{{ au BufNewFile,BufRead urls.py setlocal nowrap au BufNewFile,BufRead settings.py normal! zR au BufNewFile,BufRead dashboard.py normal! zR - +" }}} +" Nginx {{{ au BufRead,BufNewFile /etc/nginx/conf/* set ft=nginx au BufRead,BufNewFile /etc/nginx/sites-available/* set ft=nginx au BufRead,BufNewFile /usr/local/etc/nginx/sites-available/* set ft=nginx +" }}} -autocmd FileType clojure call TurnOnClojureFolding() +" }}} +" Convenience mappings -------------------------------------------------------- {{{ " Clean whitespace map W :%s/\s\+$//:let @/='' @@ -195,7 +234,7 @@ map a :Ack " Yankring -nnoremap y :YRShow +nnoremap :YRShow " Formatting, TextMate-style nnoremap q gqip @@ -203,10 +242,6 @@ " Faster Make nnoremap m :make -" Google's JSLint -au BufNewFile,BufRead *.js set makeprg=gjslint\ % -au BufNewFile,BufRead *.js set errorformat=%-P-----\ FILE\ \ :\ \ %f\ -----,Line\ %l\\,\ E:%n:\ %m,%-Q,%-GFound\ %s,%-GSome\ %s,%-Gfixjsstyle%s,%-Gscript\ can\ %s,%-G - " Easier linewise reselection nnoremap v V`] @@ -215,9 +250,6 @@ " Faster Esc inoremap jk -inoremap kj -inoremap kl -inoremap lk " TextMate-Style Autocomplete inoremap @@ -233,7 +265,7 @@ " Rainbows! nmap R :RainbowParenthesesToggle -" Edit vim stuff. +" Edit vim stuff nnoremap ev sjL:e $MYVIMRC nnoremap es sjL:e ~/.vim/snippets/ @@ -246,49 +278,20 @@ nnoremap _cw :set ft=confluencewiki nnoremap _pd :set ft=python.django -" Python docs -nnoremap P :Pydoc +" }}} +" Plugin Settings ------------------------------------------------------------- {{{ -" HALP -nnoremap _wtfcw :!open 'http://confluence.atlassian.com/renderer/notationhelp.action?section=all' - -" VCS Stuff -let VCSCommandMapPrefix = "h" - -" Disable useless HTML5 junk +" NERD Tree {{{ +map :NERDTreeToggle +let NERDTreeIgnore=['.vim$', '\~$', '.*\.pyc$', 'pip-log\.txt$', 'whoosh_index', 'xapian_index', '.*.pid', 'monitor.py', '.*-fixtures-.*.json'] +" }}} +" HTML5 {{{ let g:event_handler_attributes_complete = 0 let g:rdfa_attributes_complete = 0 let g:microdata_attributes_complete = 0 let g:atia_attributes_complete = 0 - -" Save when losing focus -au FocusLost * :wa - -" Stop it, hash key -inoremap # X# - -" Cram tests -au BufNewFile,BufRead *.t set filetype=cram -let cram_fold=1 -autocmd Syntax cram setlocal foldlevel=1 - -" Show syntax highlighting groups for word under cursor -nmap :call SynStack() -function! SynStack() - if !exists("*synstack") - return - endif - echo map(synstack(line('.'), col('.')), 'synIDattr(v:val, "name")') -endfunc - -" Tags! -let Tlist_Ctags_Cmd = "/usr/local/bin/ctags" -let Tlist_WinWidth = 50 -let Tlist_Show_One_File = 1 -map :TlistToggle -map T :!/usr/local/bin/ctags --exclude='**/ckeditor' -R . $(test -f .venv && echo ~/lib/virtualenvs/`cat .venv`) - -" Rope and Bike. +" }}} +" Rope and Bike {{{ let g:bike_exceptions=1 source $HOME/.vim/sadness/sadness.vim @@ -297,17 +300,55 @@ noremap rr :RopeRename vnoremap rm :RopeExtractMethod noremap roi :RopeOrganizeImports - -" Gundo +" }}} +" Gundo {{{ nnoremap :GundoToggle let g:gundo_debug = 1 let g:gundo_preview_bottom = 1 +" }}} +" VimClojure {{{ +let vimclojure#HighlightBuiltins = 1 +let vimclojure#ParenRainbow = 1 +let vimclojure#WantNailgun = 1 +let vimclojure#NailgunClient = $HOME . "/.vim/bundle/vimclojure/bin/ng" +let vimclojure#SplitPos = "right" +" }}} +" Syntastic {{{ +let g:syntastic_enable_signs=1 +let g:syntastic_disabled_filetypes = ['html', 'python'] +" }}} -" Shortcut for square brackets +" }}} +" Synstack -------------------------------------------------------------------- {{{ + +function! SynStack() " {{{ + if !exists("*synstack") + return + endif + echo map(synstack(line('.'), col('.')), 'synIDattr(v:val, "name")') +endfunc " }}} +nmap :call SynStack() + +" }}} +" Tags! ----------------------------------------------------------------------- {{{ + +let Tlist_Ctags_Cmd = "/usr/local/bin/ctags" +let Tlist_WinWidth = 50 +let Tlist_Show_One_File = 1 + +map :TlistToggle +map T :!/usr/local/bin/ctags --exclude='**/ckeditor' -R . $(test -f .venv && echo ~/lib/virtualenvs/`cat .venv`) + +" }}} +" Text objects ---------------------------------------------------------------- {{{ + +" Shortcut for [] {{{ + onoremap id i[ onoremap ad a[ -" Next () +" }}} +" Next () {{{ vnoremap inb :normal! f(vib onoremap inb :normal! f(vib vnoremap anb :normal! f(vab @@ -316,8 +357,8 @@ onoremap in( :normal! f(vi( vnoremap an( :normal! f(va( onoremap an( :normal! f(va( - -" Next {} +" }}} +" Next {} {{{ vnoremap inB :normal! f{viB onoremap inB :normal! f{viB vnoremap anB :normal! f{vaB @@ -326,8 +367,8 @@ onoremap in{ :normal! f{vi{ vnoremap an{ :normal! f{va{ onoremap an{ :normal! f{va{ - -" Next [] +" }}} +" Next [] {{{ vnoremap ind :normal! f[vi[ onoremap ind :normal! f[vi[ vnoremap and :normal! f[va[ @@ -336,44 +377,38 @@ onoremap in[ :normal! f[vi[ vnoremap an[ :normal! f[va[ onoremap an[ :normal! f[va[ - -" Next <> +" }}} +" Next <> {{{ vnoremap in< :normal! f onoremap in< :normal! f vnoremap an< :normal! f onoremap an< :normal! f - -" Next '' +" }}} +" Next '' {{{ vnoremap in' :normal! f'vi' onoremap in' :normal! f'vi' vnoremap an' :normal! f'va' onoremap an' :normal! f'va' - -" Next "" +" }}} +" Next "" {{{ vnoremap in" :normal! f"vi" onoremap in" :normal! f"vi" vnoremap an" :normal! f"va" onoremap an" :normal! f"va" +" }}} -" Skipreturn +" }}} +" Quickreturn ----------------------------------------------------------------- {{{ + inoremap A inoremap A: -au BufNewFile,BufRead *.html nnoremap vitavitoi -" VimClojure -let vimclojure#HighlightBuiltins = 1 -let vimclojure#ParenRainbow = 1 -let vimclojure#WantNailgun = 1 -let vimclojure#NailgunClient = $HOME . "/.vim/bundle/vimclojure/bin/ng" -let vimclojure#SplitPos = "right" - -" Syntastic -let g:syntastic_enable_signs=1 -let g:syntastic_disabled_filetypes = ['html', 'python'] +" }}} +" Error toggle ---------------------------------------------------------------- {{{ nmap :ErrorsToggle command! ErrorsToggle call ErrorsToggle() -function! ErrorsToggle() +function! ErrorsToggle() " {{{ if exists("w:is_error_window") unlet w:is_error_window exec "q" @@ -382,18 +417,14 @@ lopen let w:is_error_window = 1 endif -endfunction +endfunction " }}} -" Camel Case Motion -map ∑ CamelCaseMotion_w -map ∫ CamelCaseMotion_b -map \e CamelCaseMotion_e -omap i∑ CamelCaseMotion_iw -xmap i∑ CamelCaseMotion_iw +" }}} +" Diff ------------------------------------------------------------------------ {{{ -" Diff let g:HgDiffing = 0 -function! s:HgDiffCurrentFile() + +function! s:HgDiffCurrentFile() " {{{ if g:HgDiffing == 1 if bufwinnr(bufnr('__HGDIFF__')) != -1 exe bufwinnr(bufnr('__HGDIFF__')) . "wincmd w" @@ -434,13 +465,14 @@ let g:HgDiffing = 1 return -endfunction +endfunction " }}} command! HgDiffCurrent call s:HgDiffCurrentFile() - nmap d :HgDiffCurrent -" MacVim +" }}} +" MacVim ---------------------------------------------------------------------- {{{ + if has('gui_running') set guifont=Menlo:h12 @@ -459,9 +491,8 @@ let g:sparkupExecuteMapping = '' highlight SpellBad term=underline gui=undercurl guisp=Orange - - inoremenu &Plugin.QuickCursor.CloseBuffer :w:BufClose - nnoremenu &Plugin.QuickCursor.CloseBuffer :w:BufClose else set nocursorline endif + +" }}} diff -r ab9db71ab5ab -r 2769ab7796c0 vim/after/syntax/css.vim --- a/vim/after/syntax/css.vim Wed Feb 02 14:07:42 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,318 +0,0 @@ -" Language: Colored CSS Color Preview -" Maintainer: Niklas Hofer -" URL: svn://lanpartei.de/vimrc/after/syntax/css.vim -" Last Change: 2008 Feb 12 -" Licence: No Warranties. Do whatever you want with this. But please tell me! -" Version: 0.6 - -function! s:FGforBG(bg) - " takes a 6hex color code and returns a matching color that is visible - let pure = substitute(a:bg,'^#','','') - let r = eval('0x'.pure[0].pure[1]) - let g = eval('0x'.pure[2].pure[3]) - let b = eval('0x'.pure[4].pure[5]) - if r*30 + g*59 + b*11 > 12000 - return '#000000' - else - return '#ffffff' - end -endfunction - -function! s:SetMatcher(clr,pat) - let group = 'cssColor'.substitute(a:clr,'^#','','') - redir => s:currentmatch - silent! exe 'syn list '.group - redir END - if s:currentmatch !~ a:pat.'\/' - exe 'syn match '.group.' /'.a:pat.'\>/ contained' - exe 'syn cluster cssColors add='.group - if has('gui_running') - exe 'hi '.group.' guifg='.s:FGforBG(a:clr) - exe 'hi '.group.' guibg='.a:clr - elseif &t_Co == 256 - exe 'hi '.group.' ctermfg='.s:Rgb2xterm(s:FGforBG(a:clr)) - exe 'hi '.group.' ctermbg='.s:Rgb2xterm(a:clr) - endif - return 1 - else - return 0 - endif -endfunction - -"" the 6 value iterations in the xterm color cube -let s:valuerange = [ 0x00, 0x5F, 0x87, 0xAF, 0xD7, 0xFF ] -" -"" 16 basic colors -let s:basic16 = [ [ 0x00, 0x00, 0x00 ], [ 0xCD, 0x00, 0x00 ], [ 0x00, 0xCD, 0x00 ], [ 0xCD, 0xCD, 0x00 ], [ 0x00, 0x00, 0xEE ], [ 0xCD, 0x00, 0xCD ], [ 0x00, 0xCD, 0xCD ], [ 0xE5, 0xE5, 0xE5 ], [ 0x7F, 0x7F, 0x7F ], [ 0xFF, 0x00, 0x00 ], [ 0x00, 0xFF, 0x00 ], [ 0xFF, 0xFF, 0x00 ], [ 0x5C, 0x5C, 0xFF ], [ 0xFF, 0x00, 0xFF ], [ 0x00, 0xFF, 0xFF ], [ 0xFF, 0xFF, 0xFF ] ] -: -function! s:Xterm2rgb(color) - " 16 basic colors - let r=0 - let g=0 - let b=0 - if a:color<16 - let r = s:basic16[a:color][0] - let g = s:basic16[a:color][1] - let b = s:basic16[a:color][2] - endif - - " color cube color - if a:color>=16 && a:color<=232 - let color=a:color-16 - let r = s:valuerange[(color/36)%6] - let g = s:valuerange[(color/6)%6] - let b = s:valuerange[color%6] - endif - - " gray tone - if a:color>=233 && a:color<=253 - let r=8+(a:color-232)*0x0a - let g=r - let b=r - endif - let rgb=[r,g,b] - return rgb -endfunction - -function! s:pow(x, n) - let x = a:x - for i in range(a:n-1) - let x = x*a:x - return x -endfunction - -let s:colortable=[] -for c in range(0, 254) - let color = s:Xterm2rgb(c) - call add(s:colortable, color) -endfor - -" selects the nearest xterm color for a rgb value like #FF0000 -function! s:Rgb2xterm(color) - let best_match=0 - let smallest_distance = 10000000000 - let r = eval('0x'.a:color[1].a:color[2]) - let g = eval('0x'.a:color[3].a:color[4]) - let b = eval('0x'.a:color[5].a:color[6]) - for c in range(0,254) - let d = s:pow(s:colortable[c][0]-r,2) + s:pow(s:colortable[c][1]-g,2) + s:pow(s:colortable[c][2]-b,2) - if d' ) - let color = '' - if foundcolor != '' - if foundcolor =~ '#\x\{6}$' - let color = foundcolor - elseif foundcolor =~ '#\x\{3}$' - let color = substitute(foundcolor, '\(\x\)\(\x\)\(\x\)', '\1\1\2\2\3\3', '') - else - let color = '' - endif - if color != '' - return s:SetMatcher(color,foundcolor) - else - return 0 - endif - else - return 0 - endif -endfunction - -if has("gui_running") || &t_Co==256 - " HACK modify cssDefinition to add @cssColors to its contains - redir => s:olddef - silent! syn list cssDefinition - redir END - if s:olddef != '' - let s:b = strridx(s:olddef,'matchgroup') - if s:b != -1 - exe 'syn region cssDefinition '.strpart(s:olddef,s:b).',@cssColors' - endif - endif - - " w3c Colors - let i = s:SetNamedColor('#800000', 'maroon') - let i = s:SetNamedColor('#ff0000', 'red') - let i = s:SetNamedColor('#ffA500', 'orange') - let i = s:SetNamedColor('#ffff00', 'yellow') - let i = s:SetNamedColor('#808000', 'olive') - let i = s:SetNamedColor('#800080', 'purple') - let i = s:SetNamedColor('#ff00ff', 'fuchsia') - let i = s:SetNamedColor('#ffffff', 'white') - let i = s:SetNamedColor('#00ff00', 'lime') - let i = s:SetNamedColor('#008000', 'green') - let i = s:SetNamedColor('#000080', 'navy') - let i = s:SetNamedColor('#0000ff', 'blue') - let i = s:SetNamedColor('#00ffff', 'aqua') - let i = s:SetNamedColor('#008080', 'teal') - let i = s:SetNamedColor('#000000', 'black') - let i = s:SetNamedColor('#c0c0c0', 'silver') - let i = s:SetNamedColor('#808080', 'gray') - - " extra colors - let i = s:SetNamedColor('#F0F8FF','AliceBlue') - let i = s:SetNamedColor('#FAEBD7','AntiqueWhite') - let i = s:SetNamedColor('#7FFFD4','Aquamarine') - let i = s:SetNamedColor('#F0FFFF','Azure') - let i = s:SetNamedColor('#F5F5DC','Beige') - let i = s:SetNamedColor('#FFE4C4','Bisque') - let i = s:SetNamedColor('#FFEBCD','BlanchedAlmond') - let i = s:SetNamedColor('#8A2BE2','BlueViolet') - let i = s:SetNamedColor('#A52A2A','Brown') - let i = s:SetNamedColor('#DEB887','BurlyWood') - let i = s:SetNamedColor('#5F9EA0','CadetBlue') - let i = s:SetNamedColor('#7FFF00','Chartreuse') - let i = s:SetNamedColor('#D2691E','Chocolate') - let i = s:SetNamedColor('#FF7F50','Coral') - let i = s:SetNamedColor('#6495ED','CornflowerBlue') - let i = s:SetNamedColor('#FFF8DC','Cornsilk') - let i = s:SetNamedColor('#DC143C','Crimson') - let i = s:SetNamedColor('#00FFFF','Cyan') - let i = s:SetNamedColor('#00008B','DarkBlue') - let i = s:SetNamedColor('#008B8B','DarkCyan') - let i = s:SetNamedColor('#B8860B','DarkGoldenRod') - let i = s:SetNamedColor('#A9A9A9','DarkGray') - let i = s:SetNamedColor('#A9A9A9','DarkGrey') - let i = s:SetNamedColor('#006400','DarkGreen') - let i = s:SetNamedColor('#BDB76B','DarkKhaki') - let i = s:SetNamedColor('#8B008B','DarkMagenta') - let i = s:SetNamedColor('#556B2F','DarkOliveGreen') - let i = s:SetNamedColor('#FF8C00','Darkorange') - let i = s:SetNamedColor('#9932CC','DarkOrchid') - let i = s:SetNamedColor('#8B0000','DarkRed') - let i = s:SetNamedColor('#E9967A','DarkSalmon') - let i = s:SetNamedColor('#8FBC8F','DarkSeaGreen') - let i = s:SetNamedColor('#483D8B','DarkSlateBlue') - let i = s:SetNamedColor('#2F4F4F','DarkSlateGray') - let i = s:SetNamedColor('#2F4F4F','DarkSlateGrey') - let i = s:SetNamedColor('#00CED1','DarkTurquoise') - let i = s:SetNamedColor('#9400D3','DarkViolet') - let i = s:SetNamedColor('#FF1493','DeepPink') - let i = s:SetNamedColor('#00BFFF','DeepSkyBlue') - let i = s:SetNamedColor('#696969','DimGray') - let i = s:SetNamedColor('#696969','DimGrey') - let i = s:SetNamedColor('#1E90FF','DodgerBlue') - let i = s:SetNamedColor('#B22222','FireBrick') - let i = s:SetNamedColor('#FFFAF0','FloralWhite') - let i = s:SetNamedColor('#228B22','ForestGreen') - let i = s:SetNamedColor('#DCDCDC','Gainsboro') - let i = s:SetNamedColor('#F8F8FF','GhostWhite') - let i = s:SetNamedColor('#FFD700','Gold') - let i = s:SetNamedColor('#DAA520','GoldenRod') - let i = s:SetNamedColor('#808080','Grey') - let i = s:SetNamedColor('#ADFF2F','GreenYellow') - let i = s:SetNamedColor('#F0FFF0','HoneyDew') - let i = s:SetNamedColor('#FF69B4','HotPink') - let i = s:SetNamedColor('#CD5C5C','IndianRed') - let i = s:SetNamedColor('#4B0082','Indigo') - let i = s:SetNamedColor('#FFFFF0','Ivory') - let i = s:SetNamedColor('#F0E68C','Khaki') - let i = s:SetNamedColor('#E6E6FA','Lavender') - let i = s:SetNamedColor('#FFF0F5','LavenderBlush') - let i = s:SetNamedColor('#7CFC00','LawnGreen') - let i = s:SetNamedColor('#FFFACD','LemonChiffon') - let i = s:SetNamedColor('#ADD8E6','LightBlue') - let i = s:SetNamedColor('#F08080','LightCoral') - let i = s:SetNamedColor('#E0FFFF','LightCyan') - let i = s:SetNamedColor('#FAFAD2','LightGoldenRodYellow') - let i = s:SetNamedColor('#D3D3D3','LightGray') - let i = s:SetNamedColor('#D3D3D3','LightGrey') - let i = s:SetNamedColor('#90EE90','LightGreen') - let i = s:SetNamedColor('#FFB6C1','LightPink') - let i = s:SetNamedColor('#FFA07A','LightSalmon') - let i = s:SetNamedColor('#20B2AA','LightSeaGreen') - let i = s:SetNamedColor('#87CEFA','LightSkyBlue') - let i = s:SetNamedColor('#778899','LightSlateGray') - let i = s:SetNamedColor('#778899','LightSlateGrey') - let i = s:SetNamedColor('#B0C4DE','LightSteelBlue') - let i = s:SetNamedColor('#FFFFE0','LightYellow') - let i = s:SetNamedColor('#32CD32','LimeGreen') - let i = s:SetNamedColor('#FAF0E6','Linen') - let i = s:SetNamedColor('#FF00FF','Magenta') - let i = s:SetNamedColor('#66CDAA','MediumAquaMarine') - let i = s:SetNamedColor('#0000CD','MediumBlue') - let i = s:SetNamedColor('#BA55D3','MediumOrchid') - let i = s:SetNamedColor('#9370D8','MediumPurple') - let i = s:SetNamedColor('#3CB371','MediumSeaGreen') - let i = s:SetNamedColor('#7B68EE','MediumSlateBlue') - let i = s:SetNamedColor('#00FA9A','MediumSpringGreen') - let i = s:SetNamedColor('#48D1CC','MediumTurquoise') - let i = s:SetNamedColor('#C71585','MediumVioletRed') - let i = s:SetNamedColor('#191970','MidnightBlue') - let i = s:SetNamedColor('#F5FFFA','MintCream') - let i = s:SetNamedColor('#FFE4E1','MistyRose') - let i = s:SetNamedColor('#FFE4B5','Moccasin') - let i = s:SetNamedColor('#FFDEAD','NavajoWhite') - let i = s:SetNamedColor('#FDF5E6','OldLace') - let i = s:SetNamedColor('#6B8E23','OliveDrab') - let i = s:SetNamedColor('#FF4500','OrangeRed') - let i = s:SetNamedColor('#DA70D6','Orchid') - let i = s:SetNamedColor('#EEE8AA','PaleGoldenRod') - let i = s:SetNamedColor('#98FB98','PaleGreen') - let i = s:SetNamedColor('#AFEEEE','PaleTurquoise') - let i = s:SetNamedColor('#D87093','PaleVioletRed') - let i = s:SetNamedColor('#FFEFD5','PapayaWhip') - let i = s:SetNamedColor('#FFDAB9','PeachPuff') - let i = s:SetNamedColor('#CD853F','Peru') - let i = s:SetNamedColor('#FFC0CB','Pink') - let i = s:SetNamedColor('#DDA0DD','Plum') - let i = s:SetNamedColor('#B0E0E6','PowderBlue') - let i = s:SetNamedColor('#BC8F8F','RosyBrown') - let i = s:SetNamedColor('#4169E1','RoyalBlue') - let i = s:SetNamedColor('#8B4513','SaddleBrown') - let i = s:SetNamedColor('#FA8072','Salmon') - let i = s:SetNamedColor('#F4A460','SandyBrown') - let i = s:SetNamedColor('#2E8B57','SeaGreen') - let i = s:SetNamedColor('#FFF5EE','SeaShell') - let i = s:SetNamedColor('#A0522D','Sienna') - let i = s:SetNamedColor('#87CEEB','SkyBlue') - let i = s:SetNamedColor('#6A5ACD','SlateBlue') - let i = s:SetNamedColor('#708090','SlateGray') - let i = s:SetNamedColor('#708090','SlateGrey') - let i = s:SetNamedColor('#FFFAFA','Snow') - let i = s:SetNamedColor('#00FF7F','SpringGreen') - let i = s:SetNamedColor('#4682B4','SteelBlue') - let i = s:SetNamedColor('#D2B48C','Tan') - let i = s:SetNamedColor('#D8BFD8','Thistle') - let i = s:SetNamedColor('#FF6347','Tomato') - let i = s:SetNamedColor('#40E0D0','Turquoise') - let i = s:SetNamedColor('#EE82EE','Violet') - let i = s:SetNamedColor('#F5DEB3','Wheat') - let i = s:SetNamedColor('#F5F5F5','WhiteSmoke') - let i = s:SetNamedColor('#9ACD32','YellowGreen') - - - - let i = 1 - while i <= line("$") - call s:PreviewCSSColorInLine(i) - let i = i+1 - endwhile - unlet i - - autocmd CursorHold * silent call s:PreviewCSSColorInLine('.') - autocmd CursorHoldI * silent call s:PreviewCSSColorInLine('.') - set ut=100 -endif " has("gui_running") diff -r ab9db71ab5ab -r 2769ab7796c0 vim/after/syntax/less.vim --- a/vim/after/syntax/less.vim Wed Feb 02 14:07:42 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -/Users/sjl/lib/dotfiles/vim/after/syntax/css.vim \ No newline at end of file diff -r ab9db71ab5ab -r 2769ab7796c0 vim/bundle/camelcasemotion/autoload/camelcasemotion.vim --- a/vim/bundle/camelcasemotion/autoload/camelcasemotion.vim Wed Feb 02 14:07:42 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,173 +0,0 @@ -" camelcasemotion.vim: Motion through CamelCaseWords and underscore_notation. -" -" DEPENDENCIES: -" - Requires Vim 7.0 or higher. -" -" Copyright: (C) 2007-2009 by Ingo Karkat -" The VIM LICENSE applies to this script; see ':help copyright'. -" -" Maintainer: Ingo Karkat -" REVISION DATE REMARKS -" 1.50.001 05-May-2009 Do not create mappings for select mode; -" according to|Select-mode|, printable character -" commands should delete the selection and insert -" the typed characters. -" Moved functions from plugin to separate autoload -" script. -" file creation - -"- functions ------------------------------------------------------------------" -function! s:Move( direction, count, mode ) - " Note: There is no inversion of the regular expression character class - " 'keyword character' (\k). We need an inversion "non-keyword" defined as - " "any non-whitespace character that is not a keyword character" (e.g. - " [!@#$%^&*()]). This can be specified via a non-whitespace character in - " whose place no keyword character matches (\k\@!\S). - - "echo "count is " . a:count - let l:i = 0 - while l:i < a:count - if a:direction == 'e' - " "Forward to end" motion. - "call search( '\>\|\(\a\|\d\)\+\ze_', 'We' ) - " end of ... - " number | ACRONYM followed by CamelCase or number | CamelCase | underscore_notation | non-keyword | word - call search( '\d\+\|\u\+\ze\%(\u\l\|\d\)\|\u\l\+\|\%(\a\|\d\)\+\ze_\|\%(\k\@!\S\)\+\|\%(_\@!\k\)\+\>', 'We' ) - " Note: word must be defined as '\k\>'; '\>' on its own somehow - " dominates over the previous branch. Plus, \k must exclude the - " underscore, or a trailing one will be incorrectly moved over: - " '\%(_\@!\k\)'. - if a:mode == 'o' - " Note: Special additional treatment for operator-pending mode - " "forward to end" motion. - " The difference between normal mode, operator-pending and visual - " mode is that in the latter two, the motion must go _past_ the - " final "word" character, so that all characters of the "word" are - " selected. This is done by appending a 'l' motion after the - " search for the next "word". - " - " In operator-pending mode, the 'l' motion only works properly - " at the end of the line (i.e. when the moved-over "word" is at - " the end of the line) when the 'l' motion is allowed to move - " over to the next line. Thus, the 'l' motion is added - " temporarily to the global 'whichwrap' setting. - " Without this, the motion would leave out the last character in - " the line. I've also experimented with temporarily setting - " "set virtualedit=onemore" , but that didn't work. - let l:save_ww = &whichwrap - set whichwrap+=l - normal! l - let &whichwrap = l:save_ww - endif - else - " Forward (a:direction == '') and backward (a:direction == 'b') - " motion. - - let l:direction = (a:direction == 'w' ? '' : a:direction) - - " CamelCase: Jump to beginning of either (start of word, Word, WORD, - " 123). - " Underscore_notation: Jump to the beginning of an underscore-separated - " word or number. - "call search( '\<\|\u', 'W' . l:direction ) - "call search( '\<\|\u\(\l\+\|\u\+\ze\u\)\|\d\+', 'W' . l:direction ) - "call search( '\<\|\u\(\l\+\|\u\+\ze\u\)\|\d\+\|_\zs\(\a\|\d\)\+', 'W' . l:direction ) - " beginning of ... - " word | empty line | non-keyword after whitespaces | non-whitespace after word | number | ACRONYM followed by CamelCase or number | CamelCase | underscore followed by ACRONYM, Camel, lowercase or number - call search( '\<\D\|^$\|\%(^\|\s\)\+\zs\k\@!\S\|\>\S\|\d\+\|\u\+\ze\%(\u\l\|\d\)\|\u\l\+\|_\zs\%(\u\+\|\u\l\+\|\l\+\|\d\+\)', 'W' . l:direction ) - " Note: word must be defined as '\<\D' to avoid that a word like - " 1234Test is moved over as [1][2]34[T]est instead of [1]234[T]est - " because \< matches with zero width, and \d\+ will then start - " matching '234'. To fix that, we make \d\+ be solely responsible - " for numbers by taken this away from \< via \<\D. (An alternative - " would be to replace \d\+ with \D\%#\zs\d\+, but that one is more - " complex.) All other branches are not affected, because they match - " multiple characters and not the same character multiple times. - endif - let l:i = l:i + 1 - endwhile -endfunction - -function! camelcasemotion#Motion( direction, count, mode ) -"******************************************************************************* -"* PURPOSE: -" Perform the motion over CamelCaseWords or underscore_notation. -"* ASSUMPTIONS / PRECONDITIONS: -" none -"* EFFECTS / POSTCONDITIONS: -" Move cursor / change selection. -"* INPUTS: -" a:direction one of 'w', 'b', 'e' -" a:count number of "words" to move over -" a:mode one of 'n', 'o', 'v', 'iv' (latter one is a special visual mode -" when inside the inner "word" text objects. -"* RETURN VALUES: -" none -"******************************************************************************* - " Visual mode needs special preparations and postprocessing; - " normal and operator-pending mode breeze through to s:Move(). - - if a:mode == 'v' - " Visual mode was left when calling this function. Reselecting the current - " selection returns to visual mode and allows to call search() and issue - " normal mode motions while staying in visual mode. - normal! gv - endif - if a:mode == 'v' || a:mode == 'iv' - - " Note_1a: - if &selection != 'exclusive' && a:direction == 'w' - normal! l - endif - endif - - call s:Move( a:direction, a:count, a:mode ) - - if a:mode == 'v' || a:mode == 'iv' - " Note: 'selection' setting. - if &selection == 'exclusive' && a:direction == 'e' - " When set to 'exclusive', the "forward to end" motion (',e') does not - " include the last character of the moved-over "word". To include that, an - " additional 'l' motion is appended to the motion; similar to the - " special treatment in operator-pending mode. - normal! l - elseif &selection != 'exclusive' && a:direction != 'e' - " Note_1b: - " The forward and backward motions move to the beginning of the next "word". - " When 'selection' is set to 'inclusive' or 'old', this is one character too far. - " The appended 'h' motion undoes this. Because of this backward step, - " though, the forward motion finds the current "word" again, and would - " be stuck on the current "word". An 'l' motion before the CamelCase - " motion (see Note_1a) fixes that. - normal! h - endif - endif -endfunction - -function! camelcasemotion#InnerMotion( direction, count ) - " If the cursor is positioned on the first character of a CamelWord, the - " backward motion would move to the previous word, which would result in a - " wrong selection. To fix this, first move the cursor to the right, so that - " the backward motion definitely will cover the current "word" under the - " cursor. - normal! l - - " Move "word" backwards, enter visual mode, then move "word" forward. This - " selects the inner "word" in visual mode; the operator-pending mode takes - " this selection as the area covered by the motion. - if a:direction == 'b' - " Do not do the selection backwards, because the backwards "word" motion - " in visual mode + selection=inclusive has an off-by-one error. - call camelcasemotion#Motion( 'b', a:count, 'n' ) - normal! v - " We decree that 'b' is the opposite of 'e', not 'w'. This makes more - " sense at the end of a line and for underscore_notation. - call camelcasemotion#Motion( 'e', a:count, 'iv' ) - else - call camelcasemotion#Motion( 'b', 1, 'n' ) - normal! v - call camelcasemotion#Motion( a:direction, a:count, 'iv' ) - endif -endfunction - -" vim: set sts=4 sw=4 noexpandtab ff=unix fdm=syntax : \ No newline at end of file diff -r ab9db71ab5ab -r 2769ab7796c0 vim/bundle/camelcasemotion/doc/camelcasemotion.txt --- a/vim/bundle/camelcasemotion/doc/camelcasemotion.txt Wed Feb 02 14:07:42 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,183 +0,0 @@ -*camelcasemotion.txt* Motion through CamelCaseWords and underscore_notation. - - CAMEL CASE MOTION by Ingo Karkat - *camelcasemotion.vim* -description |camelcasemotion-description| -usage |camelcasemotion-usage| -installation |camelcasemotion-installation| -configuration |camelcasemotion-configuration| -known problems |camelcasemotion-known-problems| -todo |camelcasemotion-todo| -history |camelcasemotion-history| - -============================================================================== -DESCRIPTION *camelcasemotion-description* - -Vim provides many built-in motions, e.g. to move to the next word, or end of -the current word. Most programming languages use either CamelCase -("anIdentifier") or underscore_notation ("an_identifier") naming conventions -for identifiers. The best way to navigate inside those identifiers using Vim -built-in motions is the [count]f{char} motion, i.e. f{uppercase-char} or f_, -respectively. But we can make this easier: - -This script defines motions|,w|,|,b| and|,e|(similar to |w|,|b|,|e|), which do -not move word-wise (forward/backward), but Camel-wise; i.e. to word boundaries -and uppercase letters. The motions also work on underscore notation, where -words are delimited by underscore ('_') characters. From here on, both -CamelCase and underscore_notation entities are referred to as "words" (in -double quotes). Just like with the regular motions, a [count] can be prepended -to move over multiple "words" at once. Outside of "words" (e.g. in non-keyword -characters like // or ;), the new motions move just like the regular motions. - -Vim provides a built-in|iw|text object called 'inner word', which works in -operator-pending and visual mode. Analog to that, this script defines inner -"word" motions |i,w|,|i,b| and|i,e|, which select the "word" (or multiple -"words" if a [count] is given) where the cursor is located. - -============================================================================== -USAGE *camelcasemotion-usage* - *,w* *,b* *,e* -Use the new motions|,w|,|,b| and|,e| in normal mode, operator-pending mode -(cp.|operator|), and visual mode. For example, type 'bc,w' to change 'Camel' -in 'CamelCase' to something else. - - -EXAMPLE: motions -Given the following CamelCase identifiers in a source code fragment: - set Script31337PathAndNameWithoutExtension11=%~dpn0 ~ - set Script31337PathANDNameWITHOUTExtension11=%~dpn0 ~ -and the corresponding identifiers in underscore_notation: - set script_31337_path_and_name_without_extension_11=%~dpn0 ~ - set SCRIPT_31337_PATH_AND_NAME_WITHOUT_EXTENSION_11=%~dpn0 ~ - -,w moves to ([x] is cursor position): [s]et, [s]cript, [3]1337, [p]ath, - [a]nd, [n]ame, [w]ithout, [e]xtension, [1]1, [d]pn0, dpn[0], [s]et -,b moves to: [d]pn0, [1]1, [e]xtension, [w]ithout, ... -,e moves to: se[t], scrip[t], 3133[7], pat[h], an[d], nam[e], withou[t], - extensio[n], 1[1], dpn[0] - - -EXAMPLE: inner motions -Given the following identifier, with the cursor positioned at [x]: - script_31337_path_and_na[m]e_without_extension_11 ~ - -v3i,w selects script_31337_path_and_[name_without_extension_]11 -v3i,b selects script_31337_[path_and_name]_without_extension_11 -v3i,e selects script_31337_path_and_[name_without_extension]_11 -Instead of visual mode, you can also use c3i,w to change, d3i,w to delete, -gU3i,w to upper-case, and so on. - -============================================================================== -INSTALLATION *camelcasemotion-installation* - -This script is packaged as a|vimball|. If you have the "gunzip" decompressor -in your PATH, simply edit the *.vba.gz package in Vim; otherwise, decompress -the archive first, e.g. using WinZip. Inside Vim, install by sourcing the -vimball or via the|:UseVimball|command. > - vim camelcasemotion.vba.gz - :so % -To uninstall, use the|:RmVimball|command. - -DEPENDENCIES *camelcasemotion-dependencies* - -- Requires Vim 7.0 or higher. - -============================================================================== -CONFIGURATION *camelcasemotion-configuration* - -If you want to use different mappings, map your keys to the -CamelCaseMotion_? mapping targets _before_ sourcing this script (e.g. in -your|vimrc|). - -EXAMPLE: Replace the default|w|,|b| and|e| mappings instead of defining -additional mappings|,w|,|,b| and|,e|: > - map w CamelCaseMotion_w - map b CamelCaseMotion_b - map e CamelCaseMotion_e - sunmap w - sunmap b - sunmap e - -EXAMPLE: Replace default|iw|text-object and define|ib|and |ie|motions: > - omap iw CamelCaseMotion_iw - xmap iw CamelCaseMotion_iw - omap ib CamelCaseMotion_ib - xmap ib CamelCaseMotion_ib - omap ie CamelCaseMotion_ie - xmap ie CamelCaseMotion_ie - -============================================================================== -KNOWN PROBLEMS *camelcasemotion-known-problems* - -- A degenerate CamelCaseWord containing '\U\u\d' (e.g. "MaP1Roblem") confuses - the operator-pending and visual mode ,e mapping if 'selection' is not set to - "exclusive". It'll skip "P" and select "P1" in one step. As a workaround, - use ',w' instead of ',e'; those two mappings have the same effect inside - CamelCaseWords, anyway. -- The operator-pending and visual mode ,e mapping doesn't work properly when - it reaches the end of the buffer; the final character of the moved-over - "word" remains. As a workaround, use the default 'e' motion instead of ',e'. -- When the Vim setting 'selection' is not set to "exclusive", a - forward-backward combination in visual mode (e.g. 'v,w,b') selects one - additional character to the left, instead of only the character where the - motion started. Likewise, extension of the visual selection from the front - end is off by one additional character. - -============================================================================== -TODO *camelcasemotion-todo* - -============================================================================== -HISTORY *camelcasemotion-history* - -1.50 05-May-2009 -- Do not create mappings for select mode; according to|Select-mode|, printable - character commands should delete the selection and insert the typed - characters. Now using :xmap to only target visual mode. -- Moved functions from plugin to separate autoload script. -- Split off documentation into separate help file. - -1.40 30-Jun-2008 -BF: Now using :normal! to be independent from any user mappings. Thanks to -Neil Walker for the patch. - -1.40 19-May-2008 -BF: Wrong forward motion stop at the second digit if a word starts with -multiple numbers (e.g. 1234.56789). Thanks to Wasim Ahmed for reporting this. - -1.40 24-Apr-2008 -ENH: Added inner "word" text objects 'i,w' etc. that work analoguous to the -built-in |iw| text object. Thanks to David Kotchan for this suggestion. - -1.30 20-Apr-2008 -The motions now also stop at non-keyword boundaries, just like the regular -motions. This has no effect inside a CamelCaseWord or inside -underscore_notation, but it makes the motions behave like the regular motions -(which is important if you replace the default motions). Thanks to Mun Johl -for reporting this. - -1.30 09-Apr-2008 -- Allowing users to use mappings different than ,w ,b ,e by defining - CamelCaseMotion_? target mappings. This can even be used to replace - the default 'w', 'b' and 'e' mappings, as suggested by Mun Johl. -- Now requires VIM 7.0 or higher. - -1.20 29-May-2007 -ENH: The visual mode motions now also (mostly) work with the (default) setting -'set selection=inclusive', instead of selecting one character too much. - -1.10 28-May-2007 -Incorporated major improvements and simplifications done by Joseph Barker. - -1.00 22-May-2007 -First published version. - -0.01 11-Oct-2005 -Started development based on vimtip #1016 by Anthony Van Ham. - -============================================================================== -Copyright: (C) 2007-2009 by Ingo Karkat -The VIM LICENSE applies to this script; see|copyright|. - -Maintainer: Ingo Karkat -============================================================================== - vim:tw=78:ts=8:ft=help:norl: \ No newline at end of file diff -r ab9db71ab5ab -r 2769ab7796c0 vim/bundle/camelcasemotion/plugin/camelcasemotion.vim --- a/vim/bundle/camelcasemotion/plugin/camelcasemotion.vim Wed Feb 02 14:07:42 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,204 +0,0 @@ -" camelcasemotion.vim: Motion through CamelCaseWords and underscore_notation. -" -" DEPENDENCIES: -" - Requires Vim 7.0 or higher. -" -" Copyright: (C) 2007-2009 by Ingo Karkat -" The VIM LICENSE applies to this script; see ':help copyright'. -" -" Source: Based on vimtip #1016 by Anthony Van Ham. -" Maintainer: Ingo Karkat -" REVISION DATE REMARKS -" 1.50.019 05-May-2009 Do not create mappings for select mode; -" according to|Select-mode|, printable character -" commands should delete the selection and insert -" the typed characters. -" Moved functions from plugin to separate autoload -" script. -" Split off documentation into separate help file. -" Now cleaning up Create...Mappings functions. -" 1.40.018 30-Jun-2008 Minor: Removed unnecessary