mirror of https://github.com/akelge/zsh
Moved statusline def into a separate file
Added guitablabel def Updated VCS plugin Added keymap for choosing tabs (Cmd-1, Cmd-2, ...)
This commit is contained in:
parent
5dbae34bce
commit
36e50ec66d
|
@ -0,0 +1,601 @@
|
||||||
|
" Vim color file --- psc (peak sea color) "Lite version"
|
||||||
|
" Maintainer: Pan, Shi Zhu <Go to the following URL for my email>
|
||||||
|
" URL: http://vim.sourceforge.net/scripts/script.php?script_id=760
|
||||||
|
" Last Change: 5 Feb 2010
|
||||||
|
" Version: 3.4
|
||||||
|
"
|
||||||
|
" Comments and e-mails are welcomed, thanks.
|
||||||
|
"
|
||||||
|
" The peaksea color is simply a colorscheme with the default settings of
|
||||||
|
" the original ps_color. Lite version means there's no custom settings
|
||||||
|
" and fancy features such as integration with reloaded.vim
|
||||||
|
"
|
||||||
|
" The full version of ps_color.vim will be maintained until Vim 8.
|
||||||
|
" By then there will be only the lite version: peaksea.vim
|
||||||
|
"
|
||||||
|
" Note: Please set the background option in your .vimrc and/or .gvimrc
|
||||||
|
"
|
||||||
|
" It is much better *not* to set 'background' option inside
|
||||||
|
" a colorscheme file. because ":set background" improperly
|
||||||
|
" may cause colorscheme be sourced twice
|
||||||
|
"
|
||||||
|
" Color Scheme Overview:
|
||||||
|
" :ru syntax/hitest.vim
|
||||||
|
"
|
||||||
|
" Relevant Help:
|
||||||
|
" :h highlight-groups
|
||||||
|
" :h psc-cterm-color-table
|
||||||
|
"
|
||||||
|
" Colors Order:
|
||||||
|
" #rrggbb
|
||||||
|
"
|
||||||
|
|
||||||
|
hi clear
|
||||||
|
|
||||||
|
if exists("syntax_on")
|
||||||
|
syntax reset
|
||||||
|
endif
|
||||||
|
|
||||||
|
let g:colors_name = expand("<sfile>:t:r")
|
||||||
|
|
||||||
|
" I don't want to abuse folding, but here folding is used to avoid confusion.
|
||||||
|
if &background=='light'
|
||||||
|
" for background=light {{{2
|
||||||
|
" LIGHT COLOR DEFINE START
|
||||||
|
|
||||||
|
hi Normal guifg=#000000 guibg=#e0e0e0 gui=NONE
|
||||||
|
hi Search guifg=NONE guibg=#f8f8f8 gui=NONE
|
||||||
|
hi Visual guifg=NONE guibg=#a6caf0 gui=NONE
|
||||||
|
hi Cursor guifg=#f0f0f0 guibg=#008000 gui=NONE
|
||||||
|
" The idea of CursorIM is pretty good, however, the feature is still buggy
|
||||||
|
" in the current version (Vim 7.0).
|
||||||
|
" The following line will be kept commented until the bug fixed.
|
||||||
|
"
|
||||||
|
" hi CursorIM guifg=#f0f0f0 guibg=#800080
|
||||||
|
hi Special guifg=#907000 guibg=NONE gui=NONE
|
||||||
|
hi Comment guifg=#606000 guibg=NONE gui=NONE
|
||||||
|
hi Number guifg=#907000 guibg=NONE gui=NONE
|
||||||
|
hi Constant guifg=#007068 guibg=NONE gui=NONE
|
||||||
|
hi StatusLine guifg=fg guibg=#a6caf0 gui=NONE
|
||||||
|
hi LineNr guifg=#686868 guibg=NONE gui=NONE
|
||||||
|
hi Question guifg=fg guibg=#d0d090 gui=NONE
|
||||||
|
hi PreProc guifg=#009030 guibg=NONE gui=NONE
|
||||||
|
hi Statement guifg=#2060a8 guibg=NONE gui=NONE
|
||||||
|
hi Type guifg=#0850a0 guibg=NONE gui=NONE
|
||||||
|
hi Todo guifg=#800000 guibg=#e0e090 gui=NONE
|
||||||
|
" NOTE THIS IS IN THE WARM SECTION
|
||||||
|
hi Error guifg=#c03000 guibg=NONE gui=NONE
|
||||||
|
hi Identifier guifg=#a030a0 guibg=NONE gui=NONE
|
||||||
|
hi ModeMsg guifg=fg guibg=#b0b0e0 gui=NONE
|
||||||
|
hi VisualNOS guifg=fg guibg=#b0b0e0 gui=NONE
|
||||||
|
hi SpecialKey guifg=#1050a0 guibg=NONE gui=NONE
|
||||||
|
hi NonText guifg=#002090 guibg=#d0d0d0 gui=NONE
|
||||||
|
hi Directory guifg=#a030a0 guibg=NONE gui=NONE
|
||||||
|
hi ErrorMsg guifg=fg guibg=#f0b090 gui=NONE
|
||||||
|
hi MoreMsg guifg=#489000 guibg=NONE gui=NONE
|
||||||
|
hi Title guifg=#a030a0 guibg=NONE gui=NONE
|
||||||
|
hi WarningMsg guifg=#b02000 guibg=NONE gui=NONE
|
||||||
|
hi WildMenu guifg=fg guibg=#d0d090 gui=NONE
|
||||||
|
hi Folded guifg=NONE guibg=#b0e0b0 gui=NONE
|
||||||
|
hi FoldColumn guifg=fg guibg=#90e090 gui=NONE
|
||||||
|
hi DiffAdd guifg=NONE guibg=#b0b0e0 gui=NONE
|
||||||
|
hi DiffChange guifg=NONE guibg=#e0b0e0 gui=NONE
|
||||||
|
hi DiffDelete guifg=#002090 guibg=#d0d0d0 gui=NONE
|
||||||
|
hi DiffText guifg=NONE guibg=#c0e080 gui=NONE
|
||||||
|
hi SignColumn guifg=fg guibg=#90e090 gui=NONE
|
||||||
|
|
||||||
|
hi IncSearch guifg=#f0f0f0 guibg=#806060 gui=NONE
|
||||||
|
hi StatusLineNC guifg=fg guibg=#c0c0c0 gui=NONE
|
||||||
|
hi VertSplit guifg=fg guibg=#c0c0c0 gui=NONE
|
||||||
|
hi Underlined guifg=#6a5acd guibg=NONE gui=underline
|
||||||
|
hi Ignore guifg=bg guibg=NONE
|
||||||
|
" NOTE THIS IS IN THE WARM SECTION
|
||||||
|
if v:version >= 700
|
||||||
|
if has('spell')
|
||||||
|
hi SpellBad guifg=NONE guibg=NONE guisp=#c03000
|
||||||
|
hi SpellCap guifg=NONE guibg=NONE guisp=#2060a8
|
||||||
|
hi SpellRare guifg=NONE guibg=NONE guisp=#a030a0
|
||||||
|
hi SpellLocal guifg=NONE guibg=NONE guisp=#007068
|
||||||
|
endif
|
||||||
|
hi Pmenu guifg=fg guibg=#e0b0e0
|
||||||
|
hi PmenuSel guifg=#f0f0f0 guibg=#806060 gui=NONE
|
||||||
|
hi PmenuSbar guifg=fg guibg=#c0c0c0 gui=NONE
|
||||||
|
hi PmenuThumb guifg=fg guibg=#c0e080 gui=NONE
|
||||||
|
hi TabLine guifg=fg guibg=#c0c0c0 gui=NONE
|
||||||
|
hi TabLineFill guifg=fg guibg=#c0c0c0 gui=NONE
|
||||||
|
hi TabLineSel guifg=fg guibg=NONE gui=NONE
|
||||||
|
hi CursorColumn guifg=NONE guibg=#f0b090
|
||||||
|
hi CursorLine guifg=NONE guibg=NONE gui=underline
|
||||||
|
hi MatchParen guifg=NONE guibg=#c0e080
|
||||||
|
endif
|
||||||
|
|
||||||
|
" LIGHT COLOR DEFINE END
|
||||||
|
|
||||||
|
" Vim 7 added stuffs
|
||||||
|
if v:version >= 700
|
||||||
|
hi Ignore gui=NONE
|
||||||
|
|
||||||
|
" the gui=undercurl guisp could only support in Vim 7
|
||||||
|
if has('spell')
|
||||||
|
hi SpellBad gui=undercurl
|
||||||
|
hi SpellCap gui=undercurl
|
||||||
|
hi SpellRare gui=undercurl
|
||||||
|
hi SpellLocal gui=undercurl
|
||||||
|
endif
|
||||||
|
hi TabLine gui=underline
|
||||||
|
hi TabLineFill gui=underline
|
||||||
|
hi CursorLine gui=underline
|
||||||
|
endif
|
||||||
|
|
||||||
|
" For reversed stuffs, clear the reversed prop and set the bold prop again
|
||||||
|
hi IncSearch gui=bold
|
||||||
|
hi StatusLine gui=bold
|
||||||
|
hi StatusLineNC gui=bold
|
||||||
|
hi VertSplit gui=bold
|
||||||
|
hi Visual gui=bold
|
||||||
|
|
||||||
|
" Enable the bold property
|
||||||
|
hi Question gui=bold
|
||||||
|
hi DiffText gui=bold
|
||||||
|
hi Statement gui=bold
|
||||||
|
hi Type gui=bold
|
||||||
|
hi MoreMsg gui=bold
|
||||||
|
hi ModeMsg gui=bold
|
||||||
|
hi NonText gui=bold
|
||||||
|
hi Title gui=bold
|
||||||
|
hi DiffDelete gui=bold
|
||||||
|
hi TabLineSel gui=bold
|
||||||
|
|
||||||
|
" gui define for background=light end here
|
||||||
|
|
||||||
|
" generally, a dumb terminal is dark, we assume the light terminal has 256
|
||||||
|
" color support.
|
||||||
|
if &t_Co==8 || &t_Co==16
|
||||||
|
set t_Co=256
|
||||||
|
endif
|
||||||
|
if &t_Co==256
|
||||||
|
" 256color light terminal support here
|
||||||
|
|
||||||
|
hi Normal ctermfg=16 ctermbg=254 cterm=NONE
|
||||||
|
" Comment/Uncomment the following line to disable/enable transparency
|
||||||
|
"hi Normal ctermfg=16 ctermbg=NONE cterm=NONE
|
||||||
|
hi Search ctermfg=NONE ctermbg=231 cterm=NONE
|
||||||
|
hi Visual ctermfg=NONE ctermbg=153 cterm=NONE
|
||||||
|
hi Cursor ctermfg=255 ctermbg=28 cterm=NONE
|
||||||
|
" hi CursorIM ctermfg=255 ctermbg=90
|
||||||
|
hi Special ctermfg=94 ctermbg=NONE cterm=NONE
|
||||||
|
hi Comment ctermfg=58 ctermbg=NONE cterm=NONE
|
||||||
|
hi Number ctermfg=94 ctermbg=NONE cterm=NONE
|
||||||
|
hi Constant ctermfg=23 ctermbg=NONE cterm=NONE
|
||||||
|
hi StatusLine ctermfg=fg ctermbg=153 cterm=NONE
|
||||||
|
hi LineNr ctermfg=242 ctermbg=NONE cterm=NONE
|
||||||
|
hi Question ctermfg=fg ctermbg=186 cterm=NONE
|
||||||
|
hi PreProc ctermfg=29 ctermbg=NONE cterm=NONE
|
||||||
|
hi Statement ctermfg=25 ctermbg=NONE cterm=NONE
|
||||||
|
hi Type ctermfg=25 ctermbg=NONE cterm=NONE
|
||||||
|
hi Todo ctermfg=88 ctermbg=186 cterm=NONE
|
||||||
|
" NOTE THIS IS IN THE WARM SECTION
|
||||||
|
hi Error ctermfg=130 ctermbg=NONE cterm=NONE
|
||||||
|
hi Identifier ctermfg=133 ctermbg=NONE cterm=NONE
|
||||||
|
hi ModeMsg ctermfg=fg ctermbg=146 cterm=NONE
|
||||||
|
hi VisualNOS ctermfg=fg ctermbg=146 cterm=NONE
|
||||||
|
hi SpecialKey ctermfg=25 ctermbg=NONE cterm=NONE
|
||||||
|
hi NonText ctermfg=18 ctermbg=252 cterm=NONE
|
||||||
|
" Comment/Uncomment the following line to disable/enable transparency
|
||||||
|
"hi NonText ctermfg=18 ctermbg=NONE cterm=NONE
|
||||||
|
hi Directory ctermfg=133 ctermbg=NONE cterm=NONE
|
||||||
|
hi ErrorMsg ctermfg=fg ctermbg=216 cterm=NONE
|
||||||
|
hi MoreMsg ctermfg=64 ctermbg=NONE cterm=NONE
|
||||||
|
hi Title ctermfg=133 ctermbg=NONE cterm=NONE
|
||||||
|
hi WarningMsg ctermfg=124 ctermbg=NONE cterm=NONE
|
||||||
|
hi WildMenu ctermfg=fg ctermbg=186 cterm=NONE
|
||||||
|
hi Folded ctermfg=NONE ctermbg=151 cterm=NONE
|
||||||
|
hi FoldColumn ctermfg=fg ctermbg=114 cterm=NONE
|
||||||
|
hi DiffAdd ctermfg=NONE ctermbg=146 cterm=NONE
|
||||||
|
hi DiffChange ctermfg=NONE ctermbg=182 cterm=NONE
|
||||||
|
hi DiffDelete ctermfg=18 ctermbg=252 cterm=NONE
|
||||||
|
hi DiffText ctermfg=NONE ctermbg=150 cterm=NONE
|
||||||
|
hi SignColumn ctermfg=fg ctermbg=114 cterm=NONE
|
||||||
|
|
||||||
|
hi IncSearch ctermfg=255 ctermbg=95 cterm=NONE
|
||||||
|
hi StatusLineNC ctermfg=fg ctermbg=250 cterm=NONE
|
||||||
|
hi VertSplit ctermfg=fg ctermbg=250 cterm=NONE
|
||||||
|
hi Underlined ctermfg=62 ctermbg=NONE cterm=underline
|
||||||
|
hi Ignore ctermfg=bg ctermbg=NONE
|
||||||
|
" NOTE THIS IS IN THE WARM SECTION
|
||||||
|
if v:version >= 700
|
||||||
|
if has('spell')
|
||||||
|
if 0
|
||||||
|
" ctermsp is not supported in Vim7, we ignore it.
|
||||||
|
hi SpellBad cterm=undercurl ctermbg=NONE ctermfg=130
|
||||||
|
hi SpellCap cterm=undercurl ctermbg=NONE ctermfg=25
|
||||||
|
hi SpellRare cterm=undercurl ctermbg=NONE ctermfg=133
|
||||||
|
hi SpellLocal cterm=undercurl ctermbg=NONE ctermfg=23
|
||||||
|
else
|
||||||
|
hi SpellBad cterm=undercurl ctermbg=NONE ctermfg=NONE
|
||||||
|
hi SpellCap cterm=undercurl ctermbg=NONE ctermfg=NONE
|
||||||
|
hi SpellRare cterm=undercurl ctermbg=NONE ctermfg=NONE
|
||||||
|
hi SpellLocal cterm=undercurl ctermbg=NONE ctermfg=NONE
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
hi Pmenu ctermfg=fg ctermbg=182
|
||||||
|
hi PmenuSel ctermfg=255 ctermbg=95 cterm=NONE
|
||||||
|
hi PmenuSbar ctermfg=fg ctermbg=250 cterm=NONE
|
||||||
|
hi PmenuThumb ctermfg=fg ctermbg=150 cterm=NONE
|
||||||
|
hi TabLine ctermfg=fg ctermbg=250 cterm=NONE
|
||||||
|
hi TabLineFill ctermfg=fg ctermbg=250 cterm=NONE
|
||||||
|
hi TabLineSel ctermfg=fg ctermbg=NONE cterm=NONE
|
||||||
|
hi CursorColumn ctermfg=NONE ctermbg=216
|
||||||
|
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
|
||||||
|
hi MatchParen ctermfg=NONE ctermbg=150
|
||||||
|
endif
|
||||||
|
|
||||||
|
hi TabLine cterm=underline
|
||||||
|
hi TabLineFill cterm=underline
|
||||||
|
hi CursorLine cterm=underline
|
||||||
|
|
||||||
|
" For reversed stuffs, clear the reversed prop and set the bold prop again
|
||||||
|
hi IncSearch cterm=bold
|
||||||
|
hi StatusLine cterm=bold
|
||||||
|
hi StatusLineNC cterm=bold
|
||||||
|
hi VertSplit cterm=bold
|
||||||
|
hi Visual cterm=bold
|
||||||
|
|
||||||
|
hi NonText cterm=bold
|
||||||
|
hi Question cterm=bold
|
||||||
|
hi Title cterm=bold
|
||||||
|
hi DiffDelete cterm=bold
|
||||||
|
hi DiffText cterm=bold
|
||||||
|
hi Statement cterm=bold
|
||||||
|
hi Type cterm=bold
|
||||||
|
hi MoreMsg cterm=bold
|
||||||
|
hi ModeMsg cterm=bold
|
||||||
|
hi TabLineSel cterm=bold
|
||||||
|
|
||||||
|
"hi lCursor ctermfg=bg ctermbg=fg cterm=NONE
|
||||||
|
endif " t_Co==256
|
||||||
|
" }}}2
|
||||||
|
elseif &background=='dark'
|
||||||
|
" for background=dark {{{2
|
||||||
|
" DARK COLOR DEFINE START
|
||||||
|
|
||||||
|
hi Normal guifg=#d0d0d0 guibg=#202020 gui=NONE
|
||||||
|
hi Comment guifg=#d0d090 guibg=NONE gui=NONE
|
||||||
|
hi Constant guifg=#80c0e0 guibg=NONE gui=NONE
|
||||||
|
hi Number guifg=#e0c060 guibg=NONE gui=NONE
|
||||||
|
hi Identifier guifg=#f0c0f0 guibg=NONE gui=NONE
|
||||||
|
hi Statement guifg=#c0d8f8 guibg=NONE gui=NONE
|
||||||
|
hi PreProc guifg=#60f080 guibg=NONE gui=NONE
|
||||||
|
hi Type guifg=#b0d0f0 guibg=NONE gui=NONE
|
||||||
|
hi Special guifg=#e0c060 guibg=NONE gui=NONE
|
||||||
|
hi Error guifg=#f08060 guibg=NONE gui=NONE
|
||||||
|
hi Todo guifg=#800000 guibg=#d0d090 gui=NONE
|
||||||
|
hi Search guifg=NONE guibg=#800000 gui=NONE
|
||||||
|
hi Visual guifg=#000000 guibg=#a6caf0 gui=NONE
|
||||||
|
hi Cursor guifg=#000000 guibg=#00f000 gui=NONE
|
||||||
|
" NOTE THIS IS IN THE COOL SECTION
|
||||||
|
" hi CursorIM guifg=#000000 guibg=#f000f0 gui=NONE
|
||||||
|
hi StatusLine guifg=#000000 guibg=#a6caf0 gui=NONE
|
||||||
|
hi LineNr guifg=#b0b0b0 guibg=NONE gui=NONE
|
||||||
|
hi Question guifg=#000000 guibg=#d0d090 gui=NONE
|
||||||
|
hi ModeMsg guifg=fg guibg=#000080 gui=NONE
|
||||||
|
hi VisualNOS guifg=fg guibg=#000080 gui=NONE
|
||||||
|
hi SpecialKey guifg=#b0d0f0 guibg=NONE gui=NONE
|
||||||
|
hi NonText guifg=#6080f0 guibg=#101010 gui=NONE
|
||||||
|
hi Directory guifg=#80c0e0 guibg=NONE gui=NONE
|
||||||
|
hi ErrorMsg guifg=#d0d090 guibg=#800000 gui=NONE
|
||||||
|
hi MoreMsg guifg=#c0e080 guibg=NONE gui=NONE
|
||||||
|
hi Title guifg=#f0c0f0 guibg=NONE gui=NONE
|
||||||
|
hi WarningMsg guifg=#f08060 guibg=NONE gui=NONE
|
||||||
|
hi WildMenu guifg=#000000 guibg=#d0d090 gui=NONE
|
||||||
|
hi Folded guifg=NONE guibg=#004000 gui=NONE
|
||||||
|
hi FoldColumn guifg=#e0e0e0 guibg=#008000 gui=NONE
|
||||||
|
hi DiffAdd guifg=NONE guibg=#000080 gui=NONE
|
||||||
|
hi DiffChange guifg=NONE guibg=#800080 gui=NONE
|
||||||
|
hi DiffDelete guifg=#6080f0 guibg=#202020 gui=NONE
|
||||||
|
hi DiffText guifg=#000000 guibg=#c0e080 gui=NONE
|
||||||
|
hi SignColumn guifg=#e0e0e0 guibg=#008000 gui=NONE
|
||||||
|
hi IncSearch guifg=#000000 guibg=#d0d0d0 gui=NONE
|
||||||
|
hi StatusLineNC guifg=#000000 guibg=#c0c0c0 gui=NONE
|
||||||
|
hi VertSplit guifg=#000000 guibg=#c0c0c0 gui=NONE
|
||||||
|
hi Underlined guifg=#80a0ff guibg=NONE gui=underline
|
||||||
|
hi Ignore guifg=#000000 guibg=NONE
|
||||||
|
" NOTE THIS IS IN THE COOL SECTION
|
||||||
|
if v:version >= 700
|
||||||
|
if has('spell')
|
||||||
|
" the guisp= could only support in Vim 7
|
||||||
|
hi SpellBad guifg=NONE guibg=NONE guisp=#f08060
|
||||||
|
hi SpellCap guifg=NONE guibg=NONE guisp=#6080f0
|
||||||
|
hi SpellRare guifg=NONE guibg=NONE guisp=#f0c0f0
|
||||||
|
hi SpellLocal guifg=NONE guibg=NONE guisp=#c0d8f8
|
||||||
|
endif
|
||||||
|
hi Pmenu guifg=fg guibg=#800080
|
||||||
|
hi PmenuSel guifg=#000000 guibg=#d0d0d0 gui=NONE
|
||||||
|
hi PmenuSbar guifg=fg guibg=#000080 gui=NONE
|
||||||
|
hi PmenuThumb guifg=fg guibg=#008000 gui=NONE
|
||||||
|
hi TabLine guifg=fg guibg=#008000 gui=NONE
|
||||||
|
hi TabLineFill guifg=fg guibg=#008000 gui=NONE
|
||||||
|
hi TabLineSel guifg=fg guibg=NONE gui=NONE
|
||||||
|
hi CursorColumn guifg=NONE guibg=#800000 gui=NONE
|
||||||
|
hi CursorLine guifg=NONE guibg=NONE gui=underline
|
||||||
|
hi MatchParen guifg=NONE guibg=#800080
|
||||||
|
endif
|
||||||
|
|
||||||
|
" DARK COLOR DEFINE END
|
||||||
|
|
||||||
|
" Vim 7 added stuffs
|
||||||
|
if v:version >= 700
|
||||||
|
hi Ignore gui=NONE
|
||||||
|
|
||||||
|
" the gui=undercurl could only support in Vim 7
|
||||||
|
if has('spell')
|
||||||
|
hi SpellBad gui=undercurl
|
||||||
|
hi SpellCap gui=undercurl
|
||||||
|
hi SpellRare gui=undercurl
|
||||||
|
hi SpellLocal gui=undercurl
|
||||||
|
endif
|
||||||
|
hi TabLine gui=underline
|
||||||
|
hi TabLineFill gui=underline
|
||||||
|
hi Underlined gui=underline
|
||||||
|
hi CursorLine gui=underline
|
||||||
|
endif
|
||||||
|
|
||||||
|
" gui define for background=dark end here
|
||||||
|
|
||||||
|
if &t_Co==8 || &t_Co==16
|
||||||
|
" for 8-color and 16-color term
|
||||||
|
hi Normal ctermfg=LightGrey ctermbg=Black
|
||||||
|
hi Special ctermfg=Yellow ctermbg=bg
|
||||||
|
hi Comment ctermfg=DarkYellow ctermbg=bg
|
||||||
|
hi Constant ctermfg=Blue ctermbg=bg
|
||||||
|
hi Number ctermfg=Yellow ctermbg=bg
|
||||||
|
hi LineNr ctermfg=DarkGrey ctermbg=bg
|
||||||
|
hi PreProc ctermfg=Green ctermbg=bg
|
||||||
|
hi Statement ctermfg=Cyan ctermbg=bg
|
||||||
|
hi Type ctermfg=Cyan ctermbg=bg
|
||||||
|
hi Error ctermfg=Red ctermbg=bg
|
||||||
|
hi Identifier ctermfg=Magenta ctermbg=bg
|
||||||
|
hi SpecialKey ctermfg=Cyan ctermbg=bg
|
||||||
|
hi NonText ctermfg=Blue ctermbg=bg
|
||||||
|
hi Directory ctermfg=Blue ctermbg=bg
|
||||||
|
hi MoreMsg ctermfg=Green ctermbg=bg
|
||||||
|
hi Title ctermfg=Magenta ctermbg=bg
|
||||||
|
hi WarningMsg ctermfg=Red ctermbg=bg
|
||||||
|
hi DiffDelete ctermfg=Blue ctermbg=bg
|
||||||
|
|
||||||
|
hi Search ctermfg=NONE ctermbg=DarkRed
|
||||||
|
hi Visual ctermfg=Black ctermbg=DarkCyan
|
||||||
|
hi Cursor ctermfg=Black ctermbg=Green
|
||||||
|
hi StatusLine ctermfg=Black ctermbg=DarkCyan
|
||||||
|
hi Question ctermfg=Black ctermbg=DarkYellow
|
||||||
|
hi Todo ctermfg=DarkRed ctermbg=DarkYellow
|
||||||
|
hi Folded ctermfg=White ctermbg=DarkGreen
|
||||||
|
hi ModeMsg ctermfg=Grey ctermbg=DarkBlue
|
||||||
|
hi VisualNOS ctermfg=Grey ctermbg=DarkBlue
|
||||||
|
hi ErrorMsg ctermfg=DarkYellow ctermbg=DarkRed
|
||||||
|
hi WildMenu ctermfg=Black ctermbg=DarkYellow
|
||||||
|
hi FoldColumn ctermfg=White ctermbg=DarkGreen
|
||||||
|
hi SignColumn ctermfg=White ctermbg=DarkGreen
|
||||||
|
hi DiffText ctermfg=Black ctermbg=DarkYellow
|
||||||
|
|
||||||
|
if v:version >= 700
|
||||||
|
if has('spell')
|
||||||
|
hi SpellBad ctermfg=NONE ctermbg=DarkRed
|
||||||
|
hi SpellCap ctermfg=NONE ctermbg=DarkBlue
|
||||||
|
hi SpellRare ctermfg=NONE ctermbg=DarkMagenta
|
||||||
|
hi SpellLocal ctermfg=NONE ctermbg=DarkGreen
|
||||||
|
endif
|
||||||
|
hi Pmenu ctermfg=fg ctermbg=DarkMagenta
|
||||||
|
hi PmenuSel ctermfg=Black ctermbg=fg
|
||||||
|
hi PmenuSbar ctermfg=fg ctermbg=DarkBlue
|
||||||
|
hi PmenuThumb ctermfg=fg ctermbg=DarkGreen
|
||||||
|
hi TabLine ctermfg=fg ctermbg=DarkGreen cterm=underline
|
||||||
|
hi TabLineFill ctermfg=fg ctermbg=DarkGreen cterm=underline
|
||||||
|
hi CursorColumn ctermfg=NONE ctermbg=DarkRed
|
||||||
|
|
||||||
|
hi TabLineSel ctermfg=fg ctermbg=bg
|
||||||
|
hi CursorLine ctermfg=NONE ctermbg=bg cterm=underline
|
||||||
|
|
||||||
|
hi MatchParen ctermfg=NONE ctermbg=DarkMagenta
|
||||||
|
endif
|
||||||
|
if &t_Co==8
|
||||||
|
" 8 colour terminal support, this assumes 16 colour is available through
|
||||||
|
" setting the 'bold' attribute, will get bright foreground colour.
|
||||||
|
" However, the bright background color is not available for 8-color terms.
|
||||||
|
"
|
||||||
|
" You can manually set t_Co=16 in your .vimrc to see if your terminal
|
||||||
|
" supports 16 colours,
|
||||||
|
hi DiffText cterm=none
|
||||||
|
hi Visual cterm=none
|
||||||
|
hi Cursor cterm=none
|
||||||
|
hi Comment cterm=none
|
||||||
|
hi Todo cterm=none
|
||||||
|
hi StatusLine cterm=none
|
||||||
|
hi Question cterm=none
|
||||||
|
hi DiffChange cterm=none
|
||||||
|
hi ModeMsg cterm=none
|
||||||
|
hi VisualNOS cterm=none
|
||||||
|
hi ErrorMsg cterm=none
|
||||||
|
hi WildMenu cterm=none
|
||||||
|
hi DiffAdd cterm=none
|
||||||
|
hi Folded cterm=none
|
||||||
|
hi DiffDelete cterm=none
|
||||||
|
hi Normal cterm=none
|
||||||
|
hi PmenuThumb cterm=none
|
||||||
|
hi Search cterm=bold
|
||||||
|
hi Special cterm=bold
|
||||||
|
hi Constant cterm=bold
|
||||||
|
hi Number cterm=bold
|
||||||
|
hi LineNr cterm=bold
|
||||||
|
hi PreProc cterm=bold
|
||||||
|
hi Statement cterm=bold
|
||||||
|
hi Type cterm=bold
|
||||||
|
hi Error cterm=bold
|
||||||
|
hi Identifier cterm=bold
|
||||||
|
hi SpecialKey cterm=bold
|
||||||
|
hi NonText cterm=bold
|
||||||
|
hi MoreMsg cterm=bold
|
||||||
|
hi Title cterm=bold
|
||||||
|
hi WarningMsg cterm=bold
|
||||||
|
hi FoldColumn cterm=bold
|
||||||
|
hi SignColumn cterm=bold
|
||||||
|
hi Directory cterm=bold
|
||||||
|
hi DiffDelete cterm=bold
|
||||||
|
else
|
||||||
|
" Background > 7 is only available with 16 or more colors
|
||||||
|
|
||||||
|
hi WarningMsg cterm=none
|
||||||
|
hi Search cterm=none
|
||||||
|
hi Visual cterm=none
|
||||||
|
hi Cursor cterm=none
|
||||||
|
hi Special cterm=none
|
||||||
|
hi Comment cterm=none
|
||||||
|
hi Constant cterm=none
|
||||||
|
hi Number cterm=none
|
||||||
|
hi LineNr cterm=none
|
||||||
|
hi PreProc cterm=none
|
||||||
|
hi Todo cterm=none
|
||||||
|
hi Error cterm=none
|
||||||
|
hi Identifier cterm=none
|
||||||
|
hi Folded cterm=none
|
||||||
|
hi SpecialKey cterm=none
|
||||||
|
hi Directory cterm=none
|
||||||
|
hi ErrorMsg cterm=none
|
||||||
|
hi Normal cterm=none
|
||||||
|
hi PmenuThumb cterm=none
|
||||||
|
hi WildMenu cterm=none
|
||||||
|
hi FoldColumn cterm=none
|
||||||
|
hi SignColumn cterm=none
|
||||||
|
hi DiffAdd cterm=none
|
||||||
|
hi DiffChange cterm=none
|
||||||
|
hi Question cterm=none
|
||||||
|
hi StatusLine cterm=none
|
||||||
|
hi DiffText cterm=none
|
||||||
|
hi IncSearch cterm=reverse
|
||||||
|
hi StatusLineNC cterm=reverse
|
||||||
|
hi VertSplit cterm=reverse
|
||||||
|
|
||||||
|
" Well, well, bold font with color 0-7 is not possible.
|
||||||
|
" So, the Question, StatusLine, DiffText cannot act as expected.
|
||||||
|
|
||||||
|
hi Statement cterm=none
|
||||||
|
hi Type cterm=none
|
||||||
|
hi MoreMsg cterm=none
|
||||||
|
hi ModeMsg cterm=none
|
||||||
|
hi NonText cterm=none
|
||||||
|
hi Title cterm=none
|
||||||
|
hi VisualNOS cterm=none
|
||||||
|
hi DiffDelete cterm=none
|
||||||
|
hi TabLineSel cterm=none
|
||||||
|
|
||||||
|
endif
|
||||||
|
elseif &t_Co==256
|
||||||
|
" 256color dark terminal support here
|
||||||
|
hi Normal ctermfg=252 ctermbg=234 cterm=NONE
|
||||||
|
" Comment/Uncomment the following line to disable/enable transparency
|
||||||
|
"hi Normal ctermfg=252 ctermbg=NONE cterm=NONE
|
||||||
|
hi Comment ctermfg=186 ctermbg=NONE cterm=NONE
|
||||||
|
hi Constant ctermfg=110 ctermbg=NONE cterm=NONE
|
||||||
|
hi Number ctermfg=179 ctermbg=NONE cterm=NONE
|
||||||
|
hi Identifier ctermfg=219 ctermbg=NONE cterm=NONE
|
||||||
|
hi Statement ctermfg=153 ctermbg=NONE cterm=NONE
|
||||||
|
hi PreProc ctermfg=84 ctermbg=NONE cterm=NONE
|
||||||
|
hi Type ctermfg=153 ctermbg=NONE cterm=NONE
|
||||||
|
hi Special ctermfg=179 ctermbg=NONE cterm=NONE
|
||||||
|
hi Error ctermfg=209 ctermbg=NONE cterm=NONE
|
||||||
|
hi Todo ctermfg=88 ctermbg=186 cterm=NONE
|
||||||
|
hi Search ctermfg=NONE ctermbg=88 cterm=NONE
|
||||||
|
hi Visual ctermfg=16 ctermbg=153 cterm=NONE
|
||||||
|
hi Cursor ctermfg=16 ctermbg=46 cterm=NONE
|
||||||
|
" NOTE THIS IS IN THE COOL SECTION
|
||||||
|
" hi CursorIM ctermfg=16 ctermbg=201 cterm=NONE
|
||||||
|
hi StatusLine ctermfg=16 ctermbg=153 cterm=NONE
|
||||||
|
hi LineNr ctermfg=249 ctermbg=NONE cterm=NONE
|
||||||
|
hi Question ctermfg=16 ctermbg=186 cterm=NONE
|
||||||
|
hi ModeMsg ctermfg=fg ctermbg=18 cterm=NONE
|
||||||
|
hi VisualNOS ctermfg=fg ctermbg=18 cterm=NONE
|
||||||
|
hi SpecialKey ctermfg=153 ctermbg=NONE cterm=NONE
|
||||||
|
hi NonText ctermfg=69 ctermbg=233 cterm=NONE
|
||||||
|
" Comment/Uncomment the following line to disable/enable transparency
|
||||||
|
"hi NonText ctermfg=69 ctermbg=NONE cterm=NONE
|
||||||
|
hi Directory ctermfg=110 ctermbg=NONE cterm=NONE
|
||||||
|
hi ErrorMsg ctermfg=186 ctermbg=88 cterm=NONE
|
||||||
|
hi MoreMsg ctermfg=150 ctermbg=NONE cterm=NONE
|
||||||
|
hi Title ctermfg=219 ctermbg=NONE cterm=NONE
|
||||||
|
hi WarningMsg ctermfg=209 ctermbg=NONE cterm=NONE
|
||||||
|
hi WildMenu ctermfg=16 ctermbg=186 cterm=NONE
|
||||||
|
hi Folded ctermfg=NONE ctermbg=22 cterm=NONE
|
||||||
|
hi FoldColumn ctermfg=254 ctermbg=28 cterm=NONE
|
||||||
|
hi DiffAdd ctermfg=NONE ctermbg=18 cterm=NONE
|
||||||
|
hi DiffChange ctermfg=NONE ctermbg=90 cterm=NONE
|
||||||
|
hi DiffDelete ctermfg=69 ctermbg=234 cterm=NONE
|
||||||
|
hi DiffText ctermfg=16 ctermbg=150 cterm=NONE
|
||||||
|
hi SignColumn ctermfg=254 ctermbg=28 cterm=NONE
|
||||||
|
hi IncSearch ctermfg=16 ctermbg=252 cterm=NONE
|
||||||
|
hi StatusLineNC ctermfg=16 ctermbg=250 cterm=NONE
|
||||||
|
hi VertSplit ctermfg=16 ctermbg=250 cterm=NONE
|
||||||
|
hi Underlined ctermfg=111 ctermbg=NONE cterm=underline
|
||||||
|
hi Ignore ctermfg=16 ctermbg=NONE
|
||||||
|
" NOTE THIS IS IN THE COOL SECTION
|
||||||
|
if v:version >= 700
|
||||||
|
if has('spell')
|
||||||
|
" the ctermsp= is not supported in Vim 7 we simply ignored
|
||||||
|
if 0
|
||||||
|
hi SpellBad cterm=undercurl ctermbg=NONE ctermfg=209
|
||||||
|
hi SpellCap cterm=undercurl ctermbg=NONE ctermfg=69
|
||||||
|
hi SpellRare cterm=undercurl ctermbg=NONE ctermfg=219
|
||||||
|
hi SpellLocal cterm=undercurl ctermbg=NONE ctermfg=153
|
||||||
|
else
|
||||||
|
hi SpellBad cterm=undercurl ctermbg=NONE ctermfg=NONE
|
||||||
|
hi SpellCap cterm=undercurl ctermbg=NONE ctermfg=NONE
|
||||||
|
hi SpellRare cterm=undercurl ctermbg=NONE ctermfg=NONE
|
||||||
|
hi SpellLocal cterm=undercurl ctermbg=NONE ctermfg=NONE
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
hi Pmenu ctermfg=fg ctermbg=90
|
||||||
|
hi PmenuSel ctermfg=16 ctermbg=252 cterm=NONE
|
||||||
|
hi PmenuSbar ctermfg=fg ctermbg=18 cterm=NONE
|
||||||
|
hi PmenuThumb ctermfg=fg ctermbg=28 cterm=NONE
|
||||||
|
hi TabLine ctermfg=fg ctermbg=28 cterm=NONE
|
||||||
|
hi TabLineFill ctermfg=fg ctermbg=28 cterm=NONE
|
||||||
|
hi TabLineSel ctermfg=fg ctermbg=NONE cterm=NONE
|
||||||
|
hi CursorColumn ctermfg=NONE ctermbg=88 cterm=NONE
|
||||||
|
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
|
||||||
|
hi MatchParen ctermfg=NONE ctermbg=90
|
||||||
|
hi TabLine cterm=underline
|
||||||
|
hi TabLineFill cterm=underline
|
||||||
|
hi Underlined cterm=underline
|
||||||
|
hi CursorLine cterm=underline
|
||||||
|
endif
|
||||||
|
|
||||||
|
endif " t_Co
|
||||||
|
|
||||||
|
" }}}2
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Links:
|
||||||
|
"
|
||||||
|
" COLOR LINKS DEFINE START
|
||||||
|
|
||||||
|
hi link String Constant
|
||||||
|
" Character must be different from strings because in many languages
|
||||||
|
" (especially C, C++) a 'char' variable is scalar while 'string' is pointer,
|
||||||
|
" mistaken a 'char' for a 'string' will cause disaster!
|
||||||
|
hi link Character Number
|
||||||
|
hi link SpecialChar LineNr
|
||||||
|
hi link Tag Identifier
|
||||||
|
hi link cCppOut LineNr
|
||||||
|
" The following are not standard hi links,
|
||||||
|
" these are used by DrChip
|
||||||
|
hi link Warning MoreMsg
|
||||||
|
hi link Notice Constant
|
||||||
|
" these are used by Calendar
|
||||||
|
hi link CalToday PreProc
|
||||||
|
" these are used by TagList
|
||||||
|
hi link MyTagListTagName IncSearch
|
||||||
|
hi link MyTagListTagScope Constant
|
||||||
|
|
||||||
|
" COLOR LINKS DEFINE END
|
||||||
|
|
||||||
|
" vim:et:nosta:sw=2:ts=8:
|
||||||
|
" vim600:fdm=marker:fdl=1:
|
|
@ -0,0 +1,51 @@
|
||||||
|
" Maintainer: Lars H. Nielsen (dengmao@gmail.com)
|
||||||
|
" Last Change: January 22 2007
|
||||||
|
|
||||||
|
set background=dark
|
||||||
|
|
||||||
|
hi clear
|
||||||
|
|
||||||
|
if exists("syntax_on")
|
||||||
|
syntax reset
|
||||||
|
endif
|
||||||
|
|
||||||
|
let colors_name = "wombat"
|
||||||
|
|
||||||
|
|
||||||
|
" Vim >= 7.0 specific colors
|
||||||
|
if version >= 700
|
||||||
|
hi CursorLine guibg=#2d2d2d
|
||||||
|
hi CursorColumn guibg=#2d2d2d
|
||||||
|
hi MatchParen guifg=#f6f3e8 guibg=#857b6f gui=bold
|
||||||
|
hi Pmenu guifg=#f6f3e8 guibg=#444444
|
||||||
|
hi PmenuSel guifg=#000000 guibg=#cae682
|
||||||
|
endif
|
||||||
|
|
||||||
|
" General colors
|
||||||
|
hi Cursor guifg=NONE guibg=#656565 gui=none
|
||||||
|
hi Normal guifg=#f6f3e8 guibg=#242424 gui=none
|
||||||
|
hi NonText guifg=#808080 guibg=#303030 gui=none
|
||||||
|
hi LineNr guifg=#857b6f guibg=#000000 gui=none
|
||||||
|
hi StatusLine guifg=#f6f3e8 guibg=#444444 gui=italic
|
||||||
|
hi StatusLineNC guifg=#857b6f guibg=#444444 gui=none
|
||||||
|
hi VertSplit guifg=#444444 guibg=#444444 gui=none
|
||||||
|
hi Folded guibg=#384048 guifg=#a0a8b0 gui=none
|
||||||
|
hi Title guifg=#f6f3e8 guibg=NONE gui=bold
|
||||||
|
hi Visual guifg=#f6f3e8 guibg=#444444 gui=none
|
||||||
|
hi SpecialKey guifg=#808080 guibg=#343434 gui=none
|
||||||
|
|
||||||
|
" Syntax highlighting
|
||||||
|
hi Comment guifg=#99968b gui=italic
|
||||||
|
hi Todo guifg=#8f8f8f gui=italic
|
||||||
|
hi Constant guifg=#e5786d gui=none
|
||||||
|
hi String guifg=#95e454 gui=italic
|
||||||
|
hi Identifier guifg=#cae682 gui=none
|
||||||
|
hi Function guifg=#cae682 gui=none
|
||||||
|
hi Type guifg=#cae682 gui=none
|
||||||
|
hi Statement guifg=#8ac6f2 gui=none
|
||||||
|
hi Keyword guifg=#8ac6f2 gui=none
|
||||||
|
hi PreProc guifg=#e5786d gui=none
|
||||||
|
hi Number guifg=#e5786d gui=none
|
||||||
|
hi Special guifg=#e7f6da gui=none
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,302 @@
|
||||||
|
" Vim color file
|
||||||
|
" Maintainer: David Liang (bmdavll at gmail dot com)
|
||||||
|
" Last Change: November 28 2008
|
||||||
|
"
|
||||||
|
" wombat256.vim - a modified version of Wombat by Lars Nielsen that also
|
||||||
|
" works on xterms with 88 or 256 colors. The algorithm for approximating the
|
||||||
|
" GUI colors with the xterm palette is from desert256.vim by Henry So Jr.
|
||||||
|
|
||||||
|
set background=dark
|
||||||
|
|
||||||
|
if version > 580
|
||||||
|
hi clear
|
||||||
|
if exists("syntax_on")
|
||||||
|
syntax reset
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
let g:colors_name = "wombat256"
|
||||||
|
|
||||||
|
if !has("gui_running") && &t_Co != 88 && &t_Co != 256
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" functions {{{
|
||||||
|
" returns an approximate grey index for the given grey level
|
||||||
|
fun <SID>grey_number(x)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:x < 23
|
||||||
|
return 0
|
||||||
|
elseif a:x < 69
|
||||||
|
return 1
|
||||||
|
elseif a:x < 103
|
||||||
|
return 2
|
||||||
|
elseif a:x < 127
|
||||||
|
return 3
|
||||||
|
elseif a:x < 150
|
||||||
|
return 4
|
||||||
|
elseif a:x < 173
|
||||||
|
return 5
|
||||||
|
elseif a:x < 196
|
||||||
|
return 6
|
||||||
|
elseif a:x < 219
|
||||||
|
return 7
|
||||||
|
elseif a:x < 243
|
||||||
|
return 8
|
||||||
|
else
|
||||||
|
return 9
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:x < 14
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
let l:n = (a:x - 8) / 10
|
||||||
|
let l:m = (a:x - 8) % 10
|
||||||
|
if l:m < 5
|
||||||
|
return l:n
|
||||||
|
else
|
||||||
|
return l:n + 1
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" returns the actual grey level represented by the grey index
|
||||||
|
fun <SID>grey_level(n)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:n == 0
|
||||||
|
return 0
|
||||||
|
elseif a:n == 1
|
||||||
|
return 46
|
||||||
|
elseif a:n == 2
|
||||||
|
return 92
|
||||||
|
elseif a:n == 3
|
||||||
|
return 115
|
||||||
|
elseif a:n == 4
|
||||||
|
return 139
|
||||||
|
elseif a:n == 5
|
||||||
|
return 162
|
||||||
|
elseif a:n == 6
|
||||||
|
return 185
|
||||||
|
elseif a:n == 7
|
||||||
|
return 208
|
||||||
|
elseif a:n == 8
|
||||||
|
return 231
|
||||||
|
else
|
||||||
|
return 255
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:n == 0
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 8 + (a:n * 10)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" returns the palette index for the given grey index
|
||||||
|
fun <SID>grey_color(n)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:n == 0
|
||||||
|
return 16
|
||||||
|
elseif a:n == 9
|
||||||
|
return 79
|
||||||
|
else
|
||||||
|
return 79 + a:n
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:n == 0
|
||||||
|
return 16
|
||||||
|
elseif a:n == 25
|
||||||
|
return 231
|
||||||
|
else
|
||||||
|
return 231 + a:n
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" returns an approximate color index for the given color level
|
||||||
|
fun <SID>rgb_number(x)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:x < 69
|
||||||
|
return 0
|
||||||
|
elseif a:x < 172
|
||||||
|
return 1
|
||||||
|
elseif a:x < 230
|
||||||
|
return 2
|
||||||
|
else
|
||||||
|
return 3
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:x < 75
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
let l:n = (a:x - 55) / 40
|
||||||
|
let l:m = (a:x - 55) % 40
|
||||||
|
if l:m < 20
|
||||||
|
return l:n
|
||||||
|
else
|
||||||
|
return l:n + 1
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" returns the actual color level for the given color index
|
||||||
|
fun <SID>rgb_level(n)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:n == 0
|
||||||
|
return 0
|
||||||
|
elseif a:n == 1
|
||||||
|
return 139
|
||||||
|
elseif a:n == 2
|
||||||
|
return 205
|
||||||
|
else
|
||||||
|
return 255
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:n == 0
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 55 + (a:n * 40)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" returns the palette index for the given R/G/B color indices
|
||||||
|
fun <SID>rgb_color(x, y, z)
|
||||||
|
if &t_Co == 88
|
||||||
|
return 16 + (a:x * 16) + (a:y * 4) + a:z
|
||||||
|
else
|
||||||
|
return 16 + (a:x * 36) + (a:y * 6) + a:z
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" returns the palette index to approximate the given R/G/B color levels
|
||||||
|
fun <SID>color(r, g, b)
|
||||||
|
" get the closest grey
|
||||||
|
let l:gx = <SID>grey_number(a:r)
|
||||||
|
let l:gy = <SID>grey_number(a:g)
|
||||||
|
let l:gz = <SID>grey_number(a:b)
|
||||||
|
|
||||||
|
" get the closest color
|
||||||
|
let l:x = <SID>rgb_number(a:r)
|
||||||
|
let l:y = <SID>rgb_number(a:g)
|
||||||
|
let l:z = <SID>rgb_number(a:b)
|
||||||
|
|
||||||
|
if l:gx == l:gy && l:gy == l:gz
|
||||||
|
" there are two possibilities
|
||||||
|
let l:dgr = <SID>grey_level(l:gx) - a:r
|
||||||
|
let l:dgg = <SID>grey_level(l:gy) - a:g
|
||||||
|
let l:dgb = <SID>grey_level(l:gz) - a:b
|
||||||
|
let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb)
|
||||||
|
let l:dr = <SID>rgb_level(l:gx) - a:r
|
||||||
|
let l:dg = <SID>rgb_level(l:gy) - a:g
|
||||||
|
let l:db = <SID>rgb_level(l:gz) - a:b
|
||||||
|
let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db)
|
||||||
|
if l:dgrey < l:drgb
|
||||||
|
" use the grey
|
||||||
|
return <SID>grey_color(l:gx)
|
||||||
|
else
|
||||||
|
" use the color
|
||||||
|
return <SID>rgb_color(l:x, l:y, l:z)
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
" only one possibility
|
||||||
|
return <SID>rgb_color(l:x, l:y, l:z)
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" returns the palette index to approximate the 'rrggbb' hex string
|
||||||
|
fun <SID>rgb(rgb)
|
||||||
|
let l:r = ("0x" . strpart(a:rgb, 0, 2)) + 0
|
||||||
|
let l:g = ("0x" . strpart(a:rgb, 2, 2)) + 0
|
||||||
|
let l:b = ("0x" . strpart(a:rgb, 4, 2)) + 0
|
||||||
|
return <SID>color(l:r, l:g, l:b)
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" sets the highlighting for the given group
|
||||||
|
fun <SID>X(group, fg, bg, attr)
|
||||||
|
if a:fg != ""
|
||||||
|
exec "hi ".a:group." guifg=#".a:fg." ctermfg=".<SID>rgb(a:fg)
|
||||||
|
endif
|
||||||
|
if a:bg != ""
|
||||||
|
exec "hi ".a:group." guibg=#".a:bg." ctermbg=".<SID>rgb(a:bg)
|
||||||
|
endif
|
||||||
|
if a:attr != ""
|
||||||
|
if a:attr == 'italic'
|
||||||
|
exec "hi ".a:group." gui=".a:attr." cterm=none"
|
||||||
|
else
|
||||||
|
exec "hi ".a:group." gui=".a:attr." cterm=".a:attr
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
" }}}
|
||||||
|
|
||||||
|
call <SID>X("Normal", "cccccc", "242424", "none")
|
||||||
|
call <SID>X("Cursor", "222222", "ecee90", "none")
|
||||||
|
call <SID>X("CursorLine", "", "32322e", "none")
|
||||||
|
call <SID>X("CursorColumn", "", "2d2d2d", "")
|
||||||
|
"CursorIM
|
||||||
|
"Question
|
||||||
|
"IncSearch
|
||||||
|
call <SID>X("Search", "444444", "af87d7", "")
|
||||||
|
call <SID>X("MatchParen", "ecee90", "857b6f", "bold")
|
||||||
|
call <SID>X("SpecialKey", "6c6c6c", "2d2d2d", "none")
|
||||||
|
call <SID>X("Visual", "ecee90", "597418", "none")
|
||||||
|
call <SID>X("LineNr", "857b6f", "121212", "none")
|
||||||
|
call <SID>X("Folded", "a0a8b0", "404048", "none")
|
||||||
|
call <SID>X("Title", "f6f3e8", "", "bold")
|
||||||
|
call <SID>X("VertSplit", "444444", "444444", "none")
|
||||||
|
call <SID>X("StatusLine", "f6f3e8", "444444", "italic")
|
||||||
|
call <SID>X("StatusLineNC", "857b6f", "444444", "none")
|
||||||
|
"Scrollbar
|
||||||
|
"Tooltip
|
||||||
|
"Menu
|
||||||
|
"WildMenu
|
||||||
|
call <SID>X("Pmenu", "f6f3e8", "444444", "")
|
||||||
|
call <SID>X("PmenuSel", "121212", "caeb82", "")
|
||||||
|
call <SID>X("WarningMsg", "ff0000", "", "")
|
||||||
|
"ErrorMsg
|
||||||
|
"ModeMsg
|
||||||
|
"MoreMsg
|
||||||
|
"Directory
|
||||||
|
"DiffAdd
|
||||||
|
"DiffChange
|
||||||
|
"DiffDelete
|
||||||
|
"DiffText
|
||||||
|
|
||||||
|
" syntax highlighting
|
||||||
|
call <SID>X("Number", "e5786d", "", "none")
|
||||||
|
call <SID>X("Constant", "e5786d", "", "none")
|
||||||
|
call <SID>X("String", "95e454", "", "italic")
|
||||||
|
call <SID>X("Comment", "c0bc6c", "", "italic")
|
||||||
|
call <SID>X("Identifier", "caeb82", "", "none")
|
||||||
|
call <SID>X("Keyword", "87afff", "", "none")
|
||||||
|
call <SID>X("Statement", "87afff", "", "none")
|
||||||
|
call <SID>X("Function", "caeb82", "", "none")
|
||||||
|
call <SID>X("PreProc", "e5786d", "", "none")
|
||||||
|
call <SID>X("Type", "caeb82", "", "none")
|
||||||
|
call <SID>X("Special", "ffdead", "", "none")
|
||||||
|
call <SID>X("Todo", "857b6f", "", "italic")
|
||||||
|
"Underlined
|
||||||
|
"Error
|
||||||
|
"Ignore
|
||||||
|
|
||||||
|
hi! link VisualNOS Visual
|
||||||
|
hi! link NonText LineNr
|
||||||
|
hi! link FoldColumn Folded
|
||||||
|
|
||||||
|
" delete functions {{{
|
||||||
|
delf <SID>X
|
||||||
|
delf <SID>rgb
|
||||||
|
delf <SID>color
|
||||||
|
delf <SID>rgb_color
|
||||||
|
delf <SID>rgb_level
|
||||||
|
delf <SID>rgb_number
|
||||||
|
delf <SID>grey_color
|
||||||
|
delf <SID>grey_level
|
||||||
|
delf <SID>grey_number
|
||||||
|
" }}}
|
||||||
|
|
||||||
|
" vim:set ts=4 sw=4 noet fdm=marker:
|
|
@ -0,0 +1,71 @@
|
||||||
|
*open-terminal* Open Terminal, Filemanager for various platform
|
||||||
|
|
||||||
|
Open Terminal Help File
|
||||||
|
|
||||||
|
Introduction |open-terminal-introduction|
|
||||||
|
Commmands |open-terminal-commands|
|
||||||
|
Requires |open-terminal-requires|
|
||||||
|
Key map examples |open-terminal-keymap|
|
||||||
|
Changelog |open-terminal-changelog|
|
||||||
|
About |open-terminal-about|
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
Introduction *open-terminal-introduction*
|
||||||
|
|
||||||
|
Some vim user want to shell like emacs's eshell. But vim don't support shell,
|
||||||
|
terminal interface in vim (at least 7.x version).
|
||||||
|
|
||||||
|
In this situation, I use native terminal software open script for my various
|
||||||
|
working platforms.
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
Commmands *open-terminal-commands*
|
||||||
|
|
||||||
|
*OpenTerminal*
|
||||||
|
:OpenTerminal Open native terminal sw. Check |requires| list
|
||||||
|
|
||||||
|
*OpenFilemanager*
|
||||||
|
:OpenFilemanager Open native file manager. Check |requires| list
|
||||||
|
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
Map key examples *open-terminal-keymap*
|
||||||
|
>
|
||||||
|
nnoremap <silent> <F9> :OpenTerminal<CR>
|
||||||
|
nnoremap <silent> <F10> :OpenFilemanager<CR><CR>
|
||||||
|
<
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
Requires (per platform) *open-terminal-requires*
|
||||||
|
|
||||||
|
I use Mac, Gnome, Windows(gvim). I don't test in KDE environment.
|
||||||
|
|
||||||
|
Platform Terminal File manager ~
|
||||||
|
>
|
||||||
|
Mac Terminal.app Finder
|
||||||
|
(with Applescript)
|
||||||
|
Gnome gnome-terminal nautilus
|
||||||
|
KDE konsole konqueror
|
||||||
|
Windows cmd explorer
|
||||||
|
(with start)
|
||||||
|
cygwin bash explorer
|
||||||
|
<
|
||||||
|
==============================================================================
|
||||||
|
Changelog *open-terminal-changelog*
|
||||||
|
|
||||||
|
0.1:
|
||||||
|
- First release used script for everyone.
|
||||||
|
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
About *open-terminal-about*
|
||||||
|
|
||||||
|
Copyright (c) 2009 by neocoin ~
|
||||||
|
File: open_terminal.vim
|
||||||
|
Author: Sangmin Ryu (neocoin@gmail.com)
|
||||||
|
Date: Tue Dec 22 13:33:32 PST 2009
|
||||||
|
License: The MIT License
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
|
||||||
|
vim:tw=78:ts=8:ft=help:norl:
|
19
vim/doc/tags
19
vim/doc/tags
|
@ -57,10 +57,6 @@
|
||||||
'Tlist_WinWidth' taglist.txt /*'Tlist_WinWidth'*
|
'Tlist_WinWidth' taglist.txt /*'Tlist_WinWidth'*
|
||||||
'loaded_nerd_comments' NERD_commenter.txt /*'loaded_nerd_comments'*
|
'loaded_nerd_comments' NERD_commenter.txt /*'loaded_nerd_comments'*
|
||||||
'loaded_nerd_tree' NERD_tree.txt /*'loaded_nerd_tree'*
|
'loaded_nerd_tree' NERD_tree.txt /*'loaded_nerd_tree'*
|
||||||
:AlignCenter textformat.txt /*:AlignCenter*
|
|
||||||
:AlignJustify textformat.txt /*:AlignJustify*
|
|
||||||
:AlignLeft textformat.txt /*:AlignLeft*
|
|
||||||
:AlignRight textformat.txt /*:AlignRight*
|
|
||||||
:CVSEdit vcscommand.txt /*:CVSEdit*
|
:CVSEdit vcscommand.txt /*:CVSEdit*
|
||||||
:CVSEditors vcscommand.txt /*:CVSEditors*
|
:CVSEditors vcscommand.txt /*:CVSEditors*
|
||||||
:CVSUnedit vcscommand.txt /*:CVSUnedit*
|
:CVSUnedit vcscommand.txt /*:CVSUnedit*
|
||||||
|
@ -193,6 +189,8 @@ NERDTreeOptionSummary NERD_tree.txt /*NERDTreeOptionSummary*
|
||||||
NERDTreeOptions NERD_tree.txt /*NERDTreeOptions*
|
NERDTreeOptions NERD_tree.txt /*NERDTreeOptions*
|
||||||
NERD_commenter.txt NERD_commenter.txt /*NERD_commenter.txt*
|
NERD_commenter.txt NERD_commenter.txt /*NERD_commenter.txt*
|
||||||
NERD_tree.txt NERD_tree.txt /*NERD_tree.txt*
|
NERD_tree.txt NERD_tree.txt /*NERD_tree.txt*
|
||||||
|
OpenFilemanager open_terminal.txt /*OpenFilemanager*
|
||||||
|
OpenTerminal open_terminal.txt /*OpenTerminal*
|
||||||
Tlist_Get_Tag_Prototype_By_Line() taglist.txt /*Tlist_Get_Tag_Prototype_By_Line()*
|
Tlist_Get_Tag_Prototype_By_Line() taglist.txt /*Tlist_Get_Tag_Prototype_By_Line()*
|
||||||
Tlist_Get_Tagname_By_Line() taglist.txt /*Tlist_Get_Tagname_By_Line()*
|
Tlist_Get_Tagname_By_Line() taglist.txt /*Tlist_Get_Tagname_By_Line()*
|
||||||
Tlist_Set_App() taglist.txt /*Tlist_Set_App()*
|
Tlist_Set_App() taglist.txt /*Tlist_Set_App()*
|
||||||
|
@ -242,6 +240,13 @@ g:bufExplorerSortBy bufexplorer.txt /*g:bufExplorerSortBy*
|
||||||
g:bufExplorerSplitBelow bufexplorer.txt /*g:bufExplorerSplitBelow*
|
g:bufExplorerSplitBelow bufexplorer.txt /*g:bufExplorerSplitBelow*
|
||||||
g:bufExplorerSplitOutPathName bufexplorer.txt /*g:bufExplorerSplitOutPathName*
|
g:bufExplorerSplitOutPathName bufexplorer.txt /*g:bufExplorerSplitOutPathName*
|
||||||
g:bufExplorerSplitRight bufexplorer.txt /*g:bufExplorerSplitRight*
|
g:bufExplorerSplitRight bufexplorer.txt /*g:bufExplorerSplitRight*
|
||||||
|
open-terminal open_terminal.txt /*open-terminal*
|
||||||
|
open-terminal-about open_terminal.txt /*open-terminal-about*
|
||||||
|
open-terminal-changelog open_terminal.txt /*open-terminal-changelog*
|
||||||
|
open-terminal-commands open_terminal.txt /*open-terminal-commands*
|
||||||
|
open-terminal-introduction open_terminal.txt /*open-terminal-introduction*
|
||||||
|
open-terminal-keymap open_terminal.txt /*open-terminal-keymap*
|
||||||
|
open-terminal-requires open_terminal.txt /*open-terminal-requires*
|
||||||
taglist-commands taglist.txt /*taglist-commands*
|
taglist-commands taglist.txt /*taglist-commands*
|
||||||
taglist-debug taglist.txt /*taglist-debug*
|
taglist-debug taglist.txt /*taglist-debug*
|
||||||
taglist-extend taglist.txt /*taglist-extend*
|
taglist-extend taglist.txt /*taglist-extend*
|
||||||
|
@ -259,12 +264,6 @@ taglist-session taglist.txt /*taglist-session*
|
||||||
taglist-todo taglist.txt /*taglist-todo*
|
taglist-todo taglist.txt /*taglist-todo*
|
||||||
taglist-using taglist.txt /*taglist-using*
|
taglist-using taglist.txt /*taglist-using*
|
||||||
taglist.txt taglist.txt /*taglist.txt*
|
taglist.txt taglist.txt /*taglist.txt*
|
||||||
textformat-commands textformat.txt /*textformat-commands*
|
|
||||||
textformat-config textformat.txt /*textformat-config*
|
|
||||||
textformat-history textformat.txt /*textformat-history*
|
|
||||||
textformat-keymap textformat.txt /*textformat-keymap*
|
|
||||||
textformat-start textformat.txt /*textformat-start*
|
|
||||||
textformat.txt textformat.txt /*textformat.txt*
|
|
||||||
vcscommand vcscommand.txt /*vcscommand*
|
vcscommand vcscommand.txt /*vcscommand*
|
||||||
vcscommand-buffer-management vcscommand.txt /*vcscommand-buffer-management*
|
vcscommand-buffer-management vcscommand.txt /*vcscommand-buffer-management*
|
||||||
vcscommand-buffer-variables vcscommand.txt /*vcscommand-buffer-variables*
|
vcscommand-buffer-variables vcscommand.txt /*vcscommand-buffer-variables*
|
||||||
|
|
|
@ -81,7 +81,7 @@ output appears in a new window.
|
||||||
Many of the commands accept revisions as arguments. By default, most operate
|
Many of the commands accept revisions as arguments. By default, most operate
|
||||||
on the most recent revision on the current branch if no revision is specified.
|
on the most recent revision on the current branch if no revision is specified.
|
||||||
|
|
||||||
Each vcscommand is mapped to a key sequence starting with the <Leader>
|
Each vcscommand is mapped to a key sequence starting with the |<Leader>|
|
||||||
keystroke. The default mappings may be overridden by supplying different
|
keystroke. The default mappings may be overridden by supplying different
|
||||||
mappings before the plugin is loaded, such as in the vimrc, in the standard
|
mappings before the plugin is loaded, such as in the vimrc, in the standard
|
||||||
fashion for plugin mappings. For examples, please see
|
fashion for plugin mappings. For examples, please see
|
||||||
|
@ -131,7 +131,7 @@ This command adds the current file to source control. Please note, this does
|
||||||
not commit the newly-added file. All parameters to the command are passed to
|
not commit the newly-added file. All parameters to the command are passed to
|
||||||
the underlying VCS.
|
the underlying VCS.
|
||||||
|
|
||||||
:VCSAnnotate *:VCSAnnotate*
|
:VCSAnnotate[!] *:VCSAnnotate*
|
||||||
|
|
||||||
This command displays the current file with each line annotated with the
|
This command displays the current file with each line annotated with the
|
||||||
version in which it was most recently changed. If an argument is given, the
|
version in which it was most recently changed. If an argument is given, the
|
||||||
|
@ -140,16 +140,20 @@ it uses the most recent version of the file (on the current branch, if under
|
||||||
CVS control). Additionally, if the current buffer is a VCSAnnotate buffer
|
CVS control). Additionally, if the current buffer is a VCSAnnotate buffer
|
||||||
already, the version number on the current line is used.
|
already, the version number on the current line is used.
|
||||||
|
|
||||||
|
If '!' is used, the view of the annotated buffer is split so that the
|
||||||
|
annotation is in a separate window from the content, and each is highlighted
|
||||||
|
separately.
|
||||||
|
|
||||||
For CVS buffers, the 'VCSCommandCVSAnnotateParent' option, if set to non-zero,
|
For CVS buffers, the 'VCSCommandCVSAnnotateParent' option, if set to non-zero,
|
||||||
will cause the above behavior to change. Instead of annotating the version on
|
will cause the above behavior to change. Instead of annotating the version on
|
||||||
the current line, the parent revision is used instead, crossing branches if
|
the current line, the parent revision is used instead, crossing branches if
|
||||||
necessary.
|
necessary.
|
||||||
|
|
||||||
The filetype of the vcscommand scratch buffer is set to one of 'CVSAnnotate',
|
The filetype of the vcscommand scratch buffer is set to one of 'CVSAnnotate',
|
||||||
'SVNAnnotate', or 'SVKAnnotate' as appropriate, to take advantage of the
|
'SVNAnnotate', 'SVKAnnotate' or 'gitAnnotate' as appropriate, to take advantage of the
|
||||||
bundled syntax files.
|
bundled syntax files.
|
||||||
|
|
||||||
:VCSBlame *:VCSBlame*
|
:VCSBlame[!] *:VCSBlame*
|
||||||
|
|
||||||
Alias for |:VCSAnnotate|.
|
Alias for |:VCSAnnotate|.
|
||||||
|
|
||||||
|
@ -168,9 +172,10 @@ log message. The commit can be abandoned if the log message buffer is deleted
|
||||||
or wiped before being written.
|
or wiped before being written.
|
||||||
|
|
||||||
Alternatively, the mapping that is used to invoke :VCSCommit (by default
|
Alternatively, the mapping that is used to invoke :VCSCommit (by default
|
||||||
<Leader>cc) can be used in the log message buffer to immediately commit. This
|
|<Leader>|cc, please see |vcscommand-mappings|) can be used in the log message
|
||||||
is useful if the |VCSCommandCommitOnWrite| variable is set to 0 to disable the
|
buffer in Normal mode to immediately commit. This is useful if the
|
||||||
normal commit-on-write behavior.
|
|VCSCommandCommitOnWrite| variable is set to 0 to disable the normal
|
||||||
|
commit-on-write behavior.
|
||||||
|
|
||||||
:VCSDelete *:VCSDelete*
|
:VCSDelete *:VCSDelete*
|
||||||
|
|
||||||
|
@ -325,32 +330,33 @@ This command performs "cvs watchers" on the current file.
|
||||||
By default, a mapping is defined for each command. These mappings execute the
|
By default, a mapping is defined for each command. These mappings execute the
|
||||||
default (no-argument) form of each command.
|
default (no-argument) form of each command.
|
||||||
|
|
||||||
<Leader>ca VCSAdd
|
|<Leader>|ca VCSAdd
|
||||||
<Leader>cn VCSAnnotate
|
|<Leader>|cn VCSAnnotate
|
||||||
<Leader>cc VCSCommit
|
|<Leader>|cN VCSAnnotate!
|
||||||
<Leader>cD VCSDelete
|
|<Leader>|cc VCSCommit
|
||||||
<Leader>cd VCSDiff
|
|<Leader>|cD VCSDelete
|
||||||
<Leader>cg VCSGotoOriginal
|
|<Leader>|cd VCSDiff
|
||||||
<Leader>cG VCSGotoOriginal!
|
|<Leader>|cg VCSGotoOriginal
|
||||||
<Leader>ci VCSInfo
|
|<Leader>|cG VCSGotoOriginal!
|
||||||
<Leader>cl VCSLog
|
|<Leader>|ci VCSInfo
|
||||||
<Leader>cL VCSLock
|
|<Leader>|cl VCSLog
|
||||||
<Leader>cr VCSReview
|
|<Leader>|cL VCSLock
|
||||||
<Leader>cs VCSStatus
|
|<Leader>|cr VCSReview
|
||||||
<Leader>cu VCSUpdate
|
|<Leader>|cs VCSStatus
|
||||||
<Leader>cU VCSUnlock
|
|<Leader>|cu VCSUpdate
|
||||||
<Leader>cv VCSVimDiff
|
|<Leader>|cU VCSUnlock
|
||||||
|
|<Leader>|cv VCSVimDiff
|
||||||
|
|
||||||
Only for CVS buffers:
|
Only for CVS buffers:
|
||||||
|
|
||||||
<Leader>ce CVSEdit
|
|<Leader>|ce CVSEdit
|
||||||
<Leader>cE CVSEditors
|
|<Leader>|cE CVSEditors
|
||||||
<Leader>ct CVSUnedit
|
|<Leader>|ct CVSUnedit
|
||||||
<Leader>cwv CVSWatchers
|
|<Leader>|cwv CVSWatchers
|
||||||
<Leader>cwa CVSWatchAdd
|
|<Leader>|cwa CVSWatchAdd
|
||||||
<Leader>cwn CVSWatchOn
|
|<Leader>|cwn CVSWatchOn
|
||||||
<Leader>cwf CVSWatchOff
|
|<Leader>|cwf CVSWatchOff
|
||||||
<Leader>cwf CVSWatchRemove
|
|<Leader>|cwf CVSWatchRemove
|
||||||
|
|
||||||
*vcscommand-mappings-override*
|
*vcscommand-mappings-override*
|
||||||
|
|
||||||
|
@ -583,7 +589,7 @@ For instance, the following could be added to the vimrc to provide a 'q'
|
||||||
mapping to quit a vcscommand scratch buffer:
|
mapping to quit a vcscommand scratch buffer:
|
||||||
|
|
||||||
augroup VCSCommand
|
augroup VCSCommand
|
||||||
au User VCSBufferCreated silent! nmap <unique> <buffer> q: bwipeout<cr>
|
au User VCSBufferCreated silent! nmap <unique> <buffer> q :bwipeout<cr>
|
||||||
augroup END
|
augroup END
|
||||||
|
|
||||||
The following hooks are available:
|
The following hooks are available:
|
||||||
|
|
|
@ -11,6 +11,9 @@ set errorbells
|
||||||
set visualbell
|
set visualbell
|
||||||
set showtabline=2
|
set showtabline=2
|
||||||
set guicursor=a:blinkon0
|
set guicursor=a:blinkon0
|
||||||
|
set showtabline=2
|
||||||
|
set guitablabel=%!GuiTabLabel()
|
||||||
|
set guitabtooltip=%!GuiTabToolTip()
|
||||||
set fuoptions=maxvert,maxhorz
|
set fuoptions=maxvert,maxhorz
|
||||||
|
|
||||||
set guioptions-=T
|
set guioptions-=T
|
||||||
|
@ -21,11 +24,11 @@ if &background == "dark"
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" colorscheme zenburn
|
" colorscheme zenburn
|
||||||
" colorscheme freya
|
colorscheme freya
|
||||||
" colorscheme moria
|
" colorscheme moria
|
||||||
" colorscheme morning
|
" colorscheme morning
|
||||||
" colorscheme desert
|
" colorscheme desert
|
||||||
colorscheme macvim
|
" colorscheme macvim
|
||||||
" colorscheme inkpot
|
" colorscheme inkpot
|
||||||
|
|
||||||
" Emacs like indenting. Pressing Tab indents line
|
" Emacs like indenting. Pressing Tab indents line
|
||||||
|
|
|
@ -0,0 +1,108 @@
|
||||||
|
"
|
||||||
|
" File: open_terminal.vim
|
||||||
|
"
|
||||||
|
" Requires:
|
||||||
|
" platform Terminal File manager
|
||||||
|
" Mac Terminal.app Finder
|
||||||
|
" (with Applescript)
|
||||||
|
" Gnome gnome-terminal nautilus
|
||||||
|
" KDE konsole konqueror
|
||||||
|
" Windows cmd explorer
|
||||||
|
" (with start)
|
||||||
|
" cygwin bash explorer
|
||||||
|
"
|
||||||
|
" Example:
|
||||||
|
" nnoremap <silent> <F9> :OpenTerminal<CR>
|
||||||
|
" nnoremap <silent> <F10> :OpenFilemanager<CR><CR>
|
||||||
|
"
|
||||||
|
" Commands:
|
||||||
|
" OpenTerminal
|
||||||
|
" OpenFilemanager
|
||||||
|
"
|
||||||
|
|
||||||
|
" OpenTerminal {{{1
|
||||||
|
function! s:open_terminal()
|
||||||
|
let l:current_dir = getcwd()
|
||||||
|
execute("chdir " . escape(expand("%:p:h"), " \"'"))
|
||||||
|
|
||||||
|
if has("mac")
|
||||||
|
let l:cmd = "
|
||||||
|
\ tell application 'System Events' \n
|
||||||
|
\ set is_term_running to exists application process '$Terminal' \n
|
||||||
|
\ end tell \n
|
||||||
|
\
|
||||||
|
\ set cmd to 'cd $current_path' \n
|
||||||
|
\ tell application '$Terminal' \n
|
||||||
|
\ activate \n
|
||||||
|
\ if is_term_running is true then \n
|
||||||
|
\ do script with command cmd \n
|
||||||
|
\ else \n
|
||||||
|
\ do script with command cmd in window 1 \n
|
||||||
|
\ end if \n
|
||||||
|
\ end tell \n
|
||||||
|
\ "
|
||||||
|
let l:cmd = substitute(l:cmd, "'", '\\"', 'g')
|
||||||
|
let l:cmd = substitute( l:cmd, "$Terminal", "Terminal", "g" )
|
||||||
|
let l:cmd = substitute( l:cmd, "$current_path", "'" . expand("%:p:h") . "'" , "g")
|
||||||
|
call system('osascript -e " ' . l:cmd . '"')
|
||||||
|
|
||||||
|
elseif has("gui_gnome") && executable("gnome-terminal")
|
||||||
|
call system("gnome-terminal &")
|
||||||
|
elseif has("gui_gnome") && executable("konsole")
|
||||||
|
call system("konsole &")
|
||||||
|
elseif has("gui_win32")
|
||||||
|
try
|
||||||
|
call system("start cmd")
|
||||||
|
catch /E484:/
|
||||||
|
echo "Ignore E484 error in Windows platform"
|
||||||
|
endtry
|
||||||
|
elseif executable("bash")
|
||||||
|
!bash
|
||||||
|
elseif has("win32")
|
||||||
|
stop
|
||||||
|
endif
|
||||||
|
|
||||||
|
execute("chdir " . escape(l:current_dir, " \"'"))
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
command! -nargs=0 -bar OpenTerminal call s:open_terminal()
|
||||||
|
|
||||||
|
"}}}1
|
||||||
|
|
||||||
|
" OpenFilemanager {{{1
|
||||||
|
function! s:open_filemanager()
|
||||||
|
let l:cmd = "$cmd ."
|
||||||
|
|
||||||
|
let l:current_dir = getcwd()
|
||||||
|
execute("chdir " . escape(expand("%:p:h"), " \"'"))
|
||||||
|
|
||||||
|
if has("mac")
|
||||||
|
call system("open .")
|
||||||
|
elseif has("gui_gnome") && executable("nautilus")
|
||||||
|
call system("nautilus .")
|
||||||
|
elseif has("gui_gnome") && executable("konqueror")
|
||||||
|
call system("konqueror .")
|
||||||
|
elseif has("gui_win32") || has("win32")
|
||||||
|
call system("explorer .")
|
||||||
|
elseif executable("bash")
|
||||||
|
!bash
|
||||||
|
endif
|
||||||
|
|
||||||
|
execute("chdir " . escape(l:current_dir, " \"'"))
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
command! -nargs=0 -bar OpenFilemanager call s:open_filemanager()
|
||||||
|
" }}}1
|
||||||
|
|
||||||
|
" About file info {{{1
|
||||||
|
"=============================================================================
|
||||||
|
" Copyright (c) 2009 by neocoin
|
||||||
|
" File: open_terminal.vim
|
||||||
|
" Author: Sangmin Ryu (neocoin@gmail.com)
|
||||||
|
" Date: Tue Dec 22 13:33:32 PST 2009
|
||||||
|
" License: The MIT License
|
||||||
|
" Version: 0.1
|
||||||
|
"=============================================================================
|
||||||
|
" }}}1
|
||||||
|
|
||||||
|
" vim: set fdm=marker:
|
|
@ -0,0 +1,91 @@
|
||||||
|
" """"""""""""
|
||||||
|
" Status Line
|
||||||
|
" """"""""""""
|
||||||
|
" Some useful functions
|
||||||
|
"return the syntax highlight group under the cursor ''
|
||||||
|
function! StatuslineCurrentHighlight()
|
||||||
|
let name = synIDattr(synID(line('.'),col('.'),1),'name')
|
||||||
|
if name == ''
|
||||||
|
return ''
|
||||||
|
else
|
||||||
|
return '[' . name . ']'
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
"recalculate the tab warning flag when idle and after writing
|
||||||
|
autocmd cursorhold,bufwritepost * unlet! b:statusline_tab_warning
|
||||||
|
"
|
||||||
|
"return '[&et]' if &et is set wrong
|
||||||
|
"return '[mixed-indenting]' if spaces and tabs are used to indent
|
||||||
|
"return an empty string if everything is fine
|
||||||
|
function! StatuslineTabWarning()
|
||||||
|
if !exists("b:statusline_tab_warning")
|
||||||
|
let tabs = search('^\t', 'nw') != 0
|
||||||
|
let spaces = search('^ ', 'nw') != 0
|
||||||
|
|
||||||
|
if tabs && spaces
|
||||||
|
let b:statusline_tab_warning = '[mixed-indenting]'
|
||||||
|
elseif (spaces && !&et) || (tabs && &et)
|
||||||
|
let b:statusline_tab_warning = '[&et]'
|
||||||
|
else
|
||||||
|
let b:statusline_tab_warning = ''
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
return b:statusline_tab_warning
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
"recalculate the trailing whitespace warning when idle, and after saving
|
||||||
|
autocmd cursorhold,bufwritepost * unlet! b:statusline_trailing_space_warning
|
||||||
|
|
||||||
|
"return '[\s]' if trailing white space is detected
|
||||||
|
"return '' otherwise
|
||||||
|
function! StatuslineTrailingSpaceWarning()
|
||||||
|
if !exists("b:statusline_trailing_space_warning")
|
||||||
|
if search('\s\+$', 'nw') != 0
|
||||||
|
let b:statusline_trailing_space_warning = '[\s]'
|
||||||
|
else
|
||||||
|
let b:statusline_trailing_space_warning = ''
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
return b:statusline_trailing_space_warning
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
" Real Status line definition
|
||||||
|
set statusline=%t\ "tail of the filename
|
||||||
|
|
||||||
|
"display a warning if fileformat isnt unix
|
||||||
|
set statusline+=%#warningmsg#
|
||||||
|
set statusline+=%{&ff!='unix'?'['.&ff.']':''}
|
||||||
|
set statusline+=%*
|
||||||
|
|
||||||
|
"display a warning if file encoding isnt utf-8
|
||||||
|
set statusline+=%#warningmsg#
|
||||||
|
set statusline+=%{(&fenc!='utf-8'&&&fenc!='')?'['.&fenc.']':''}
|
||||||
|
set statusline+=%*
|
||||||
|
|
||||||
|
set statusline+=%h "help file flag
|
||||||
|
set statusline+=%y "filetype
|
||||||
|
set statusline+=%r "read only flag
|
||||||
|
set statusline+=%m "modified flag
|
||||||
|
|
||||||
|
"display a warning if &et is wrong, or we have mixed-indenting
|
||||||
|
set statusline+=%#error#
|
||||||
|
set statusline+=%{StatuslineTabWarning()}
|
||||||
|
set statusline+=%*
|
||||||
|
|
||||||
|
set statusline+=%{StatuslineTrailingSpaceWarning()}
|
||||||
|
|
||||||
|
"display a warning if &paste is set
|
||||||
|
set statusline+=%#error#
|
||||||
|
set statusline+=%{&paste?'[paste]':'[nopaste]'}
|
||||||
|
set statusline+=%*
|
||||||
|
|
||||||
|
set statusline+=%= "left/right separator
|
||||||
|
set statusline+=%{StatuslineCurrentHighlight()}\ \ "current highlight
|
||||||
|
set statusline+=%02c, "cursor column
|
||||||
|
set statusline+=%03l/%03L "cursor line/total lines
|
||||||
|
set statusline+=\ hex:\ 0x%02B
|
||||||
|
set statusline+=\ %P "percent through file
|
||||||
|
|
||||||
|
" vim: set ts=4 sw=4 tw=78 ft=vim :
|
|
@ -0,0 +1,72 @@
|
||||||
|
" set up tab labels with tab number, buffer name, number of windows
|
||||||
|
function! GuiTabLabel()
|
||||||
|
let label = ''
|
||||||
|
let bufnrlist = tabpagebuflist(v:lnum)
|
||||||
|
|
||||||
|
|
||||||
|
" Append the tab number
|
||||||
|
let label .= tabpagenr().': '
|
||||||
|
|
||||||
|
" Append the buffer name
|
||||||
|
let name = bufname(bufnrlist[tabpagewinnr(v:lnum) - 1])
|
||||||
|
if name == ''
|
||||||
|
" give a name to no-name documents
|
||||||
|
if &buftype=='quickfix'
|
||||||
|
let name = '[Quickfix List]'
|
||||||
|
else
|
||||||
|
let name = '[No Name]'
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
" get only the file name
|
||||||
|
let name = fnamemodify(name,":t")
|
||||||
|
endif
|
||||||
|
let label .= name
|
||||||
|
|
||||||
|
for bufnr in bufnrlist
|
||||||
|
if getbufvar(bufnr, "&modified")
|
||||||
|
let label .= ' [+]'
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
return label
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" set up tab tooltips with every buffer name
|
||||||
|
function! GuiTabToolTip()
|
||||||
|
let tip = ''
|
||||||
|
let bufnrlist = tabpagebuflist(v:lnum)
|
||||||
|
|
||||||
|
for bufnr in bufnrlist
|
||||||
|
" separate buffer entries
|
||||||
|
if tip!=''
|
||||||
|
let tip .= ' | '
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Add name of buffer
|
||||||
|
let name=bufname(bufnr)
|
||||||
|
if name == ''
|
||||||
|
" give a name to no name documents
|
||||||
|
if getbufvar(bufnr,'&buftype')=='quickfix'
|
||||||
|
let name = '[Quickfix List]'
|
||||||
|
else
|
||||||
|
let name = '[No Name]'
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
let tip.=name
|
||||||
|
|
||||||
|
" add modified/modifiable flags
|
||||||
|
if getbufvar(bufnr, "&modified")
|
||||||
|
let tip .= ' [+]'
|
||||||
|
endif
|
||||||
|
if getbufvar(bufnr, "&modifiable")==0
|
||||||
|
let tip .= ' [-]'
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
|
||||||
|
return tip
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
set guitablabel=%!GuiTabLabel()
|
||||||
|
set guitabtooltip=%!GuiTabToolTip()
|
||||||
|
|
||||||
|
" vim: set ts=4 sw=4 tw=78 ft=vim :
|
|
@ -0,0 +1,268 @@
|
||||||
|
" vim600: set foldmethod=marker:
|
||||||
|
"
|
||||||
|
" BZR extension for VCSCommand.
|
||||||
|
"
|
||||||
|
" Version: VCS development
|
||||||
|
" Maintainer: Bob Hiestand <bob.hiestand@gmail.com>
|
||||||
|
" License:
|
||||||
|
" Copyright (c) 2009 Bob Hiestand
|
||||||
|
"
|
||||||
|
" Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
" of this software and associated documentation files (the "Software"), to
|
||||||
|
" deal in the Software without restriction, including without limitation the
|
||||||
|
" rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||||
|
" sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
" furnished to do so, subject to the following conditions:
|
||||||
|
"
|
||||||
|
" The above copyright notice and this permission notice shall be included in
|
||||||
|
" all copies or substantial portions of the Software.
|
||||||
|
"
|
||||||
|
" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
" FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||||
|
" IN THE SOFTWARE.
|
||||||
|
"
|
||||||
|
" Section: Documentation {{{1
|
||||||
|
"
|
||||||
|
" Options documentation: {{{2
|
||||||
|
"
|
||||||
|
" VCSCommandBZRExec
|
||||||
|
" This variable specifies the BZR executable. If not set, it defaults to
|
||||||
|
" 'bzr' executed from the user's executable path.
|
||||||
|
|
||||||
|
" Section: Plugin header {{{1
|
||||||
|
|
||||||
|
if exists('VCSCommandDisableAll')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
if v:version < 700
|
||||||
|
echohl WarningMsg|echomsg 'VCSCommand requires at least VIM 7.0'|echohl None
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
runtime plugin/vcscommand.vim
|
||||||
|
|
||||||
|
if !executable(VCSCommandGetOption('VCSCommandBZRExec', 'bzr'))
|
||||||
|
" BZR is not installed
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
let s:save_cpo=&cpo
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
|
" Section: Variable initialization {{{1
|
||||||
|
|
||||||
|
let s:bzrFunctions = {}
|
||||||
|
|
||||||
|
" Section: Utility functions {{{1
|
||||||
|
|
||||||
|
" Function: s:Executable() {{{2
|
||||||
|
" Returns the executable used to invoke bzr suitable for use in a shell
|
||||||
|
" command.
|
||||||
|
function! s:Executable()
|
||||||
|
return shellescape(VCSCommandGetOption('VCSCommandBZRExec', 'bzr'))
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:DoCommand(cmd, cmdName, statusText) {{{2
|
||||||
|
" Wrapper to VCSCommandDoCommand to add the name of the BZR executable to the
|
||||||
|
" command argument.
|
||||||
|
function! s:DoCommand(cmd, cmdName, statusText, options)
|
||||||
|
if VCSCommandGetVCSType(expand('%')) == 'BZR'
|
||||||
|
let fullCmd = s:Executable() . ' ' . a:cmd
|
||||||
|
return VCSCommandDoCommand(fullCmd, a:cmdName, a:statusText, a:options)
|
||||||
|
else
|
||||||
|
throw 'BZR VCSCommand plugin called on non-BZR item.'
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Section: VCS function implementations {{{1
|
||||||
|
|
||||||
|
" Function: s:bzrFunctions.Identify(buffer) {{{2
|
||||||
|
function! s:bzrFunctions.Identify(buffer)
|
||||||
|
let fileName = resolve(bufname(a:buffer))
|
||||||
|
let statusText = s:VCSCommandUtility.system(s:Executable() . ' info -- "' . fileName . '"')
|
||||||
|
if(v:shell_error)
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:bzrFunctions.Add() {{{2
|
||||||
|
function! s:bzrFunctions.Add(argList)
|
||||||
|
return s:DoCommand(join(['add'] + a:argList, ' '), 'add', join(a:argList, ' '), {})
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:bzrFunctions.Annotate(argList) {{{2
|
||||||
|
function! s:bzrFunctions.Annotate(argList)
|
||||||
|
if len(a:argList) == 0
|
||||||
|
if &filetype == 'BZRAnnotate'
|
||||||
|
" Perform annotation of the version indicated by the current line.
|
||||||
|
let caption = matchstr(getline('.'),'\v^\s+\zs\d+')
|
||||||
|
let options = ' -r' . caption
|
||||||
|
else
|
||||||
|
let caption = ''
|
||||||
|
let options = ''
|
||||||
|
endif
|
||||||
|
elseif len(a:argList) == 1 && a:argList[0] !~ '^-'
|
||||||
|
let caption = a:argList[0]
|
||||||
|
let options = ' -r' . caption
|
||||||
|
else
|
||||||
|
let caption = join(a:argList, ' ')
|
||||||
|
let options = ' ' . caption
|
||||||
|
endif
|
||||||
|
|
||||||
|
let resultBuffer = s:DoCommand('blame' . options, 'annotate', caption, {})
|
||||||
|
if resultBuffer > 0
|
||||||
|
normal 1G2dd
|
||||||
|
set filetype=BZRAnnotate
|
||||||
|
endif
|
||||||
|
return resultBuffer
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:bzrFunctions.Commit(argList) {{{2
|
||||||
|
function! s:bzrFunctions.Commit(argList)
|
||||||
|
let resultBuffer = s:DoCommand('commit -F "' . a:argList[0] . '"', 'commit', '', {})
|
||||||
|
if resultBuffer == 0
|
||||||
|
echomsg 'No commit needed.'
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:bzrFunctions.Delete() {{{2
|
||||||
|
function! s:bzrFunctions.Delete(argList)
|
||||||
|
return s:DoCommand(join(['rm'] + a:argList, ' '), 'rm', join(a:argList, ' '), {})
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:bzrFunctions.Diff(argList) {{{2
|
||||||
|
function! s:bzrFunctions.Diff(argList)
|
||||||
|
if len(a:argList) == 0
|
||||||
|
let revOptions = []
|
||||||
|
let caption = ''
|
||||||
|
elseif len(a:argList) <= 2 && match(a:argList, '^-') == -1
|
||||||
|
let revOptions = ['-r' . join(a:argList, '..')]
|
||||||
|
let caption = '(' . a:argList[0] . ' : ' . get(a:argList, 1, 'current') . ')'
|
||||||
|
else
|
||||||
|
" Pass-through
|
||||||
|
let caption = join(a:argList, ' ')
|
||||||
|
let revOptions = a:argList
|
||||||
|
endif
|
||||||
|
|
||||||
|
let resultBuffer = s:DoCommand(join(['diff'] + revOptions), 'diff', caption, {'allowNonZeroExit': 1})
|
||||||
|
if resultBuffer > 0
|
||||||
|
set filetype=diff
|
||||||
|
else
|
||||||
|
echomsg 'No differences found'
|
||||||
|
endif
|
||||||
|
return resultBuffer
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:bzrFunctions.GetBufferInfo() {{{2
|
||||||
|
" Provides version control details for the current file. Current version
|
||||||
|
" number and current repository version number are required to be returned by
|
||||||
|
" the vcscommand plugin.
|
||||||
|
" Returns: List of results: [revision, repository]
|
||||||
|
|
||||||
|
function! s:bzrFunctions.GetBufferInfo()
|
||||||
|
let originalBuffer = VCSCommandGetOriginalBuffer(bufnr('%'))
|
||||||
|
let fileName = resolve(bufname(originalBuffer))
|
||||||
|
let statusText = s:VCSCommandUtility.system(s:Executable() . ' status -S -- "' . fileName . '"')
|
||||||
|
let revision = s:VCSCommandUtility.system(s:Executable() . ' revno -- "' . fileName . '"')
|
||||||
|
if(v:shell_error)
|
||||||
|
return []
|
||||||
|
endif
|
||||||
|
|
||||||
|
" File not under BZR control.
|
||||||
|
if statusText =~ '^?'
|
||||||
|
return ['Unknown']
|
||||||
|
endif
|
||||||
|
|
||||||
|
let [flags, repository] = matchlist(statusText, '^\(.\{3}\)\s\+\(\S\+\)')[1:2]
|
||||||
|
if revision == ''
|
||||||
|
" Error
|
||||||
|
return ['Unknown']
|
||||||
|
elseif flags =~ '^A'
|
||||||
|
return ['New', 'New']
|
||||||
|
else
|
||||||
|
return [revision, repository]
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:bzrFunctions.Info(argList) {{{2
|
||||||
|
function! s:bzrFunctions.Info(argList)
|
||||||
|
return s:DoCommand(join(['version-info'] + a:argList, ' '), 'version-info', join(a:argList, ' '), {})
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:bzrFunctions.Lock(argList) {{{2
|
||||||
|
function! s:bzrFunctions.Lock(argList)
|
||||||
|
echomsg 'bzr lock is not necessary'
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:bzrFunctions.Log() {{{2
|
||||||
|
function! s:bzrFunctions.Log(argList)
|
||||||
|
if len(a:argList) == 0
|
||||||
|
let options = []
|
||||||
|
let caption = ''
|
||||||
|
elseif len(a:argList) <= 2 && match(a:argList, '^-') == -1
|
||||||
|
let options = ['-r' . join(a:argList, ':')]
|
||||||
|
let caption = options[0]
|
||||||
|
else
|
||||||
|
" Pass-through
|
||||||
|
let options = a:argList
|
||||||
|
let caption = join(a:argList, ' ')
|
||||||
|
endif
|
||||||
|
|
||||||
|
let resultBuffer = s:DoCommand(join(['log', '-v'] + options), 'log', caption, {})
|
||||||
|
return resultBuffer
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:bzrFunctions.Revert(argList) {{{2
|
||||||
|
function! s:bzrFunctions.Revert(argList)
|
||||||
|
return s:DoCommand('revert', 'revert', '', {})
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:bzrFunctions.Review(argList) {{{2
|
||||||
|
function! s:bzrFunctions.Review(argList)
|
||||||
|
if len(a:argList) == 0
|
||||||
|
let versiontag = '(current)'
|
||||||
|
let versionOption = ''
|
||||||
|
else
|
||||||
|
let versiontag = a:argList[0]
|
||||||
|
let versionOption = ' -r ' . versiontag . ' '
|
||||||
|
endif
|
||||||
|
|
||||||
|
let resultBuffer = s:DoCommand('cat' . versionOption, 'review', versiontag, {})
|
||||||
|
if resultBuffer > 0
|
||||||
|
let &filetype=getbufvar(b:VCSCommandOriginalBuffer, '&filetype')
|
||||||
|
endif
|
||||||
|
return resultBuffer
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:bzrFunctions.Status(argList) {{{2
|
||||||
|
function! s:bzrFunctions.Status(argList)
|
||||||
|
let options = ['-S']
|
||||||
|
if len(a:argList) == 0
|
||||||
|
let options = a:argList
|
||||||
|
endif
|
||||||
|
return s:DoCommand(join(['status'] + options, ' '), 'status', join(options, ' '), {})
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:bzrFunctions.Unlock(argList) {{{2
|
||||||
|
function! s:bzrFunctions.Unlock(argList)
|
||||||
|
echomsg 'bzr unlock is not necessary'
|
||||||
|
endfunction
|
||||||
|
" Function: s:bzrFunctions.Update(argList) {{{2
|
||||||
|
function! s:bzrFunctions.Update(argList)
|
||||||
|
return s:DoCommand('update', 'update', '', {})
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Annotate setting {{{2
|
||||||
|
let s:bzrFunctions.AnnotateSplitRegex = '^[^|]\+ | '
|
||||||
|
|
||||||
|
" Section: Plugin Registration {{{1
|
||||||
|
let s:VCSCommandUtility = VCSCommandRegisterModule('BZR', expand('<sfile>'), s:bzrFunctions, [])
|
||||||
|
|
||||||
|
let &cpo = s:save_cpo
|
|
@ -4,7 +4,6 @@
|
||||||
" Control Systems, such as CVS, SVN, SVK, and git.
|
" Control Systems, such as CVS, SVN, SVK, and git.
|
||||||
"
|
"
|
||||||
" Maintainer: Bob Hiestand <bob.hiestand@gmail.com>
|
" Maintainer: Bob Hiestand <bob.hiestand@gmail.com>
|
||||||
" Version: Beta 29
|
|
||||||
" License:
|
" License:
|
||||||
" Copyright (c) 2008 Bob Hiestand
|
" Copyright (c) 2008 Bob Hiestand
|
||||||
"
|
"
|
||||||
|
@ -33,18 +32,17 @@
|
||||||
" directory and all subdirectories associated with the current buffer). The
|
" directory and all subdirectories associated with the current buffer). The
|
||||||
" output of the commands is captured in a new scratch window.
|
" output of the commands is captured in a new scratch window.
|
||||||
"
|
"
|
||||||
" This plugin needs additional extension plugins, each specific to a source
|
" This plugin needs additional extension plugins, each specific to a source
|
||||||
" control system, to function. Those plugins should be placed in a
|
" control system, to function. Several options include the name of the
|
||||||
" subdirectory of the standard plugin directory named 'vcscommand'. Several
|
" version control system in the option name. Such options use the placeholder
|
||||||
" options include the name of the version control system in the option name.
|
" text '{VCSType}', which would be replaced in actual usage with 'CVS' or
|
||||||
" Such options use the placeholder text '{VCSType}', which would be replaced
|
" 'SVN', for instance.
|
||||||
" in actual usage with 'CVS' or 'SVN', for instance.
|
|
||||||
"
|
"
|
||||||
" Command documentation {{{2
|
" Command documentation {{{2
|
||||||
"
|
"
|
||||||
" VCSAdd Adds the current file to source control.
|
" VCSAdd Adds the current file to source control.
|
||||||
"
|
"
|
||||||
" VCSAnnotate Displays the current file with each line annotated with the
|
" VCSAnnotate[!] Displays the current file with each line annotated with the
|
||||||
" version in which it was most recently changed. If an
|
" version in which it was most recently changed. If an
|
||||||
" argument is given, the argument is used as a revision
|
" argument is given, the argument is used as a revision
|
||||||
" number to display. If not given an argument, it uses the
|
" number to display. If not given an argument, it uses the
|
||||||
|
@ -52,6 +50,10 @@
|
||||||
" Additionally, if the current buffer is a VCSAnnotate buffer
|
" Additionally, if the current buffer is a VCSAnnotate buffer
|
||||||
" already, the version number on the current line is used.
|
" already, the version number on the current line is used.
|
||||||
"
|
"
|
||||||
|
" If '!' is used, the view of the annotated buffer is split
|
||||||
|
" so that the annotation is in a separate window from the
|
||||||
|
" content, and each is highlighted separately.
|
||||||
|
"
|
||||||
" VCSBlame Alias for 'VCSAnnotate'.
|
" VCSBlame Alias for 'VCSAnnotate'.
|
||||||
"
|
"
|
||||||
" VCSCommit[!] Commits changes to the current file to source control.
|
" VCSCommit[!] Commits changes to the current file to source control.
|
||||||
|
@ -152,6 +154,7 @@
|
||||||
"
|
"
|
||||||
" <Leader>ca VCSAdd
|
" <Leader>ca VCSAdd
|
||||||
" <Leader>cn VCSAnnotate
|
" <Leader>cn VCSAnnotate
|
||||||
|
" <Leader>cN VCSAnnotate!
|
||||||
" <Leader>cc VCSCommit
|
" <Leader>cc VCSCommit
|
||||||
" <Leader>cD VCSDelete
|
" <Leader>cD VCSDelete
|
||||||
" <Leader>cd VCSDiff
|
" <Leader>cd VCSDiff
|
||||||
|
@ -331,6 +334,9 @@ let g:VCSCOMMAND_IDENTIFY_INEXACT = -1
|
||||||
|
|
||||||
" Section: Script variable initialization {{{1
|
" Section: Script variable initialization {{{1
|
||||||
|
|
||||||
|
" Hidden functions for use by extensions
|
||||||
|
let s:VCSCommandUtility = {}
|
||||||
|
|
||||||
" plugin-specific information: {vcs -> [script, {command -> function}, {key -> mapping}]}
|
" plugin-specific information: {vcs -> [script, {command -> function}, {key -> mapping}]}
|
||||||
let s:plugins = {}
|
let s:plugins = {}
|
||||||
|
|
||||||
|
@ -359,6 +365,23 @@ function! s:ReportError(error)
|
||||||
echohl WarningMsg|echomsg 'VCSCommand: ' . a:error|echohl None
|
echohl WarningMsg|echomsg 'VCSCommand: ' . a:error|echohl None
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
" Function s:VCSCommandUtility.system(...) {{{2
|
||||||
|
" Replacement for system() function. This version protects the quoting in the
|
||||||
|
" command line on Windows systems.
|
||||||
|
|
||||||
|
function! s:VCSCommandUtility.system(...)
|
||||||
|
if (has("win32") || has("win64")) && &sxq !~ '"'
|
||||||
|
let save_sxq = &sxq
|
||||||
|
set sxq=\"
|
||||||
|
endif
|
||||||
|
try
|
||||||
|
return call('system', a:000)
|
||||||
|
finally
|
||||||
|
if exists("save_sxq")
|
||||||
|
let &sxq = save_sxq
|
||||||
|
endif
|
||||||
|
endtry
|
||||||
|
endfunction
|
||||||
|
|
||||||
" Function: s:CreateMapping(shortcut, expansion, display) {{{2
|
" Function: s:CreateMapping(shortcut, expansion, display) {{{2
|
||||||
" Creates the given mapping by prepending the contents of
|
" Creates the given mapping by prepending the contents of
|
||||||
|
@ -480,15 +503,6 @@ endfunction
|
||||||
function! s:EditFile(command, originalBuffer, statusText)
|
function! s:EditFile(command, originalBuffer, statusText)
|
||||||
let vcsType = getbufvar(a:originalBuffer, 'VCSCommandVCSType')
|
let vcsType = getbufvar(a:originalBuffer, 'VCSCommandVCSType')
|
||||||
|
|
||||||
let nameExtension = VCSCommandGetOption('VCSCommandResultBufferNameExtension', '')
|
|
||||||
if nameExtension == ''
|
|
||||||
let nameFunction = VCSCommandGetOption('VCSCommandResultBufferNameFunction', 's:GenerateResultBufferName')
|
|
||||||
else
|
|
||||||
let nameFunction = VCSCommandGetOption('VCSCommandResultBufferNameFunction', 's:GenerateResultBufferNameWithExtension')
|
|
||||||
endif
|
|
||||||
|
|
||||||
let resultBufferName = call(nameFunction, [a:command, a:originalBuffer, vcsType, a:statusText])
|
|
||||||
|
|
||||||
" Protect against useless buffer set-up
|
" Protect against useless buffer set-up
|
||||||
let s:isEditFileRunning += 1
|
let s:isEditFileRunning += 1
|
||||||
try
|
try
|
||||||
|
@ -503,28 +517,45 @@ function! s:EditFile(command, originalBuffer, statusText)
|
||||||
|
|
||||||
enew
|
enew
|
||||||
|
|
||||||
let b:VCSCommandCommand = a:command
|
call s:SetupScratchBuffer(a:command, vcsType, a:originalBuffer, a:statusText)
|
||||||
let b:VCSCommandOriginalBuffer = a:originalBuffer
|
|
||||||
let b:VCSCommandSourceFile = bufname(a:originalBuffer)
|
|
||||||
let b:VCSCommandVCSType = vcsType
|
|
||||||
|
|
||||||
setlocal buftype=nofile
|
|
||||||
setlocal noswapfile
|
|
||||||
let &filetype = vcsType . a:command
|
|
||||||
|
|
||||||
if a:statusText != ''
|
|
||||||
let b:VCSCommandStatusText = a:statusText
|
|
||||||
endif
|
|
||||||
|
|
||||||
if VCSCommandGetOption('VCSCommandDeleteOnHide', 0)
|
|
||||||
setlocal bufhidden=delete
|
|
||||||
endif
|
|
||||||
silent noautocmd file `=resultBufferName`
|
|
||||||
finally
|
finally
|
||||||
let s:isEditFileRunning -= 1
|
let s:isEditFileRunning -= 1
|
||||||
endtry
|
endtry
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:SetupScratchBuffer(command, vcsType, originalBuffer, statusText) {{{2
|
||||||
|
" Creates convenience buffer variables and the name of a vcscommand result
|
||||||
|
" buffer.
|
||||||
|
|
||||||
|
function! s:SetupScratchBuffer(command, vcsType, originalBuffer, statusText)
|
||||||
|
let nameExtension = VCSCommandGetOption('VCSCommandResultBufferNameExtension', '')
|
||||||
|
if nameExtension == ''
|
||||||
|
let nameFunction = VCSCommandGetOption('VCSCommandResultBufferNameFunction', 's:GenerateResultBufferName')
|
||||||
|
else
|
||||||
|
let nameFunction = VCSCommandGetOption('VCSCommandResultBufferNameFunction', 's:GenerateResultBufferNameWithExtension')
|
||||||
|
endif
|
||||||
|
|
||||||
|
let name = call(nameFunction, [a:command, a:originalBuffer, a:vcsType, a:statusText])
|
||||||
|
|
||||||
|
let b:VCSCommandCommand = a:command
|
||||||
|
let b:VCSCommandOriginalBuffer = a:originalBuffer
|
||||||
|
let b:VCSCommandSourceFile = bufname(a:originalBuffer)
|
||||||
|
let b:VCSCommandVCSType = a:vcsType
|
||||||
|
if a:statusText != ''
|
||||||
|
let b:VCSCommandStatusText = a:statusText
|
||||||
|
endif
|
||||||
|
|
||||||
|
setlocal buftype=nofile
|
||||||
|
setlocal noswapfile
|
||||||
|
let &filetype = a:vcsType . a:command
|
||||||
|
|
||||||
|
if VCSCommandGetOption('VCSCommandDeleteOnHide', 0)
|
||||||
|
setlocal bufhidden=delete
|
||||||
|
endif
|
||||||
|
silent noautocmd file `=name`
|
||||||
|
endfunction
|
||||||
|
|
||||||
" Function: s:SetupBuffer() {{{2
|
" Function: s:SetupBuffer() {{{2
|
||||||
" Attempts to set the b:VCSCommandBufferInfo variable
|
" Attempts to set the b:VCSCommandBufferInfo variable
|
||||||
|
|
||||||
|
@ -667,6 +698,43 @@ endfunction
|
||||||
|
|
||||||
" Section: Generic VCS command functions {{{1
|
" Section: Generic VCS command functions {{{1
|
||||||
|
|
||||||
|
" Function: s:VCSAnnotate(...) {{{2
|
||||||
|
function! s:VCSAnnotate(bang, ...)
|
||||||
|
try
|
||||||
|
let annotateBuffer = s:ExecuteVCSCommand('Annotate', a:000)
|
||||||
|
if annotateBuffer == -1
|
||||||
|
return -1
|
||||||
|
endif
|
||||||
|
if a:bang == '!' && VCSCommandGetOption('VCSCommandDisableSplitAnnotate', 0) == 0
|
||||||
|
let vcsType = VCSCommandGetVCSType(annotateBuffer)
|
||||||
|
let functionMap = s:plugins[vcsType][1]
|
||||||
|
let splitRegex = ''
|
||||||
|
if has_key(s:plugins[vcsType][1], 'AnnotateSplitRegex')
|
||||||
|
let splitRegex = s:plugins[vcsType][1]['AnnotateSplitRegex']
|
||||||
|
endif
|
||||||
|
let splitRegex = VCSCommandGetOption('VCSCommand' . vcsType . 'AnnotateSplitRegex', splitRegex)
|
||||||
|
if splitRegex == ''
|
||||||
|
return annotateBuffer
|
||||||
|
endif
|
||||||
|
let originalBuffer = VCSCommandGetOriginalBuffer(annotateBuffer)
|
||||||
|
let originalFileType = getbufvar(originalBuffer, '&ft')
|
||||||
|
let annotateFileType = getbufvar(annotateBuffer, '&ft')
|
||||||
|
execute "normal 0zR\<c-v>G/" . splitRegex . "/e\<cr>d"
|
||||||
|
call setbufvar('%', '&filetype', getbufvar(originalBuffer, '&filetype'))
|
||||||
|
set scrollbind
|
||||||
|
leftabove vert new
|
||||||
|
normal 0P
|
||||||
|
execute "normal" . col('$') . "\<c-w>|"
|
||||||
|
call s:SetupScratchBuffer('annotate', vcsType, originalBuffer, 'header')
|
||||||
|
wincmd l
|
||||||
|
endif
|
||||||
|
return annotateBuffer
|
||||||
|
catch
|
||||||
|
call s:ReportError(v:exception)
|
||||||
|
return -1
|
||||||
|
endtry
|
||||||
|
endfunction
|
||||||
|
|
||||||
" Function: s:VCSCommit() {{{2
|
" Function: s:VCSCommit() {{{2
|
||||||
function! s:VCSCommit(bang, message)
|
function! s:VCSCommit(bang, message)
|
||||||
try
|
try
|
||||||
|
@ -997,6 +1065,7 @@ function! VCSCommandRegisterModule(name, path, commandMap, mappingMap)
|
||||||
call s:CreateMapping(shortcut, expansion, a:name . " extension mapping " . shortcut)
|
call s:CreateMapping(shortcut, expansion, a:name . " extension mapping " . shortcut)
|
||||||
endfor
|
endfor
|
||||||
endif
|
endif
|
||||||
|
return s:VCSCommandUtility
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Function: VCSCommandDoCommand(cmd, cmdName, statusText, [options]) {{{2
|
" Function: VCSCommandDoCommand(cmd, cmdName, statusText, [options]) {{{2
|
||||||
|
@ -1036,7 +1105,7 @@ function! VCSCommandDoCommand(cmd, cmdName, statusText, options)
|
||||||
if match(a:cmd, '<VCSCOMMANDFILE>') > 0
|
if match(a:cmd, '<VCSCOMMANDFILE>') > 0
|
||||||
let fullCmd = substitute(a:cmd, '<VCSCOMMANDFILE>', fileName, 'g')
|
let fullCmd = substitute(a:cmd, '<VCSCOMMANDFILE>', fileName, 'g')
|
||||||
else
|
else
|
||||||
let fullCmd = a:cmd . ' "' . fileName . '"'
|
let fullCmd = a:cmd . ' -- "' . fileName . '"'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Change to the directory of the current buffer. This is done for CVS, but
|
" Change to the directory of the current buffer. This is done for CVS, but
|
||||||
|
@ -1044,7 +1113,7 @@ function! VCSCommandDoCommand(cmd, cmdName, statusText, options)
|
||||||
|
|
||||||
let oldCwd = VCSCommandChangeToCurrentFileDir(path)
|
let oldCwd = VCSCommandChangeToCurrentFileDir(path)
|
||||||
try
|
try
|
||||||
let output = system(fullCmd)
|
let output = s:VCSCommandUtility.system(fullCmd)
|
||||||
finally
|
finally
|
||||||
call VCSCommandChdir(oldCwd)
|
call VCSCommandChdir(oldCwd)
|
||||||
endtry
|
endtry
|
||||||
|
@ -1163,8 +1232,8 @@ endfunction
|
||||||
" Section: Command definitions {{{1
|
" Section: Command definitions {{{1
|
||||||
" Section: Primary commands {{{2
|
" Section: Primary commands {{{2
|
||||||
com! -nargs=* VCSAdd call s:MarkOrigBufferForSetup(s:ExecuteVCSCommand('Add', [<f-args>]))
|
com! -nargs=* VCSAdd call s:MarkOrigBufferForSetup(s:ExecuteVCSCommand('Add', [<f-args>]))
|
||||||
com! -nargs=* VCSAnnotate call s:ExecuteVCSCommand('Annotate', [<f-args>])
|
com! -nargs=* -bang VCSAnnotate call s:VCSAnnotate(<q-bang>, <f-args>)
|
||||||
com! -nargs=* VCSBlame call s:ExecuteVCSCommand('Annotate', [<f-args>])
|
com! -nargs=* -bang VCSBlame call s:VCSAnnotate(<q-bang>, <f-args>)
|
||||||
com! -nargs=? -bang VCSCommit call s:VCSCommit(<q-bang>, <q-args>)
|
com! -nargs=? -bang VCSCommit call s:VCSCommit(<q-bang>, <q-args>)
|
||||||
com! -nargs=* VCSDelete call s:ExecuteVCSCommand('Delete', [<f-args>])
|
com! -nargs=* VCSDelete call s:ExecuteVCSCommand('Delete', [<f-args>])
|
||||||
com! -nargs=* VCSDiff call s:ExecuteVCSCommand('Diff', [<f-args>])
|
com! -nargs=* VCSDiff call s:ExecuteVCSCommand('Diff', [<f-args>])
|
||||||
|
@ -1200,6 +1269,7 @@ nnoremap <silent> <Plug>VCSLock :VCSLock<CR>
|
||||||
nnoremap <silent> <Plug>VCSLog :VCSLog<CR>
|
nnoremap <silent> <Plug>VCSLog :VCSLog<CR>
|
||||||
nnoremap <silent> <Plug>VCSRevert :VCSRevert<CR>
|
nnoremap <silent> <Plug>VCSRevert :VCSRevert<CR>
|
||||||
nnoremap <silent> <Plug>VCSReview :VCSReview<CR>
|
nnoremap <silent> <Plug>VCSReview :VCSReview<CR>
|
||||||
|
nnoremap <silent> <Plug>VCSSplitAnnotate :VCSAnnotate!<CR>
|
||||||
nnoremap <silent> <Plug>VCSStatus :VCSStatus<CR>
|
nnoremap <silent> <Plug>VCSStatus :VCSStatus<CR>
|
||||||
nnoremap <silent> <Plug>VCSUnlock :VCSUnlock<CR>
|
nnoremap <silent> <Plug>VCSUnlock :VCSUnlock<CR>
|
||||||
nnoremap <silent> <Plug>VCSUpdate :VCSUpdate<CR>
|
nnoremap <silent> <Plug>VCSUpdate :VCSUpdate<CR>
|
||||||
|
@ -1217,6 +1287,7 @@ let s:defaultMappings = [
|
||||||
\['i', 'VCSInfo'],
|
\['i', 'VCSInfo'],
|
||||||
\['L', 'VCSLock'],
|
\['L', 'VCSLock'],
|
||||||
\['l', 'VCSLog'],
|
\['l', 'VCSLog'],
|
||||||
|
\['N', 'VCSSplitAnnotate'],
|
||||||
\['n', 'VCSAnnotate'],
|
\['n', 'VCSAnnotate'],
|
||||||
\['q', 'VCSRevert'],
|
\['q', 'VCSRevert'],
|
||||||
\['r', 'VCSReview'],
|
\['r', 'VCSReview'],
|
||||||
|
|
|
@ -106,23 +106,40 @@ let s:cvsFunctions = {}
|
||||||
|
|
||||||
" Section: Utility functions {{{1
|
" Section: Utility functions {{{1
|
||||||
|
|
||||||
|
" Function: s:Executable() {{{2
|
||||||
|
" Returns the executable used to invoke cvs suitable for use in a shell
|
||||||
|
" command.
|
||||||
|
function! s:Executable()
|
||||||
|
return shellescape(VCSCommandGetOption('VCSCommandCVSExec', 'cvs'))
|
||||||
|
endfunction
|
||||||
|
|
||||||
" Function: s:DoCommand(cmd, cmdName, statusText, options) {{{2
|
" Function: s:DoCommand(cmd, cmdName, statusText, options) {{{2
|
||||||
" Wrapper to VCSCommandDoCommand to add the name of the CVS executable to the
|
" Wrapper to VCSCommandDoCommand to add the name of the CVS executable to the
|
||||||
" command argument.
|
" command argument.
|
||||||
function! s:DoCommand(cmd, cmdName, statusText, options)
|
function! s:DoCommand(cmd, cmdName, statusText, options)
|
||||||
if VCSCommandGetVCSType(expand('%')) == 'CVS'
|
if VCSCommandGetVCSType(expand('%')) == 'CVS'
|
||||||
let fullCmd = VCSCommandGetOption('VCSCommandCVSExec', 'cvs') . ' ' . a:cmd
|
let fullCmd = s:Executable() . ' ' . a:cmd
|
||||||
return VCSCommandDoCommand(fullCmd, a:cmdName, a:statusText, a:options)
|
let ret = VCSCommandDoCommand(fullCmd, a:cmdName, a:statusText, a:options)
|
||||||
|
|
||||||
|
if ret > 0
|
||||||
|
if getline(line('$')) =~ '^cvs \w\+: closing down connection'
|
||||||
|
$d
|
||||||
|
1
|
||||||
|
endif
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
return ret
|
||||||
else
|
else
|
||||||
throw 'CVS VCSCommand plugin called on non-CVS item.'
|
throw 'CVS VCSCommand plugin called on non-CVS item.'
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Function: GetRevision() {{{2
|
" Function: s:GetRevision() {{{2
|
||||||
" Function for retrieving the current buffer's revision number.
|
" Function for retrieving the current buffer's revision number.
|
||||||
" Returns: Revision number or an empty string if an error occurs.
|
" Returns: Revision number or an empty string if an error occurs.
|
||||||
|
|
||||||
function! GetRevision()
|
function! s:GetRevision()
|
||||||
if !exists('b:VCSCommandBufferInfo')
|
if !exists('b:VCSCommandBufferInfo')
|
||||||
let b:VCSCommandBufferInfo = s:cvsFunctions.GetBufferInfo()
|
let b:VCSCommandBufferInfo = s:cvsFunctions.GetBufferInfo()
|
||||||
endif
|
endif
|
||||||
|
@ -187,7 +204,7 @@ function! s:cvsFunctions.Annotate(argList)
|
||||||
" CVS defaults to pulling HEAD, regardless of current branch.
|
" CVS defaults to pulling HEAD, regardless of current branch.
|
||||||
" Therefore, always pass desired revision.
|
" Therefore, always pass desired revision.
|
||||||
let caption = ''
|
let caption = ''
|
||||||
let options = ['-r' . GetRevision()]
|
let options = ['-r' . s:GetRevision()]
|
||||||
endif
|
endif
|
||||||
elseif len(a:argList) == 1 && a:argList[0] !~ '^-'
|
elseif len(a:argList) == 1 && a:argList[0] !~ '^-'
|
||||||
let caption = a:argList[0]
|
let caption = a:argList[0]
|
||||||
|
@ -284,7 +301,7 @@ function! s:cvsFunctions.GetBufferInfo()
|
||||||
endif
|
endif
|
||||||
let oldCwd = VCSCommandChangeToCurrentFileDir(fileName)
|
let oldCwd = VCSCommandChangeToCurrentFileDir(fileName)
|
||||||
try
|
try
|
||||||
let statusText=system(VCSCommandGetOption('VCSCommandCVSExec', 'cvs') . ' status "' . realFileName . '"')
|
let statusText=s:VCSCommandUtility.system(s:Executable() . ' status -- "' . realFileName . '"')
|
||||||
if(v:shell_error)
|
if(v:shell_error)
|
||||||
return []
|
return []
|
||||||
endif
|
endif
|
||||||
|
@ -391,6 +408,9 @@ function! s:CVSWatchers()
|
||||||
return s:DoCommand('watchers', 'cvswatchers', '', {})
|
return s:DoCommand('watchers', 'cvswatchers', '', {})
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
" Annotate setting {{{2
|
||||||
|
let s:cvsFunctions.AnnotateSplitRegex = '): '
|
||||||
|
|
||||||
" Section: Command definitions {{{1
|
" Section: Command definitions {{{1
|
||||||
" Section: Primary commands {{{2
|
" Section: Primary commands {{{2
|
||||||
com! CVSEdit call s:CVSEdit()
|
com! CVSEdit call s:CVSEdit()
|
||||||
|
@ -425,7 +445,6 @@ for [pluginName, commandText, shortCut] in mappingInfo
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
" Section: Menu items {{{1
|
" Section: Menu items {{{1
|
||||||
silent! aunmenu Plugin.VCS.CVS
|
|
||||||
amenu <silent> &Plugin.VCS.CVS.&Edit <Plug>CVSEdit
|
amenu <silent> &Plugin.VCS.CVS.&Edit <Plug>CVSEdit
|
||||||
amenu <silent> &Plugin.VCS.CVS.Ed&itors <Plug>CVSEditors
|
amenu <silent> &Plugin.VCS.CVS.Ed&itors <Plug>CVSEditors
|
||||||
amenu <silent> &Plugin.VCS.CVS.Unedi&t <Plug>CVSUnedit
|
amenu <silent> &Plugin.VCS.CVS.Unedi&t <Plug>CVSUnedit
|
||||||
|
@ -436,6 +455,6 @@ amenu <silent> &Plugin.VCS.CVS.WatchOff <Plug>CVSWatchOff
|
||||||
amenu <silent> &Plugin.VCS.CVS.WatchRemove <Plug>CVSWatchRemove
|
amenu <silent> &Plugin.VCS.CVS.WatchRemove <Plug>CVSWatchRemove
|
||||||
|
|
||||||
" Section: Plugin Registration {{{1
|
" Section: Plugin Registration {{{1
|
||||||
call VCSCommandRegisterModule('CVS', expand('<sfile>'), s:cvsFunctions, s:cvsExtensionMappings)
|
let s:VCSCommandUtility = VCSCommandRegisterModule('CVS', expand('<sfile>'), s:cvsFunctions, s:cvsExtensionMappings)
|
||||||
|
|
||||||
let &cpo = s:save_cpo
|
let &cpo = s:save_cpo
|
||||||
|
|
|
@ -65,12 +65,19 @@ let s:gitFunctions = {}
|
||||||
|
|
||||||
" Section: Utility functions {{{1
|
" Section: Utility functions {{{1
|
||||||
|
|
||||||
|
" Function: s:Executable() {{{2
|
||||||
|
" Returns the executable used to invoke git suitable for use in a shell
|
||||||
|
" command.
|
||||||
|
function! s:Executable()
|
||||||
|
return shellescape(VCSCommandGetOption('VCSCommandGitExec', 'git'))
|
||||||
|
endfunction
|
||||||
|
|
||||||
" Function: s:DoCommand(cmd, cmdName, statusText, options) {{{2
|
" Function: s:DoCommand(cmd, cmdName, statusText, options) {{{2
|
||||||
" Wrapper to VCSCommandDoCommand to add the name of the git executable to the
|
" Wrapper to VCSCommandDoCommand to add the name of the git executable to the
|
||||||
" command argument.
|
" command argument.
|
||||||
function! s:DoCommand(cmd, cmdName, statusText, options)
|
function! s:DoCommand(cmd, cmdName, statusText, options)
|
||||||
if VCSCommandGetVCSType(expand('%')) == 'git'
|
if VCSCommandGetVCSType(expand('%')) == 'git'
|
||||||
let fullCmd = VCSCommandGetOption('VCSCommandGitExec', 'git',) . ' ' . a:cmd
|
let fullCmd = s:Executable() . ' ' . a:cmd
|
||||||
return VCSCommandDoCommand(fullCmd, a:cmdName, a:statusText, a:options)
|
return VCSCommandDoCommand(fullCmd, a:cmdName, a:statusText, a:options)
|
||||||
else
|
else
|
||||||
throw 'git VCSCommand plugin called on non-git item.'
|
throw 'git VCSCommand plugin called on non-git item.'
|
||||||
|
@ -85,7 +92,7 @@ endfunction
|
||||||
function! s:gitFunctions.Identify(buffer)
|
function! s:gitFunctions.Identify(buffer)
|
||||||
let oldCwd = VCSCommandChangeToCurrentFileDir(resolve(bufname(a:buffer)))
|
let oldCwd = VCSCommandChangeToCurrentFileDir(resolve(bufname(a:buffer)))
|
||||||
try
|
try
|
||||||
call system(VCSCommandGetOption('VCSCommandGitExec', 'git') . ' rev-parse --is-inside-work-tree')
|
call s:VCSCommandUtility.system(s:Executable() . ' rev-parse --is-inside-work-tree')
|
||||||
if(v:shell_error)
|
if(v:shell_error)
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
|
@ -116,7 +123,7 @@ function! s:gitFunctions.Annotate(argList)
|
||||||
let options = join(a:argList, ' ')
|
let options = join(a:argList, ' ')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let resultBuffer = s:DoCommand('blame ' . options . ' -- ', 'annotate', options, {})
|
let resultBuffer = s:DoCommand('blame ' . options, 'annotate', options, {})
|
||||||
if resultBuffer > 0
|
if resultBuffer > 0
|
||||||
normal 1G
|
normal 1G
|
||||||
set filetype=gitAnnotate
|
set filetype=gitAnnotate
|
||||||
|
@ -177,7 +184,7 @@ endfunction
|
||||||
function! s:gitFunctions.GetBufferInfo()
|
function! s:gitFunctions.GetBufferInfo()
|
||||||
let oldCwd = VCSCommandChangeToCurrentFileDir(resolve(bufname('%')))
|
let oldCwd = VCSCommandChangeToCurrentFileDir(resolve(bufname('%')))
|
||||||
try
|
try
|
||||||
let branch = substitute(system(VCSCommandGetOption('VCSCommandGitExec', 'git') . ' symbolic-ref -q HEAD'), '\n$', '', '')
|
let branch = substitute(s:VCSCommandUtility.system(s:Executable() . ' symbolic-ref -q HEAD'), '\n$', '', '')
|
||||||
if v:shell_error
|
if v:shell_error
|
||||||
let branch = 'DETACHED'
|
let branch = 'DETACHED'
|
||||||
else
|
else
|
||||||
|
@ -190,7 +197,7 @@ function! s:gitFunctions.GetBufferInfo()
|
||||||
if method != ''
|
if method != ''
|
||||||
let method = ' --' . method
|
let method = ' --' . method
|
||||||
endif
|
endif
|
||||||
let tag = substitute(system(VCSCommandGetOption('VCSCommandGitExec', 'git') . ' describe' . method), '\n$', '', '')
|
let tag = substitute(s:VCSCommandUtility.system(s:Executable() . ' describe' . method), '\n$', '', '')
|
||||||
if !v:shell_error
|
if !v:shell_error
|
||||||
call add(info, tag)
|
call add(info, tag)
|
||||||
break
|
break
|
||||||
|
@ -227,7 +234,7 @@ function! s:gitFunctions.Review(argList)
|
||||||
|
|
||||||
let oldCwd = VCSCommandChangeToCurrentFileDir(resolve(bufname(VCSCommandGetOriginalBuffer('%'))))
|
let oldCwd = VCSCommandChangeToCurrentFileDir(resolve(bufname(VCSCommandGetOriginalBuffer('%'))))
|
||||||
try
|
try
|
||||||
let prefix = system(VCSCommandGetOption('VCSCommandGitExec', 'git') . ' rev-parse --show-prefix')
|
let prefix = s:VCSCommandUtility.system(s:Executable() . ' rev-parse --show-prefix')
|
||||||
finally
|
finally
|
||||||
call VCSCommandChdir(oldCwd)
|
call VCSCommandChdir(oldCwd)
|
||||||
endtry
|
endtry
|
||||||
|
@ -251,8 +258,10 @@ function! s:gitFunctions.Update(argList)
|
||||||
throw "This command is not implemented for git because file-by-file update doesn't make much sense in that context. If you have an idea for what it should do, please let me know."
|
throw "This command is not implemented for git because file-by-file update doesn't make much sense in that context. If you have an idea for what it should do, please let me know."
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
" Annotate setting {{{2
|
||||||
|
let s:gitFunctions.AnnotateSplitRegex = ') '
|
||||||
|
|
||||||
" Section: Plugin Registration {{{1
|
" Section: Plugin Registration {{{1
|
||||||
call VCSCommandRegisterModule('git', expand('<sfile>'), s:gitFunctions, [])
|
let s:VCSCommandUtility = VCSCommandRegisterModule('git', expand('<sfile>'), s:gitFunctions, [])
|
||||||
|
|
||||||
let &cpo = s:save_cpo
|
let &cpo = s:save_cpo
|
||||||
|
|
|
@ -0,0 +1,290 @@
|
||||||
|
" vim600: set foldmethod=marker:
|
||||||
|
"
|
||||||
|
" Mercurial extension for VCSCommand.
|
||||||
|
"
|
||||||
|
" Version: VCS development
|
||||||
|
" Maintainer: Bob Hiestand <bob.hiestand@gmail.com>
|
||||||
|
" License:
|
||||||
|
" Copyright (c) 2009 Bob Hiestand
|
||||||
|
"
|
||||||
|
" Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
" of this software and associated documentation files (the "Software"), to
|
||||||
|
" deal in the Software without restriction, including without limitation the
|
||||||
|
" rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||||
|
" sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
" furnished to do so, subject to the following conditions:
|
||||||
|
"
|
||||||
|
" The above copyright notice and this permission notice shall be included in
|
||||||
|
" all copies or substantial portions of the Software.
|
||||||
|
"
|
||||||
|
" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
" FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||||
|
" IN THE SOFTWARE.
|
||||||
|
"
|
||||||
|
" Section: Documentation {{{1
|
||||||
|
"
|
||||||
|
" Options documentation: {{{2
|
||||||
|
"
|
||||||
|
" VCSCommandHGExec
|
||||||
|
" This variable specifies the mercurial executable. If not set, it defaults
|
||||||
|
" to 'hg' executed from the user's executable path.
|
||||||
|
"
|
||||||
|
" VCSCommandHGDiffExt
|
||||||
|
" This variable, if set, sets the external diff program used by Subversion.
|
||||||
|
"
|
||||||
|
" VCSCommandHGDiffOpt
|
||||||
|
" This variable, if set, determines the options passed to the hg diff
|
||||||
|
" command (such as 'u', 'w', or 'b').
|
||||||
|
|
||||||
|
" Section: Plugin header {{{1
|
||||||
|
|
||||||
|
if exists('VCSCommandDisableAll')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
if v:version < 700
|
||||||
|
echohl WarningMsg|echomsg 'VCSCommand requires at least VIM 7.0'|echohl None
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
runtime plugin/vcscommand.vim
|
||||||
|
|
||||||
|
if !executable(VCSCommandGetOption('VCSCommandHGExec', 'hg'))
|
||||||
|
" HG is not installed
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
let s:save_cpo=&cpo
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
|
" Section: Variable initialization {{{1
|
||||||
|
|
||||||
|
let s:hgFunctions = {}
|
||||||
|
|
||||||
|
" Section: Utility functions {{{1
|
||||||
|
|
||||||
|
" Function: s:Executable() {{{2
|
||||||
|
" Returns the executable used to invoke hg suitable for use in a shell
|
||||||
|
" command.
|
||||||
|
function! s:Executable()
|
||||||
|
return shellescape(VCSCommandGetOption('VCSCommandHGExec', 'hg'))
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:DoCommand(cmd, cmdName, statusText, options) {{{2
|
||||||
|
" Wrapper to VCSCommandDoCommand to add the name of the HG executable to the
|
||||||
|
" command argument.
|
||||||
|
function! s:DoCommand(cmd, cmdName, statusText, options)
|
||||||
|
if VCSCommandGetVCSType(expand('%')) == 'HG'
|
||||||
|
let fullCmd = s:Executable() . ' ' . a:cmd
|
||||||
|
return VCSCommandDoCommand(fullCmd, a:cmdName, a:statusText, a:options)
|
||||||
|
else
|
||||||
|
throw 'HG VCSCommand plugin called on non-HG item.'
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Section: VCS function implementations {{{1
|
||||||
|
|
||||||
|
" Function: s:hgFunctions.Identify(buffer) {{{2
|
||||||
|
function! s:hgFunctions.Identify(buffer)
|
||||||
|
let oldCwd = VCSCommandChangeToCurrentFileDir(resolve(bufname(a:buffer)))
|
||||||
|
try
|
||||||
|
call s:VCSCommandUtility.system(s:Executable() . ' root')
|
||||||
|
if(v:shell_error)
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return g:VCSCOMMAND_IDENTIFY_INEXACT
|
||||||
|
endif
|
||||||
|
finally
|
||||||
|
call VCSCommandChdir(oldCwd)
|
||||||
|
endtry
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:hgFunctions.Add() {{{2
|
||||||
|
function! s:hgFunctions.Add(argList)
|
||||||
|
return s:DoCommand(join(['add'] + a:argList, ' '), 'add', join(a:argList, ' '), {})
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:hgFunctions.Annotate(argList) {{{2
|
||||||
|
function! s:hgFunctions.Annotate(argList)
|
||||||
|
if len(a:argList) == 0
|
||||||
|
if &filetype == 'HGAnnotate'
|
||||||
|
" Perform annotation of the version indicated by the current line.
|
||||||
|
let caption = matchstr(getline('.'),'\v^\s+\zs\d+')
|
||||||
|
let options = ' -r' . caption
|
||||||
|
else
|
||||||
|
let caption = ''
|
||||||
|
let options = ' -un'
|
||||||
|
endif
|
||||||
|
elseif len(a:argList) == 1 && a:argList[0] !~ '^-'
|
||||||
|
let caption = a:argList[0]
|
||||||
|
let options = ' -un -r' . caption
|
||||||
|
else
|
||||||
|
let caption = join(a:argList, ' ')
|
||||||
|
let options = ' ' . caption
|
||||||
|
endif
|
||||||
|
|
||||||
|
let resultBuffer = s:DoCommand('blame' . options, 'annotate', caption, {})
|
||||||
|
if resultBuffer > 0
|
||||||
|
set filetype=HGAnnotate
|
||||||
|
endif
|
||||||
|
return resultBuffer
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:hgFunctions.Commit(argList) {{{2
|
||||||
|
function! s:hgFunctions.Commit(argList)
|
||||||
|
let resultBuffer = s:DoCommand('commit -l "' . a:argList[0] . '"', 'commit', '', {})
|
||||||
|
if resultBuffer == 0
|
||||||
|
echomsg 'No commit needed.'
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:hgFunctions.Delete() {{{2
|
||||||
|
function! s:hgFunctions.Delete(argList)
|
||||||
|
return s:DoCommand(join(['remove'] + a:argList, ' '), 'remove', join(a:argList, ' '), {})
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:hgFunctions.Diff(argList) {{{2
|
||||||
|
function! s:hgFunctions.Diff(argList)
|
||||||
|
if len(a:argList) == 0
|
||||||
|
let revOptions = []
|
||||||
|
let caption = ''
|
||||||
|
elseif len(a:argList) <= 2 && match(a:argList, '^-') == -1
|
||||||
|
let revOptions = ['-r' . join(a:argList, ':')]
|
||||||
|
let caption = '(' . a:argList[0] . ' : ' . get(a:argList, 1, 'current') . ')'
|
||||||
|
else
|
||||||
|
" Pass-through
|
||||||
|
let caption = join(a:argList, ' ')
|
||||||
|
let revOptions = a:argList
|
||||||
|
endif
|
||||||
|
|
||||||
|
let hgDiffExt = VCSCommandGetOption('VCSCommandHGDiffExt', '')
|
||||||
|
if hgDiffExt == ''
|
||||||
|
let diffExt = []
|
||||||
|
else
|
||||||
|
let diffExt = ['--diff-cmd ' . hgDiffExt]
|
||||||
|
endif
|
||||||
|
|
||||||
|
let hgDiffOpt = VCSCommandGetOption('VCSCommandHGDiffOpt', '')
|
||||||
|
if hgDiffOpt == ''
|
||||||
|
let diffOptions = []
|
||||||
|
else
|
||||||
|
let diffOptions = ['-x -' . hgDiffOpt]
|
||||||
|
endif
|
||||||
|
|
||||||
|
let resultBuffer = s:DoCommand(join(['diff'] + diffExt + diffOptions + revOptions), 'diff', caption, {})
|
||||||
|
if resultBuffer > 0
|
||||||
|
set filetype=diff
|
||||||
|
else
|
||||||
|
if hgDiffExt == ''
|
||||||
|
echomsg 'No differences found'
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
return resultBuffer
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:hgFunctions.Info(argList) {{{2
|
||||||
|
function! s:hgFunctions.Info(argList)
|
||||||
|
return s:DoCommand(join(['log --limit 1'] + a:argList, ' '), 'log', join(a:argList, ' '), {})
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:hgFunctions.GetBufferInfo() {{{2
|
||||||
|
" Provides version control details for the current file. Current version
|
||||||
|
" number and current repository version number are required to be returned by
|
||||||
|
" the vcscommand plugin.
|
||||||
|
" Returns: List of results: [revision, repository, branch]
|
||||||
|
|
||||||
|
function! s:hgFunctions.GetBufferInfo()
|
||||||
|
let originalBuffer = VCSCommandGetOriginalBuffer(bufnr('%'))
|
||||||
|
let fileName = bufname(originalBuffer)
|
||||||
|
let statusText = s:VCSCommandUtility.system(s:Executable() . ' status -- "' . fileName . '"')
|
||||||
|
if(v:shell_error)
|
||||||
|
return []
|
||||||
|
endif
|
||||||
|
|
||||||
|
" File not under HG control.
|
||||||
|
if statusText =~ '^?'
|
||||||
|
return ['Unknown']
|
||||||
|
endif
|
||||||
|
|
||||||
|
let parentsText = s:VCSCommandUtility.system(s:Executable() . ' parents -- "' . fileName . '"')
|
||||||
|
let revision = matchlist(parentsText, '^changeset:\s\+\(\S\+\)\n')[1]
|
||||||
|
|
||||||
|
let logText = s:VCSCommandUtility.system(s:Executable() . ' log -- "' . fileName . '"')
|
||||||
|
let repository = matchlist(logText, '^changeset:\s\+\(\S\+\)\n')[1]
|
||||||
|
|
||||||
|
if revision == ''
|
||||||
|
" Error
|
||||||
|
return ['Unknown']
|
||||||
|
elseif statusText =~ '^A'
|
||||||
|
return ['New', 'New']
|
||||||
|
else
|
||||||
|
return [revision, repository]
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:hgFunctions.Log(argList) {{{2
|
||||||
|
function! s:hgFunctions.Log(argList)
|
||||||
|
if len(a:argList) == 0
|
||||||
|
let options = []
|
||||||
|
let caption = ''
|
||||||
|
elseif len(a:argList) <= 2 && match(a:argList, '^-') == -1
|
||||||
|
let options = ['-r' . join(a:argList, ':')]
|
||||||
|
let caption = options[0]
|
||||||
|
else
|
||||||
|
" Pass-through
|
||||||
|
let options = a:argList
|
||||||
|
let caption = join(a:argList, ' ')
|
||||||
|
endif
|
||||||
|
|
||||||
|
let resultBuffer = s:DoCommand(join(['log', '-v'] + options), 'log', caption, {})
|
||||||
|
return resultBuffer
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:hgFunctions.Revert(argList) {{{2
|
||||||
|
function! s:hgFunctions.Revert(argList)
|
||||||
|
return s:DoCommand('revert', 'revert', '', {})
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:hgFunctions.Review(argList) {{{2
|
||||||
|
function! s:hgFunctions.Review(argList)
|
||||||
|
if len(a:argList) == 0
|
||||||
|
let versiontag = '(current)'
|
||||||
|
let versionOption = ''
|
||||||
|
else
|
||||||
|
let versiontag = a:argList[0]
|
||||||
|
let versionOption = ' -r ' . versiontag . ' '
|
||||||
|
endif
|
||||||
|
|
||||||
|
" let resultBuffer = s:DoCommand('cat --non-interactive' . versionOption, 'review', versiontag, {})
|
||||||
|
let resultBuffer = s:DoCommand('cat' . versionOption, 'review', versiontag, {})
|
||||||
|
if resultBuffer > 0
|
||||||
|
let &filetype = getbufvar(b:VCSCommandOriginalBuffer, '&filetype')
|
||||||
|
endif
|
||||||
|
return resultBuffer
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:hgFunctions.Status(argList) {{{2
|
||||||
|
function! s:hgFunctions.Status(argList)
|
||||||
|
let options = ['-u', '-v']
|
||||||
|
if len(a:argList) == 0
|
||||||
|
let options = a:argList
|
||||||
|
endif
|
||||||
|
return s:DoCommand(join(['status'] + options, ' '), 'status', join(options, ' '), {})
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:hgFunctions.Update(argList) {{{2
|
||||||
|
function! s:hgFunctions.Update(argList)
|
||||||
|
return s:DoCommand('update', 'update', '', {})
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Annotate setting {{{2
|
||||||
|
let s:hgFunctions.AnnotateSplitRegex = '\d\+: '
|
||||||
|
|
||||||
|
" Section: Plugin Registration {{{1
|
||||||
|
let s:VCSCommandUtility = VCSCommandRegisterModule('HG', expand('<sfile>'), s:hgFunctions, [])
|
||||||
|
|
||||||
|
let &cpo = s:save_cpo
|
|
@ -60,12 +60,19 @@ let s:svkFunctions = {}
|
||||||
|
|
||||||
" Section: Utility functions {{{1
|
" Section: Utility functions {{{1
|
||||||
|
|
||||||
|
" Function: s:Executable() {{{2
|
||||||
|
" Returns the executable used to invoke SVK suitable for use in a shell
|
||||||
|
" command.
|
||||||
|
function! s:Executable()
|
||||||
|
return shellescape(VCSCommandGetOption('VCSCommandSVKExec', 'svk'))
|
||||||
|
endfunction
|
||||||
|
|
||||||
" Function: s:DoCommand(cmd, cmdName, statusText, options) {{{2
|
" Function: s:DoCommand(cmd, cmdName, statusText, options) {{{2
|
||||||
" Wrapper to VCSCommandDoCommand to add the name of the SVK executable to the
|
" Wrapper to VCSCommandDoCommand to add the name of the SVK executable to the
|
||||||
" command argument.
|
" command argument.
|
||||||
function! s:DoCommand(cmd, cmdName, statusText, options)
|
function! s:DoCommand(cmd, cmdName, statusText, options)
|
||||||
if VCSCommandGetVCSType(expand('%')) == 'SVK'
|
if VCSCommandGetVCSType(expand('%')) == 'SVK'
|
||||||
let fullCmd = VCSCommandGetOption('VCSCommandSVKExec', 'svk') . ' ' . a:cmd
|
let fullCmd = s:Executable() . ' ' . a:cmd
|
||||||
return VCSCommandDoCommand(fullCmd, a:cmdName, a:statusText, a:options)
|
return VCSCommandDoCommand(fullCmd, a:cmdName, a:statusText, a:options)
|
||||||
else
|
else
|
||||||
throw 'SVK VCSCommand plugin called on non-SVK item.'
|
throw 'SVK VCSCommand plugin called on non-SVK item.'
|
||||||
|
@ -82,7 +89,7 @@ function! s:svkFunctions.Identify(buffer)
|
||||||
else
|
else
|
||||||
let directoryName = fnamemodify(fileName, ':p:h')
|
let directoryName = fnamemodify(fileName, ':p:h')
|
||||||
endif
|
endif
|
||||||
let statusText = system(VCSCommandGetOption('VCSCommandSVKExec', 'svk') . ' info "' . directoryName . '"')
|
let statusText = s:VCSCommandUtility.system(s:Executable() . ' info -- "' . directoryName . '"', "no")
|
||||||
if(v:shell_error)
|
if(v:shell_error)
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
|
@ -167,7 +174,7 @@ endfunction
|
||||||
function! s:svkFunctions.GetBufferInfo()
|
function! s:svkFunctions.GetBufferInfo()
|
||||||
let originalBuffer = VCSCommandGetOriginalBuffer(bufnr('%'))
|
let originalBuffer = VCSCommandGetOriginalBuffer(bufnr('%'))
|
||||||
let fileName = resolve(bufname(originalBuffer))
|
let fileName = resolve(bufname(originalBuffer))
|
||||||
let statusText = system(VCSCommandGetOption('VCSCommandSVKExec', 'svk') . ' status -v "' . fileName . '"')
|
let statusText = s:VCSCommandUtility.system(s:Executable() . ' status -v -- "' . fileName . '"')
|
||||||
if(v:shell_error)
|
if(v:shell_error)
|
||||||
return []
|
return []
|
||||||
endif
|
endif
|
||||||
|
@ -257,6 +264,6 @@ function! s:svkFunctions.Update(argList)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Section: Plugin Registration {{{1
|
" Section: Plugin Registration {{{1
|
||||||
call VCSCommandRegisterModule('SVK', expand('<sfile>'), s:svkFunctions, [])
|
let s:VCSCommandUtility = VCSCommandRegisterModule('SVK', expand('<sfile>'), s:svkFunctions, [])
|
||||||
|
|
||||||
let &cpo = s:save_cpo
|
let &cpo = s:save_cpo
|
||||||
|
|
|
@ -67,12 +67,19 @@ let s:svnFunctions = {}
|
||||||
|
|
||||||
" Section: Utility functions {{{1
|
" Section: Utility functions {{{1
|
||||||
|
|
||||||
|
" Function: s:Executable() {{{2
|
||||||
|
" Returns the executable used to invoke git suitable for use in a shell
|
||||||
|
" command.
|
||||||
|
function! s:Executable()
|
||||||
|
return shellescape(VCSCommandGetOption('VCSCommandSVNExec', 'svn'))
|
||||||
|
endfunction
|
||||||
|
|
||||||
" Function: s:DoCommand(cmd, cmdName, statusText, options) {{{2
|
" Function: s:DoCommand(cmd, cmdName, statusText, options) {{{2
|
||||||
" Wrapper to VCSCommandDoCommand to add the name of the SVN executable to the
|
" Wrapper to VCSCommandDoCommand to add the name of the SVN executable to the
|
||||||
" command argument.
|
" command argument.
|
||||||
function! s:DoCommand(cmd, cmdName, statusText, options)
|
function! s:DoCommand(cmd, cmdName, statusText, options)
|
||||||
if VCSCommandGetVCSType(expand('%')) == 'SVN'
|
if VCSCommandGetVCSType(expand('%')) == 'SVN'
|
||||||
let fullCmd = VCSCommandGetOption('VCSCommandSVNExec', 'svn') . ' ' . a:cmd
|
let fullCmd = s:Executable() . ' ' . a:cmd
|
||||||
return VCSCommandDoCommand(fullCmd, a:cmdName, a:statusText, a:options)
|
return VCSCommandDoCommand(fullCmd, a:cmdName, a:statusText, a:options)
|
||||||
else
|
else
|
||||||
throw 'SVN VCSCommand plugin called on non-SVN item.'
|
throw 'SVN VCSCommand plugin called on non-SVN item.'
|
||||||
|
@ -193,7 +200,7 @@ endfunction
|
||||||
function! s:svnFunctions.GetBufferInfo()
|
function! s:svnFunctions.GetBufferInfo()
|
||||||
let originalBuffer = VCSCommandGetOriginalBuffer(bufnr('%'))
|
let originalBuffer = VCSCommandGetOriginalBuffer(bufnr('%'))
|
||||||
let fileName = bufname(originalBuffer)
|
let fileName = bufname(originalBuffer)
|
||||||
let statusText = system(VCSCommandGetOption('VCSCommandSVNExec', 'svn') . ' status --non-interactive -vu "' . fileName . '"')
|
let statusText = s:VCSCommandUtility.system(s:Executable() . ' status --non-interactive -vu -- "' . fileName . '"')
|
||||||
if(v:shell_error)
|
if(v:shell_error)
|
||||||
return []
|
return []
|
||||||
endif
|
endif
|
||||||
|
@ -277,12 +284,16 @@ endfunction
|
||||||
function! s:svnFunctions.Unlock(argList)
|
function! s:svnFunctions.Unlock(argList)
|
||||||
return s:DoCommand(join(['unlock --non-interactive'] + a:argList, ' '), 'unlock', join(a:argList, ' '), {})
|
return s:DoCommand(join(['unlock --non-interactive'] + a:argList, ' '), 'unlock', join(a:argList, ' '), {})
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Function: s:svnFunctions.Update(argList) {{{2
|
" Function: s:svnFunctions.Update(argList) {{{2
|
||||||
function! s:svnFunctions.Update(argList)
|
function! s:svnFunctions.Update(argList)
|
||||||
return s:DoCommand('update --non-interactive', 'update', '', {})
|
return s:DoCommand('update --non-interactive', 'update', '', {})
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
" Annotate setting {{{2
|
||||||
|
let s:svnFunctions.AnnotateSplitRegex = '\s\+\S\+\s\+\S\+ '
|
||||||
|
|
||||||
" Section: Plugin Registration {{{1
|
" Section: Plugin Registration {{{1
|
||||||
call VCSCommandRegisterModule('SVN', expand('<sfile>'), s:svnFunctions, [])
|
let s:VCSCommandUtility = VCSCommandRegisterModule('SVN', expand('<sfile>'), s:svnFunctions, [])
|
||||||
|
|
||||||
let &cpo = s:save_cpo
|
let &cpo = s:save_cpo
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
" Vim syntax file
|
||||||
|
" Language: HG annotate output
|
||||||
|
" Maintainer: Bob Hiestand <bob.hiestand@gmail.com>
|
||||||
|
" Remark: Used by the vcscommand plugin.
|
||||||
|
" License:
|
||||||
|
" Copyright (c) 2010 Bob Hiestand
|
||||||
|
"
|
||||||
|
" Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
" of this software and associated documentation files (the "Software"), to
|
||||||
|
" deal in the Software without restriction, including without limitation the
|
||||||
|
" rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||||
|
" sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
" furnished to do so, subject to the following conditions:
|
||||||
|
"
|
||||||
|
" The above copyright notice and this permission notice shall be included in
|
||||||
|
" all copies or substantial portions of the Software.
|
||||||
|
"
|
||||||
|
" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
" FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||||
|
" IN THE SOFTWARE.
|
||||||
|
|
||||||
|
if exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
syn match hgVer /\d\+/ contained
|
||||||
|
syn match hgName /^\s*\S\+/ contained
|
||||||
|
syn match hgHead /^\s*\S\+\s\+\d\+:/ contains=hgVer,hgName
|
||||||
|
|
||||||
|
if !exists("did_hgannotate_syntax_inits")
|
||||||
|
let did_hgannotate_syntax_inits = 1
|
||||||
|
hi link hgName Type
|
||||||
|
hi link hgVer Statement
|
||||||
|
endif
|
||||||
|
|
||||||
|
let b:current_syntax="hgAnnotate"
|
|
@ -0,0 +1,44 @@
|
||||||
|
" Vim syntax file
|
||||||
|
" Language: git annotate output
|
||||||
|
" Maintainer: Bob Hiestand <bob.hiestand@gmail.com>
|
||||||
|
" Remark: Used by the vcscommand plugin.
|
||||||
|
" License:
|
||||||
|
" Copyright (c) 2009 Bob Hiestand
|
||||||
|
"
|
||||||
|
" Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
" of this software and associated documentation files (the "Software"), to
|
||||||
|
" deal in the Software without restriction, including without limitation the
|
||||||
|
" rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||||
|
" sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
" furnished to do so, subject to the following conditions:
|
||||||
|
"
|
||||||
|
" The above copyright notice and this permission notice shall be included in
|
||||||
|
" all copies or substantial portions of the Software.
|
||||||
|
"
|
||||||
|
" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
" FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||||
|
" IN THE SOFTWARE.
|
||||||
|
|
||||||
|
if exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
syn region gitName start="(\@<=" end="\( \d\d\d\d-\)\@=" contained
|
||||||
|
syn match gitCommit /^\^\?\x\+/ contained
|
||||||
|
syn match gitDate /\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d [+-]\d\d\d\d/ contained
|
||||||
|
syn match gitLineNumber /\d\+)\@=/ contained
|
||||||
|
syn region gitAnnotation start="^" end=") " oneline keepend contains=gitCommit,gitLineNumber,gitDate,gitName
|
||||||
|
|
||||||
|
if !exists("did_gitannotate_syntax_inits")
|
||||||
|
let did_gitannotate_syntax_inits = 1
|
||||||
|
hi link gitName Type
|
||||||
|
hi link gitCommit Statement
|
||||||
|
hi link gitDate Comment
|
||||||
|
hi link gitLineNumber Label
|
||||||
|
endif
|
||||||
|
|
||||||
|
let b:current_syntax="gitAnnotate"
|
131
vim/vimrc
131
vim/vimrc
|
@ -11,7 +11,7 @@ set viminfo='20,\"50,f10
|
||||||
set history=50
|
set history=50
|
||||||
set nohlsearch
|
set nohlsearch
|
||||||
set nostartofline
|
set nostartofline
|
||||||
"set paste
|
" set paste
|
||||||
|
|
||||||
set ruler
|
set ruler
|
||||||
set cmdheight=1
|
set cmdheight=1
|
||||||
|
@ -24,6 +24,18 @@ set expandtab
|
||||||
set softtabstop=4
|
set softtabstop=4
|
||||||
set autoindent
|
set autoindent
|
||||||
set smartindent
|
set smartindent
|
||||||
|
" For highlighted numbers:
|
||||||
|
let python_highlight_numbers = 1
|
||||||
|
"
|
||||||
|
" For highlighted builtin functions:
|
||||||
|
let python_highlight_builtins = 1
|
||||||
|
"
|
||||||
|
" For highlighted standard exceptions:
|
||||||
|
let python_highlight_exceptions = 1
|
||||||
|
"
|
||||||
|
" Highlight erroneous whitespace:
|
||||||
|
let python_highlight_space_errors = 1
|
||||||
|
|
||||||
" End Python settings
|
" End Python settings
|
||||||
|
|
||||||
set nofoldenable
|
set nofoldenable
|
||||||
|
@ -38,18 +50,20 @@ set encoding=utf-8
|
||||||
set listchars=tab:->,trail:.,eol:$
|
set listchars=tab:->,trail:.,eol:$
|
||||||
set smartcase
|
set smartcase
|
||||||
set errorbells
|
set errorbells
|
||||||
"set visualbell
|
" set visualbell
|
||||||
set showcmd " Show (partial) command in status line.
|
set showcmd " Show (partial) command in status line.
|
||||||
set showmatch " Show matching brackets.
|
set showmatch " Show matching brackets.
|
||||||
set ignorecase " Do case insensitive matching
|
set ignorecase " Do case insensitive matching
|
||||||
set incsearch " Incremental search
|
set incsearch " Incremental search
|
||||||
set autowrite " Automatically save before commands like :next and :make
|
set autowrite " Automatically save before commands like :next and :make
|
||||||
"set statusline=%<%f\ %H%m%r%=%-14.(%l,%c%)\ %P\ Buf.%n
|
" set statusline=%<%f\ %H%m%r%=%-14.(%l,%c%)\ %P\ Buf.%n
|
||||||
|
set showtabline=0
|
||||||
set backupcopy=yes
|
set backupcopy=yes
|
||||||
set fileformats=unix,mac,dos
|
set fileformats=unix,mac,dos
|
||||||
set fileformat=unix
|
set fileformat=unix
|
||||||
set mouse=a
|
set mouse=a
|
||||||
colorscheme inkpot
|
set printfont=Monaco:h14
|
||||||
|
colorscheme wombat256
|
||||||
|
|
||||||
" """""""""
|
" """""""""
|
||||||
" User Info
|
" User Info
|
||||||
|
@ -134,6 +148,22 @@ nnoremap <silent> <S-Up> V
|
||||||
vnoremap <silent> <S-Down> j
|
vnoremap <silent> <S-Down> j
|
||||||
vnoremap <silent> <S-Up> k
|
vnoremap <silent> <S-Up> k
|
||||||
|
|
||||||
|
" Terminal/Filemanager integration
|
||||||
|
nnoremap <silent> <F9> :OpenTerminal<CR>
|
||||||
|
nnoremap <silent> <F10> :OpenFilemanager<CR><CR>
|
||||||
|
|
||||||
|
" Tab selection by number
|
||||||
|
nnoremap <silent> <D-1> 1gt
|
||||||
|
nnoremap <silent> <D-2> 2gt
|
||||||
|
nnoremap <silent> <D-3> 3gt
|
||||||
|
nnoremap <silent> <D-4> 4gt
|
||||||
|
nnoremap <silent> <D-5> 5gt
|
||||||
|
nnoremap <silent> <D-6> 6gt
|
||||||
|
nnoremap <silent> <D-7> 7gt
|
||||||
|
nnoremap <silent> <D-8> 8gt
|
||||||
|
nnoremap <silent> <D-9> 9gt
|
||||||
|
nnoremap <silent> <D-0> 10gt
|
||||||
|
|
||||||
" Vim5 comes with syntaxhighlighting. If you want to enable syntaxhightlighting
|
" Vim5 comes with syntaxhighlighting. If you want to enable syntaxhightlighting
|
||||||
" by default uncomment the next three lines.
|
" by default uncomment the next three lines.
|
||||||
if has("syntax")
|
if has("syntax")
|
||||||
|
@ -152,100 +182,9 @@ if has("autocmd")
|
||||||
au BufNewFile,BufRead *.mako setf mako
|
au BufNewFile,BufRead *.mako setf mako
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
"recalculate the trailing whitespace warning when idle, and after saving
|
|
||||||
autocmd cursorhold,bufwritepost * unlet! b:statusline_trailing_space_warning
|
|
||||||
|
|
||||||
"return '[\s]' if trailing white space is detected
|
|
||||||
"return '' otherwise
|
|
||||||
function! StatuslineTrailingSpaceWarning()
|
|
||||||
if !exists("b:statusline_trailing_space_warning")
|
|
||||||
if search('\s\+$', 'nw') != 0
|
|
||||||
let b:statusline_trailing_space_warning = '[\s]'
|
|
||||||
else
|
|
||||||
let b:statusline_trailing_space_warning = ''
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
return b:statusline_trailing_space_warning
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
|
|
||||||
" """"""""""""
|
|
||||||
" Status Line
|
|
||||||
" """"""""""""
|
|
||||||
|
|
||||||
" Some useful functions
|
|
||||||
"return the syntax highlight group under the cursor ''
|
|
||||||
function! StatuslineCurrentHighlight()
|
|
||||||
let name = synIDattr(synID(line('.'),col('.'),1),'name')
|
|
||||||
if name == ''
|
|
||||||
return ''
|
|
||||||
else
|
|
||||||
return '[' . name . ']'
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
"recalculate the tab warning flag when idle and after writing
|
|
||||||
autocmd cursorhold,bufwritepost * unlet! b:statusline_tab_warning
|
|
||||||
|
|
||||||
"return '[&et]' if &et is set wrong
|
|
||||||
"return '[mixed-indenting]' if spaces and tabs are used to indent
|
|
||||||
"return an empty string if everything is fine
|
|
||||||
function! StatuslineTabWarning()
|
|
||||||
if !exists("b:statusline_tab_warning")
|
|
||||||
let tabs = search('^\t', 'nw') != 0
|
|
||||||
let spaces = search('^ ', 'nw') != 0
|
|
||||||
|
|
||||||
if tabs && spaces
|
|
||||||
let b:statusline_tab_warning = '[mixed-indenting]'
|
|
||||||
elseif (spaces && !&et) || (tabs && &et)
|
|
||||||
let b:statusline_tab_warning = '[&et]'
|
|
||||||
else
|
|
||||||
let b:statusline_tab_warning = ''
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
return b:statusline_tab_warning
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Real Status line definition
|
|
||||||
set statusline=%t\ "tail of the filename
|
|
||||||
|
|
||||||
"display a warning if fileformat isnt unix
|
|
||||||
set statusline+=%#warningmsg#
|
|
||||||
set statusline+=%{&ff!='unix'?'['.&ff.']':''}
|
|
||||||
set statusline+=%*
|
|
||||||
|
|
||||||
"display a warning if file encoding isnt utf-8
|
|
||||||
set statusline+=%#warningmsg#
|
|
||||||
set statusline+=%{(&fenc!='utf-8'&&&fenc!='')?'['.&fenc.']':''}
|
|
||||||
set statusline+=%*
|
|
||||||
|
|
||||||
set statusline+=%h "help file flag
|
|
||||||
set statusline+=%y "filetype
|
|
||||||
set statusline+=%r "read only flag
|
|
||||||
set statusline+=%m "modified flag
|
|
||||||
|
|
||||||
"display a warning if &et is wrong, or we have mixed-indenting
|
|
||||||
set statusline+=%#error#
|
|
||||||
set statusline+=%{StatuslineTabWarning()}
|
|
||||||
set statusline+=%*
|
|
||||||
|
|
||||||
set statusline+=%{StatuslineTrailingSpaceWarning()}
|
|
||||||
|
|
||||||
"display a warning if &paste is set
|
|
||||||
set statusline+=%#error#
|
|
||||||
set statusline+=%{&paste?'[paste]':'[nopaste]'}
|
|
||||||
set statusline+=%*
|
|
||||||
|
|
||||||
set statusline+=%= "left/right separator
|
|
||||||
set statusline+=%{StatuslineCurrentHighlight()}\ \ "current highlight
|
|
||||||
set statusline+=%02c, "cursor column
|
|
||||||
set statusline+=%03l/%03L "cursor line/total lines
|
|
||||||
set statusline+=\ hex:\ 0x%02B
|
|
||||||
set statusline+=\ %P "percent through file
|
|
||||||
|
|
||||||
" User customizations are held in file ~/.vim/vimrc.local
|
" User customizations are held in file ~/.vim/vimrc.local
|
||||||
if filereadable($HOME."/.vim/vimrc.local")
|
if filereadable($HOME."/.vim/vimrc.local")
|
||||||
source $HOME/.vim/vimrc.local
|
source $HOME/.vim/vimrc.local
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" vim: set ts=4 sw=4 tw=0 ft=vim :
|
||||||
|
|
Loading…
Reference in New Issue