mirror of
https://github.com/gryf/.vim.git
synced 2025-12-17 19:40:29 +01:00
Updated zenburn, mark and tagbar
This commit is contained in:
@@ -7,7 +7,7 @@ ScriptID SourceID Filename
|
|||||||
311 7645 grep.vim
|
311 7645 grep.vim
|
||||||
3304 15211 gundo.vim
|
3304 15211 gundo.vim
|
||||||
2727 11120 jsbeautify.vim
|
2727 11120 jsbeautify.vim
|
||||||
2666 15477 Mark
|
2666 15603 Mark
|
||||||
2262 8944 occur.vim
|
2262 8944 occur.vim
|
||||||
910 14691 pydoc.vim
|
910 14691 pydoc.vim
|
||||||
#2421 9423 pysmell.vim
|
#2421 9423 pysmell.vim
|
||||||
@@ -16,7 +16,7 @@ ScriptID SourceID Filename
|
|||||||
1697 12566 :AutoInstall: surround.vim
|
1697 12566 :AutoInstall: surround.vim
|
||||||
#273 7701 taglist.vim # exchanged with taglisttoo
|
#273 7701 taglist.vim # exchanged with taglisttoo
|
||||||
#and taglisttoo was exchanged by tagbar
|
#and taglisttoo was exchanged by tagbar
|
||||||
3465 15165 Tagbar
|
3465 15532 Tagbar
|
||||||
90 13751 vcscommand.vim
|
90 13751 vcscommand.vim
|
||||||
2226 13756 vimwiki.vim
|
2226 13756 vimwiki.vim
|
||||||
2289 0 loremipsum.vim
|
2289 0 loremipsum.vim
|
||||||
@@ -32,7 +32,7 @@ ScriptID SourceID Filename
|
|||||||
3309 14699 vydark
|
3309 14699 vydark
|
||||||
2589 14175 vylight
|
2589 14175 vylight
|
||||||
1165 3741 tolerable.vim
|
1165 3741 tolerable.vim
|
||||||
415 15463 zenburn
|
415 15531 zenburn
|
||||||
# compiler
|
# compiler
|
||||||
891 10365 pylint.vim
|
891 10365 pylint.vim
|
||||||
# ftplugin
|
# ftplugin
|
||||||
|
|||||||
@@ -10,8 +10,38 @@
|
|||||||
" Dependencies:
|
" Dependencies:
|
||||||
" - SearchSpecial.vim autoload script (optional, for improved search messages).
|
" - SearchSpecial.vim autoload script (optional, for improved search messages).
|
||||||
"
|
"
|
||||||
" Version: 2.4.4
|
" Version: 2.5.0
|
||||||
" Changes:
|
" Changes:
|
||||||
|
" 06-May-2011, Ingo Karkat
|
||||||
|
" - Also print status message on :MarkClear to be consistent with :MarkToggle.
|
||||||
|
"
|
||||||
|
" 21-Apr-2011, Ingo Karkat
|
||||||
|
" - Implement toggling of mark display (keeping the mark patterns, unlike the
|
||||||
|
" clearing of marks), determined by s:enable. s:DoMark() now toggles on empty
|
||||||
|
" regexp, affecting the \n mapping and :Mark. Introduced
|
||||||
|
" s:EnableAndMarkScope() wrapper to correctly handle the highlighting updates
|
||||||
|
" depending on whether marks were previously disabled.
|
||||||
|
" - Implement persistence of s:enable via g:MARK_ENABLED.
|
||||||
|
" - Generalize s:Enable() and combine with intermediate s:Disable() into
|
||||||
|
" s:MarkEnable(), which also performs the persistence of s:enabled.
|
||||||
|
" - Implement lazy-loading of disabled persistent marks via g:mwDoDeferredLoad
|
||||||
|
" flag passed from plugin/mark.vim.
|
||||||
|
"
|
||||||
|
" 20-Apr-2011, Ingo Karkat
|
||||||
|
" - Extract setting of s:pattern into s:SetPattern() and implement the automatic
|
||||||
|
" persistence there.
|
||||||
|
"
|
||||||
|
" 19-Apr-2011, Ingo Karkat
|
||||||
|
" - ENH: Add enabling functions for mark persistence: mark#Load() and
|
||||||
|
" mark#ToPatternList().
|
||||||
|
" - Implement :MarkLoad and :MarkSave commands in mark#LoadCommand() and
|
||||||
|
" mark#SaveCommand().
|
||||||
|
" - Remove superfluous update autocmd on VimEnter: Persistent marks trigger the
|
||||||
|
" update themselves, same for :Mark commands which could potentially be issued
|
||||||
|
" e.g. in .vimrc. Otherwise, when no marks are defined after startup, the
|
||||||
|
" autosource script isn't even loaded yet, so the autocmd on the VimEnter
|
||||||
|
" event isn't yet defined.
|
||||||
|
"
|
||||||
" 18-Apr-2011, Ingo Karkat
|
" 18-Apr-2011, Ingo Karkat
|
||||||
" - BUG: Include trailing newline character in check for current mark, so that a
|
" - BUG: Include trailing newline character in check for current mark, so that a
|
||||||
" mark that matches the entire line (e.g. created by V<Leader>m) can be
|
" mark that matches the entire line (e.g. created by V<Leader>m) can be
|
||||||
@@ -33,6 +63,8 @@
|
|||||||
" and make the remaining g:mw... variables script-local, as these contain
|
" and make the remaining g:mw... variables script-local, as these contain
|
||||||
" internal housekeeping information that does not need to be accessible by the
|
" internal housekeeping information that does not need to be accessible by the
|
||||||
" user.
|
" user.
|
||||||
|
" - Add :MarkSave warning if 'viminfo' doesn't enable global variable
|
||||||
|
" persistence.
|
||||||
"
|
"
|
||||||
" 15-Apr-2011, Ingo Karkat
|
" 15-Apr-2011, Ingo Karkat
|
||||||
" - Robustness: Move initialization of w:mwMatch from mark#UpdateMark() to
|
" - Robustness: Move initialization of w:mwMatch from mark#UpdateMark() to
|
||||||
@@ -191,6 +223,18 @@ function! s:MarkMatch( indices, expr )
|
|||||||
let w:mwMatch[l:index] = matchadd('MarkWord' . (l:index + 1), l:expr, l:priority)
|
let w:mwMatch[l:index] = matchadd('MarkWord' . (l:index + 1), l:expr, l:priority)
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
" Initialize mark colors in a (new) window.
|
||||||
|
function! mark#UpdateMark()
|
||||||
|
let i = 0
|
||||||
|
while i < s:markNum
|
||||||
|
if ! s:enabled || empty(s:pattern[i])
|
||||||
|
call s:MarkMatch([i], '')
|
||||||
|
else
|
||||||
|
call s:MarkMatch([i], s:pattern[i])
|
||||||
|
endif
|
||||||
|
let i += 1
|
||||||
|
endwhile
|
||||||
|
endfunction
|
||||||
" Set / clear matches in all windows.
|
" Set / clear matches in all windows.
|
||||||
function! s:MarkScope( indices, expr )
|
function! s:MarkScope( indices, expr )
|
||||||
let l:currentWinNr = winnr()
|
let l:currentWinNr = winnr()
|
||||||
@@ -217,23 +261,87 @@ function! mark#UpdateScope()
|
|||||||
execute l:currentWinNr . 'wincmd w'
|
execute l:currentWinNr . 'wincmd w'
|
||||||
silent! execute l:originalWindowLayout
|
silent! execute l:originalWindowLayout
|
||||||
endfunction
|
endfunction
|
||||||
" Mark or unmark a regular expression.
|
|
||||||
function! mark#DoMark(...) " DoMark(regexp)
|
|
||||||
let regexp = (a:0 ? a:1 : '')
|
|
||||||
|
|
||||||
" clear all marks if regexp is null
|
function! s:MarkEnable( enable, ...)
|
||||||
if empty(regexp)
|
if s:enabled != a:enable
|
||||||
|
" En-/disable marks and perform a full refresh in all windows, unless
|
||||||
|
" explicitly suppressed by passing in 0.
|
||||||
|
let s:enabled = a:enable
|
||||||
|
if g:mwAutoSaveMarks
|
||||||
|
let g:MARK_ENABLED = s:enabled
|
||||||
|
endif
|
||||||
|
|
||||||
|
if ! a:0 || ! a:1
|
||||||
|
call mark#UpdateScope()
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
function! s:EnableAndMarkScope( indices, expr )
|
||||||
|
if s:enabled
|
||||||
|
" Marks are already enabled, we just need to push the changes to all
|
||||||
|
" windows.
|
||||||
|
call s:MarkScope(a:indices, a:expr)
|
||||||
|
else
|
||||||
|
call s:MarkEnable(1)
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Toggle visibility of marks, like :nohlsearch does for the regular search
|
||||||
|
" highlighting.
|
||||||
|
function! mark#Toggle()
|
||||||
|
if s:enabled
|
||||||
|
call s:MarkEnable(0)
|
||||||
|
echo 'Disabled marks'
|
||||||
|
else
|
||||||
|
call s:MarkEnable(1)
|
||||||
|
|
||||||
|
let l:markCnt = len(filter(copy(s:pattern), '! empty(v:val)'))
|
||||||
|
echo 'Enabled' (l:markCnt > 0 ? l:markCnt . ' ' : '') . 'marks'
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
" Mark or unmark a regular expression.
|
||||||
|
function! s:SetPattern( index, pattern )
|
||||||
|
let s:pattern[a:index] = a:pattern
|
||||||
|
|
||||||
|
if g:mwAutoSaveMarks
|
||||||
|
call s:SavePattern()
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
function! mark#ClearAll()
|
||||||
let i = 0
|
let i = 0
|
||||||
let indices = []
|
let indices = []
|
||||||
while i < s:markNum
|
while i < s:markNum
|
||||||
if ! empty(s:pattern[i])
|
if ! empty(s:pattern[i])
|
||||||
let s:pattern[i] = ''
|
call s:SetPattern(i, '')
|
||||||
call add(indices, i)
|
call add(indices, i)
|
||||||
endif
|
endif
|
||||||
let i += 1
|
let i += 1
|
||||||
endwhile
|
endwhile
|
||||||
let s:lastSearch = ""
|
let s:lastSearch = ''
|
||||||
|
|
||||||
|
" Re-enable marks; not strictly necessary, since all marks have just been
|
||||||
|
" cleared, and marks will be re-enabled, anyway, when the first mark is added.
|
||||||
|
" It's just more consistent for mark persistence. But save the full refresh, as
|
||||||
|
" we do the update ourselves.
|
||||||
|
call s:MarkEnable(0, 0)
|
||||||
|
|
||||||
call s:MarkScope(l:indices, '')
|
call s:MarkScope(l:indices, '')
|
||||||
|
|
||||||
|
if len(indices) > 0
|
||||||
|
echo 'Cleared all' len(indices) 'marks'
|
||||||
|
else
|
||||||
|
echo 'All marks cleared'
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
function! mark#DoMark(...) " DoMark(regexp)
|
||||||
|
let regexp = (a:0 ? a:1 : '')
|
||||||
|
|
||||||
|
" Disable marks if regexp is empty. Otherwise, we will be either removing a
|
||||||
|
" mark or adding one, so marks will be re-enabled.
|
||||||
|
if empty(regexp)
|
||||||
|
call mark#Toggle()
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -244,8 +352,8 @@ function! mark#DoMark(...) " DoMark(regexp)
|
|||||||
if s:lastSearch == s:pattern[i]
|
if s:lastSearch == s:pattern[i]
|
||||||
let s:lastSearch = ''
|
let s:lastSearch = ''
|
||||||
endif
|
endif
|
||||||
let s:pattern[i] = ''
|
call s:SetPattern(i, '')
|
||||||
call s:MarkScope([i], '')
|
call s:EnableAndMarkScope([i], '')
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
let i += 1
|
let i += 1
|
||||||
@@ -253,7 +361,7 @@ function! mark#DoMark(...) " DoMark(regexp)
|
|||||||
|
|
||||||
if s:markNum <= 0
|
if s:markNum <= 0
|
||||||
" Uh, somehow no mark highlightings were defined. Try to detect them again.
|
" Uh, somehow no mark highlightings were defined. Try to detect them again.
|
||||||
call s:InitMarkVariables()
|
call mark#Init()
|
||||||
if s:markNum <= 0
|
if s:markNum <= 0
|
||||||
" Still no mark highlightings; complain.
|
" Still no mark highlightings; complain.
|
||||||
let v:errmsg = 'No mark highlightings defined'
|
let v:errmsg = 'No mark highlightings defined'
|
||||||
@@ -276,9 +384,9 @@ function! mark#DoMark(...) " DoMark(regexp)
|
|||||||
let i = 0
|
let i = 0
|
||||||
while i < s:markNum
|
while i < s:markNum
|
||||||
if empty(s:pattern[i])
|
if empty(s:pattern[i])
|
||||||
let s:pattern[i] = regexp
|
call s:SetPattern(i, regexp)
|
||||||
call s:Cycle(i)
|
call s:Cycle(i)
|
||||||
call s:MarkScope([i], regexp)
|
call s:EnableAndMarkScope([i], regexp)
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
let i += 1
|
let i += 1
|
||||||
@@ -289,20 +397,8 @@ function! mark#DoMark(...) " DoMark(regexp)
|
|||||||
if s:lastSearch == s:pattern[i]
|
if s:lastSearch == s:pattern[i]
|
||||||
let s:lastSearch = ''
|
let s:lastSearch = ''
|
||||||
endif
|
endif
|
||||||
let s:pattern[i] = regexp
|
call s:SetPattern(i, regexp)
|
||||||
call s:MarkScope([i], regexp)
|
call s:EnableAndMarkScope([i], regexp)
|
||||||
endfunction
|
|
||||||
" Initialize mark colors in a (new) window.
|
|
||||||
function! mark#UpdateMark()
|
|
||||||
let i = 0
|
|
||||||
while i < s:markNum
|
|
||||||
if empty(s:pattern[i])
|
|
||||||
call s:MarkMatch([i], '')
|
|
||||||
else
|
|
||||||
call s:MarkMatch([i], s:pattern[i])
|
|
||||||
endif
|
|
||||||
let i += 1
|
|
||||||
endwhile
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Return [mark text, mark start position] of the mark under the cursor (or
|
" Return [mark text, mark start position] of the mark under the cursor (or
|
||||||
@@ -480,6 +576,11 @@ function! s:Search( pattern, isBackward, currentMarkPosition, searchType )
|
|||||||
normal! m'
|
normal! m'
|
||||||
call setpos('.', l:matchPosition)
|
call setpos('.', l:matchPosition)
|
||||||
|
|
||||||
|
" Enable marks (in case they were disabled) after arriving at the mark (to
|
||||||
|
" avoid unnecessary screen updates) but before the error message (to avoid
|
||||||
|
" it getting lost due to the screen updates).
|
||||||
|
call s:MarkEnable(1)
|
||||||
|
|
||||||
if l:isWrapped
|
if l:isWrapped
|
||||||
call s:WrapMessage(a:searchType, a:pattern, a:isBackward)
|
call s:WrapMessage(a:searchType, a:pattern, a:isBackward)
|
||||||
else
|
else
|
||||||
@@ -494,6 +595,12 @@ function! s:Search( pattern, isBackward, currentMarkPosition, searchType )
|
|||||||
" Restore the view to the state before the search.
|
" Restore the view to the state before the search.
|
||||||
call winrestview(l:save_view)
|
call winrestview(l:save_view)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" Enable marks (in case they were disabled) after arriving at the mark (to
|
||||||
|
" avoid unnecessary screen updates) but before the error message (to avoid
|
||||||
|
" it getting lost due to the screen updates).
|
||||||
|
call s:MarkEnable(1)
|
||||||
|
|
||||||
call s:ErrorMessage(a:searchType, a:pattern, a:isBackward)
|
call s:ErrorMessage(a:searchType, a:pattern, a:isBackward)
|
||||||
return 0
|
return 0
|
||||||
endif
|
endif
|
||||||
@@ -527,25 +634,119 @@ function! mark#SearchNext( isBackward )
|
|||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
" Load mark patterns from list.
|
||||||
|
function! mark#Load( pattern, enabled )
|
||||||
|
if s:markNum > 0 && len(a:pattern) > 0
|
||||||
|
" Initialize mark patterns with the passed list. Ensure that, regardless of
|
||||||
|
" the list length, s:pattern contains exactly s:markNum elements.
|
||||||
|
let s:pattern = a:pattern[0:(s:markNum - 1)]
|
||||||
|
let s:pattern += repeat([''], (s:markNum - len(s:pattern)))
|
||||||
|
|
||||||
|
let s:enabled = a:enabled
|
||||||
|
|
||||||
|
call mark#UpdateScope()
|
||||||
|
|
||||||
|
" The list of patterns may be sparse, return only the actual patterns.
|
||||||
|
return len(filter(copy(a:pattern), '! empty(v:val)'))
|
||||||
|
endif
|
||||||
|
return 0
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Access the list of mark patterns.
|
||||||
|
function! mark#ToPatternList()
|
||||||
|
" Trim unused patterns from the end of the list, the amount of available marks
|
||||||
|
" may differ on the next invocation (e.g. due to a different number of
|
||||||
|
" highlight groups in Vim and GVIM). We want to keep empty patterns in the
|
||||||
|
" front and middle to maintain the mapping to highlight groups, though.
|
||||||
|
let l:highestNonEmptyIndex = s:markNum -1
|
||||||
|
while l:highestNonEmptyIndex >= 0 && empty(s:pattern[l:highestNonEmptyIndex])
|
||||||
|
let l:highestNonEmptyIndex -= 1
|
||||||
|
endwhile
|
||||||
|
|
||||||
|
return (l:highestNonEmptyIndex < 0 ? [] : s:pattern[0:l:highestNonEmptyIndex])
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" :MarkLoad command.
|
||||||
|
function! mark#LoadCommand( isShowMessages )
|
||||||
|
if exists('g:MARK_MARKS')
|
||||||
|
try
|
||||||
|
" Persistent global variables cannot be of type List, so we actually store
|
||||||
|
" the string representation, and eval() it back to a List.
|
||||||
|
execute 'let l:loadedMarkNum = mark#Load(' . g:MARK_MARKS . ', ' . (exists('g:MARK_ENABLED') ? g:MARK_ENABLED : 1) . ')'
|
||||||
|
if a:isShowMessages
|
||||||
|
if l:loadedMarkNum == 0
|
||||||
|
echomsg 'No persistent marks found'
|
||||||
|
else
|
||||||
|
echomsg printf('Loaded %d mark%s', l:loadedMarkNum, (l:loadedMarkNum == 1 ? '' : 's'))
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
catch /^Vim\%((\a\+)\)\=:E/
|
||||||
|
let v:errmsg = 'Corrupted persistent mark info in g:MARK_MARKS and g:MARK_ENABLED'
|
||||||
|
echohl ErrorMsg
|
||||||
|
echomsg v:errmsg
|
||||||
|
echohl None
|
||||||
|
|
||||||
|
unlet! g:MARK_MARKS
|
||||||
|
unlet! g:MARK_ENABLED
|
||||||
|
endtry
|
||||||
|
elseif a:isShowMessages
|
||||||
|
let v:errmsg = 'No persistent marks found'
|
||||||
|
echohl ErrorMsg
|
||||||
|
echomsg v:errmsg
|
||||||
|
echohl None
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" :MarkSave command.
|
||||||
|
function! s:SavePattern()
|
||||||
|
let l:savedMarks = mark#ToPatternList()
|
||||||
|
let g:MARK_MARKS = string(l:savedMarks)
|
||||||
|
let g:MARK_ENABLED = s:enabled
|
||||||
|
return ! empty(l:savedMarks)
|
||||||
|
endfunction
|
||||||
|
function! mark#SaveCommand()
|
||||||
|
if index(split(&viminfo, ','), '!') == -1
|
||||||
|
let v:errmsg = "Cannot persist marks, need ! flag in 'viminfo': :set viminfo+=!"
|
||||||
|
echohl ErrorMsg
|
||||||
|
echomsg v:errmsg
|
||||||
|
echohl None
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
if ! s:SavePattern()
|
||||||
|
let v:warningmsg = 'No marks defined'
|
||||||
|
echohl WarningMsg
|
||||||
|
echomsg v:warningmsg
|
||||||
|
echohl None
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
"- initializations ------------------------------------------------------------
|
"- initializations ------------------------------------------------------------
|
||||||
augroup Mark
|
augroup Mark
|
||||||
autocmd!
|
autocmd!
|
||||||
autocmd VimEnter * if ! exists('w:mwMatch') | call mark#UpdateMark() | endif
|
|
||||||
autocmd WinEnter * if ! exists('w:mwMatch') | call mark#UpdateMark() | endif
|
autocmd WinEnter * if ! exists('w:mwMatch') | call mark#UpdateMark() | endif
|
||||||
autocmd TabEnter * call mark#UpdateScope()
|
autocmd TabEnter * call mark#UpdateScope()
|
||||||
augroup END
|
augroup END
|
||||||
|
|
||||||
" Define global variables and initialize current scope.
|
" Define global variables and initialize current scope.
|
||||||
function! s:InitMarkVariables()
|
function! mark#Init()
|
||||||
let s:markNum = 0
|
let s:markNum = 0
|
||||||
while hlexists('MarkWord' . (s:markNum + 1))
|
while hlexists('MarkWord' . (s:markNum + 1))
|
||||||
let s:markNum += 1
|
let s:markNum += 1
|
||||||
endwhile
|
endwhile
|
||||||
let s:cycle = 0
|
|
||||||
let s:pattern = repeat([''], s:markNum)
|
let s:pattern = repeat([''], s:markNum)
|
||||||
let s:lastSearch = ""
|
let s:cycle = 0
|
||||||
|
let s:lastSearch = ''
|
||||||
|
let s:enabled = 1
|
||||||
endfunction
|
endfunction
|
||||||
call s:InitMarkVariables()
|
|
||||||
|
call mark#Init()
|
||||||
|
if exists('g:mwDoDeferredLoad') && g:mwDoDeferredLoad
|
||||||
|
unlet g:mwDoDeferredLoad
|
||||||
|
call mark#LoadCommand(0)
|
||||||
|
else
|
||||||
call mark#UpdateScope()
|
call mark#UpdateScope()
|
||||||
|
endif
|
||||||
|
|
||||||
" vim: ts=2 sw=2
|
" vim: ts=2 sw=2
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
" Vim color file
|
" Vim color file
|
||||||
" Maintainer: Jani Nurminen <slinky@iki.fi>
|
" Maintainer: Jani Nurminen <slinky@iki.fi>
|
||||||
" Last Change: $Id: zenburn.vim,v 2.16 2010/10/24 10:55:30 slinky Exp slinky $
|
" Last Change: $Id: zenburn.vim,v 2.21 2011/04/26 12:13:41 slinky Exp slinky $
|
||||||
" URL: http://slinky.imukuppi.org/zenburnpage/
|
" URL: http://slinky.imukuppi.org/zenburnpage/
|
||||||
" License: GNU GPL <http://www.gnu.org/licenses/gpl.html>
|
" License: GNU GPL <http://www.gnu.org/licenses/gpl.html>
|
||||||
"
|
"
|
||||||
@@ -34,12 +34,17 @@
|
|||||||
" - Tim Smith - force dark background
|
" - Tim Smith - force dark background
|
||||||
" - John Gabriele - spotted bad Ignore-group handling
|
" - John Gabriele - spotted bad Ignore-group handling
|
||||||
" - Zac Thompson - spotted invisible NonText in low contrast mode
|
" - Zac Thompson - spotted invisible NonText in low contrast mode
|
||||||
" - Christophe-Marie Duquesne - suggested making a Vimball
|
" - Christophe-Marie Duquesne - suggested making a Vimball,
|
||||||
|
" suggested support for ctags_highlighting.vim
|
||||||
" - Andrew Wagner - noted the CursorColumn bug (guifg was unintentionally set),
|
" - Andrew Wagner - noted the CursorColumn bug (guifg was unintentionally set),
|
||||||
" unify CursorColumn colour
|
" unify CursorColumn colour
|
||||||
" - Martin Langasek - clarify the license, whitespace fixes
|
" - Martin Langasek - clarify the license, whitespace fixes
|
||||||
" - Marcin Szamotulski - support autocomplete for Zenburn configuration
|
" - Marcin Szamotulski - support autocomplete for Zenburn configuration
|
||||||
" parameters
|
" parameters
|
||||||
|
" - Clayton Parker (claytron) - Convinced by Kurt Maier to use Zenburn. Point
|
||||||
|
" out issues with LineNr, fix directory styles, and their usage in MacVim.
|
||||||
|
" - Paweł Piekarski - Spotted bad FoldColumn and TabLine. Made better
|
||||||
|
" FoldColumn colors, fixed TabLine colors.
|
||||||
"
|
"
|
||||||
" CONFIGURABLE PARAMETERS:
|
" CONFIGURABLE PARAMETERS:
|
||||||
"
|
"
|
||||||
@@ -71,6 +76,9 @@
|
|||||||
"
|
"
|
||||||
" let g:zenburn_alternate_Visual = 1
|
" let g:zenburn_alternate_Visual = 1
|
||||||
"
|
"
|
||||||
|
" Note: this is enabled only if the old-style Visual
|
||||||
|
" if used, see g:zenburn_old_Visual
|
||||||
|
"
|
||||||
" * To use alternate colouring for Error message, use
|
" * To use alternate colouring for Error message, use
|
||||||
"
|
"
|
||||||
" let g:zenburn_alternate_Error = 1
|
" let g:zenburn_alternate_Error = 1
|
||||||
@@ -96,6 +104,24 @@
|
|||||||
" ":set cursorline cursorcolumn", since otherwise the effect won't be
|
" ":set cursorline cursorcolumn", since otherwise the effect won't be
|
||||||
" seen.
|
" seen.
|
||||||
"
|
"
|
||||||
|
" * New (dark) Visual coloring has been introduced.
|
||||||
|
" The dark Visual is more aligned with the rest of the colour scheme,
|
||||||
|
" especially if you use line numbers. If you wish to use the
|
||||||
|
" old Visual coloring, use
|
||||||
|
"
|
||||||
|
" let g:zenburn_old_Visual = 1
|
||||||
|
"
|
||||||
|
" Default is to use the new Visual.
|
||||||
|
"
|
||||||
|
" * EXPERIMENTAL FEATURE: Zenburn will automatically detect if you
|
||||||
|
" have ctags_highlighting.vim (by Al Budden,
|
||||||
|
" http://www.vim.org/scripts/script.php?script_id=2646) enabled, and
|
||||||
|
" will set sensible highlight links. Nothing will happen if you do
|
||||||
|
" not have ctags_highlighting.vim. If you do not want this feature, you can
|
||||||
|
" override the check with:
|
||||||
|
"
|
||||||
|
" let g:zenburn_disable_ctags_highlighting_support = 1
|
||||||
|
"
|
||||||
" NOTE:
|
" NOTE:
|
||||||
"
|
"
|
||||||
" * To turn the parameter(s) back to defaults, use UNLET or set them to 0:
|
" * To turn the parameter(s) back to defaults, use UNLET or set them to 0:
|
||||||
@@ -139,6 +165,16 @@ endif
|
|||||||
if ! exists("g:zenburn_unified_CursorColumn")
|
if ! exists("g:zenburn_unified_CursorColumn")
|
||||||
let g:zenburn_unified_CursorColumn = 0
|
let g:zenburn_unified_CursorColumn = 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if ! exists("g:zenburn_old_Visual")
|
||||||
|
let g:zenburn_old_Visual = 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
if ! exists("g:zenburn_disable_ctags_highlighting_support")
|
||||||
|
" enabled by default
|
||||||
|
let g:zenburn_disable_ctags_highlighting_support = 0
|
||||||
|
endif
|
||||||
|
|
||||||
" -----------------------------------------------
|
" -----------------------------------------------
|
||||||
|
|
||||||
set background=dark
|
set background=dark
|
||||||
@@ -148,6 +184,12 @@ if exists("syntax_on")
|
|||||||
endif
|
endif
|
||||||
let g:colors_name="zenburn"
|
let g:colors_name="zenburn"
|
||||||
|
|
||||||
|
" check for ctags-highlighting
|
||||||
|
if exists("g:loaded_ctags_highlighting") && g:loaded_ctags_highlighting && ! g:zenburn_disable_ctags_highlighting_support
|
||||||
|
" internal
|
||||||
|
let _zenburn_ctags = 1
|
||||||
|
endif
|
||||||
|
|
||||||
hi Boolean guifg=#dca3a3
|
hi Boolean guifg=#dca3a3
|
||||||
hi Character guifg=#dca3a3 gui=bold
|
hi Character guifg=#dca3a3 gui=bold
|
||||||
hi Comment guifg=#7f9f7f gui=italic
|
hi Comment guifg=#7f9f7f gui=italic
|
||||||
@@ -161,7 +203,7 @@ hi DiffAdd guifg=#709080 guibg=#313c36 gui=bold
|
|||||||
hi DiffChange guibg=#333333
|
hi DiffChange guibg=#333333
|
||||||
hi DiffDelete guifg=#333333 guibg=#464646
|
hi DiffDelete guifg=#333333 guibg=#464646
|
||||||
hi DiffText guifg=#ecbcbc guibg=#41363c gui=bold
|
hi DiffText guifg=#ecbcbc guibg=#41363c gui=bold
|
||||||
hi Directory guifg=#dcdccc gui=bold
|
hi Directory guifg=#9fafaf gui=bold
|
||||||
hi ErrorMsg guifg=#80d4aa guibg=#2f2f2f gui=bold
|
hi ErrorMsg guifg=#80d4aa guibg=#2f2f2f gui=bold
|
||||||
hi Exception guifg=#c3bf9f gui=bold
|
hi Exception guifg=#c3bf9f gui=bold
|
||||||
hi Float guifg=#c0bed1
|
hi Float guifg=#c0bed1
|
||||||
@@ -172,7 +214,6 @@ hi Identifier guifg=#efdcbc
|
|||||||
hi IncSearch guibg=#f8f893 guifg=#385f38
|
hi IncSearch guibg=#f8f893 guifg=#385f38
|
||||||
hi Keyword guifg=#f0dfaf gui=bold
|
hi Keyword guifg=#f0dfaf gui=bold
|
||||||
hi Label guifg=#dfcfaf gui=underline
|
hi Label guifg=#dfcfaf gui=underline
|
||||||
hi LineNr guifg=#9fafaf guibg=#262626
|
|
||||||
hi Macro guifg=#ffcfaf gui=bold
|
hi Macro guifg=#ffcfaf gui=bold
|
||||||
hi ModeMsg guifg=#ffcfaf gui=none
|
hi ModeMsg guifg=#ffcfaf gui=none
|
||||||
hi MoreMsg guifg=#ffffff gui=bold
|
hi MoreMsg guifg=#ffffff gui=bold
|
||||||
@@ -224,18 +265,16 @@ if &t_Co > 255
|
|||||||
hi DiffChange ctermbg=236
|
hi DiffChange ctermbg=236
|
||||||
hi DiffDelete ctermfg=236 ctermbg=238
|
hi DiffDelete ctermfg=236 ctermbg=238
|
||||||
hi DiffText ctermfg=217 ctermbg=237 cterm=bold
|
hi DiffText ctermfg=217 ctermbg=237 cterm=bold
|
||||||
hi Directory ctermfg=188 cterm=bold
|
hi Directory ctermfg=109 cterm=bold
|
||||||
hi ErrorMsg ctermfg=115 ctermbg=236 cterm=bold
|
hi ErrorMsg ctermfg=115 ctermbg=236 cterm=bold
|
||||||
hi Exception ctermfg=249 cterm=bold
|
hi Exception ctermfg=249 cterm=bold
|
||||||
hi Float ctermfg=251
|
hi Float ctermfg=251
|
||||||
hi FoldColumn ctermfg=109 ctermbg=238
|
|
||||||
hi Folded ctermfg=109 ctermbg=238
|
|
||||||
hi Function ctermfg=228
|
hi Function ctermfg=228
|
||||||
hi Identifier ctermfg=223
|
hi Identifier ctermfg=223
|
||||||
hi IncSearch ctermbg=228 ctermfg=238
|
hi IncSearch ctermbg=228 ctermfg=238
|
||||||
hi Keyword ctermfg=223 cterm=bold
|
hi Keyword ctermfg=223 cterm=bold
|
||||||
hi Label ctermfg=187 cterm=underline
|
hi Label ctermfg=187 cterm=underline
|
||||||
hi LineNr ctermfg=248 ctermbg=235
|
hi LineNr ctermfg=248 ctermbg=233
|
||||||
hi Macro ctermfg=223 cterm=bold
|
hi Macro ctermfg=223 cterm=bold
|
||||||
hi ModeMsg ctermfg=223 cterm=none
|
hi ModeMsg ctermfg=223 cterm=none
|
||||||
hi MoreMsg ctermfg=15 cterm=bold
|
hi MoreMsg ctermfg=15 cterm=bold
|
||||||
@@ -290,10 +329,8 @@ if &t_Co > 255
|
|||||||
|
|
||||||
if exists("g:zenburn_unified_CursorColumn") && g:zenburn_unified_CursorColumn
|
if exists("g:zenburn_unified_CursorColumn") && g:zenburn_unified_CursorColumn
|
||||||
hi CursorColumn ctermbg=233 cterm=none
|
hi CursorColumn ctermbg=233 cterm=none
|
||||||
hi ColorColumn ctermbg=233 cterm=none
|
|
||||||
else
|
else
|
||||||
hi CursorColumn ctermbg=235 cterm=none
|
hi CursorColumn ctermbg=235 cterm=none
|
||||||
hi ColorColumn ctermbg=235 cterm=none
|
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
hi Normal ctermfg=188 ctermbg=237
|
hi Normal ctermfg=188 ctermbg=237
|
||||||
@@ -302,10 +339,8 @@ if &t_Co > 255
|
|||||||
hi diffdelete ctermbg=238
|
hi diffdelete ctermbg=238
|
||||||
hi difftext ctermbg=237
|
hi difftext ctermbg=237
|
||||||
hi errormsg ctermbg=237
|
hi errormsg ctermbg=237
|
||||||
hi foldcolumn ctermbg=238
|
|
||||||
hi folded ctermbg=238
|
|
||||||
hi incsearch ctermbg=228
|
hi incsearch ctermbg=228
|
||||||
hi linenr ctermbg=238
|
hi linenr ctermbg=235
|
||||||
hi search ctermbg=238
|
hi search ctermbg=238
|
||||||
hi statement ctermbg=237
|
hi statement ctermbg=237
|
||||||
hi statusline ctermbg=144
|
hi statusline ctermbg=144
|
||||||
@@ -328,10 +363,8 @@ if &t_Co > 255
|
|||||||
|
|
||||||
if exists("g:zenburn_unified_CursorColumn") && g:zenburn_unified_CursorColumn
|
if exists("g:zenburn_unified_CursorColumn") && g:zenburn_unified_CursorColumn
|
||||||
hi CursorColumn ctermbg=238 cterm=none
|
hi CursorColumn ctermbg=238 cterm=none
|
||||||
hi ColorColumn ctermbg=238 cterm=none
|
|
||||||
else
|
else
|
||||||
hi CursorColumn ctermbg=239 cterm=none
|
hi CursorColumn ctermbg=239 cterm=none
|
||||||
hi ColorColumn ctermbg=239 cterm=none
|
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -358,10 +391,8 @@ if exists("g:zenburn_high_Contrast") && g:zenburn_high_Contrast
|
|||||||
hi CursorLine guibg=#121212 gui=bold
|
hi CursorLine guibg=#121212 gui=bold
|
||||||
if exists("g:zenburn_unified_CursorColumn") && g:zenburn_unified_CursorColumn
|
if exists("g:zenburn_unified_CursorColumn") && g:zenburn_unified_CursorColumn
|
||||||
hi CursorColumn guibg=#121212 gui=bold
|
hi CursorColumn guibg=#121212 gui=bold
|
||||||
hi ColorColumn guibg=#121212 gui=bold
|
|
||||||
else
|
else
|
||||||
hi CursorColumn guibg=#2b2b2b
|
hi CursorColumn guibg=#2b2b2b
|
||||||
hi ColorColumn guibg=#2b2b2b
|
|
||||||
endif
|
endif
|
||||||
hi Pmenu guibg=#242424 guifg=#ccccbc
|
hi Pmenu guibg=#242424 guifg=#ccccbc
|
||||||
hi PMenuSel guibg=#353a37 guifg=#ccdc90 gui=bold
|
hi PMenuSel guibg=#353a37 guifg=#ccdc90 gui=bold
|
||||||
@@ -373,16 +404,16 @@ if exists("g:zenburn_high_Contrast") && g:zenburn_high_Contrast
|
|||||||
hi TabLineSel guifg=#efefef guibg=#1c1c1b gui=bold
|
hi TabLineSel guifg=#efefef guibg=#1c1c1b gui=bold
|
||||||
hi TabLine guifg=#b6bf98 guibg=#181818 gui=bold
|
hi TabLine guifg=#b6bf98 guibg=#181818 gui=bold
|
||||||
hi NonText guifg=#404040 gui=bold
|
hi NonText guifg=#404040 gui=bold
|
||||||
|
|
||||||
|
hi LineNr guifg=#9fafaf guibg=#161616
|
||||||
else
|
else
|
||||||
" Original, lighter background
|
" Original, lighter background
|
||||||
hi Normal guifg=#dcdccc guibg=#3f3f3f
|
hi Normal guifg=#dcdccc guibg=#3f3f3f
|
||||||
hi CursorLine guibg=#434443
|
hi CursorLine guibg=#434443
|
||||||
if exists("g:zenburn_unified_CursorColumn") && g:zenburn_unified_CursorColumn
|
if exists("g:zenburn_unified_CursorColumn") && g:zenburn_unified_CursorColumn
|
||||||
hi CursorColumn guibg=#434343
|
hi CursorColumn guibg=#434343
|
||||||
hi ColorColumn guibg=#434343
|
|
||||||
else
|
else
|
||||||
hi CursorColumn guibg=#4f4f4f
|
hi CursorColumn guibg=#4f4f4f
|
||||||
hi ColorColumn guibg=#4f4f4f
|
|
||||||
endif
|
endif
|
||||||
hi Pmenu guibg=#2c2e2e guifg=#9f9f9f
|
hi Pmenu guibg=#2c2e2e guifg=#9f9f9f
|
||||||
hi PMenuSel guibg=#242424 guifg=#d0d0a0 gui=bold
|
hi PMenuSel guibg=#242424 guifg=#d0d0a0 gui=bold
|
||||||
@@ -394,9 +425,11 @@ else
|
|||||||
hi TabLineSel guifg=#efefef guibg=#3a3a39 gui=bold
|
hi TabLineSel guifg=#efefef guibg=#3a3a39 gui=bold
|
||||||
hi TabLine guifg=#b6bf98 guibg=#353535 gui=bold
|
hi TabLine guifg=#b6bf98 guibg=#353535 gui=bold
|
||||||
hi NonText guifg=#5b605e gui=bold
|
hi NonText guifg=#5b605e gui=bold
|
||||||
|
|
||||||
|
hi LineNr guifg=#9fafaf guibg=#262626
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if exists("g:zenburn_old_Visual") && g:zenburn_old_Visual
|
||||||
if exists("g:zenburn_alternate_Visual") && g:zenburn_alternate_Visual
|
if exists("g:zenburn_alternate_Visual") && g:zenburn_alternate_Visual
|
||||||
" Visual with more contrast, thanks to Steve Hall & Cream posse
|
" Visual with more contrast, thanks to Steve Hall & Cream posse
|
||||||
" gui=none fixes weird highlight problem in at least GVim 7.0.66, thanks to Kurt Maier
|
" gui=none fixes weird highlight problem in at least GVim 7.0.66, thanks to Kurt Maier
|
||||||
@@ -407,6 +440,30 @@ else
|
|||||||
hi Visual guifg=#233323 guibg=#71d3b4 gui=none
|
hi Visual guifg=#233323 guibg=#71d3b4 gui=none
|
||||||
hi VisualNOS guifg=#233323 guibg=#71d3b4 gui=none
|
hi VisualNOS guifg=#233323 guibg=#71d3b4 gui=none
|
||||||
endif
|
endif
|
||||||
|
else
|
||||||
|
" new Visual style
|
||||||
|
if exists("g:zenburn_high_Contrast") && g:zenburn_high_Contrast
|
||||||
|
" high contrast
|
||||||
|
"hi Visual guibg=#304a3d
|
||||||
|
"hi VisualNos guibg=#304a3d
|
||||||
|
"TODO no nice greenish in console, 65 is closest. use full black instead,
|
||||||
|
"although i like the green..!
|
||||||
|
hi Visual guibg=#0f0f0f
|
||||||
|
hi VisualNos guibg=#0f0f0f
|
||||||
|
if &t_Co > 255
|
||||||
|
hi Visual ctermbg=0
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
" low contrast
|
||||||
|
hi Visual guibg=#2f2f2f
|
||||||
|
hi VisualNOS guibg=#2f2f2f
|
||||||
|
|
||||||
|
if &t_Co > 255
|
||||||
|
hi Visual ctermbg=235
|
||||||
|
hi VisualNOS ctermbg=235
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
if exists("g:zenburn_alternate_Error") && g:zenburn_alternate_Error
|
if exists("g:zenburn_alternate_Error") && g:zenburn_alternate_Error
|
||||||
" use more jumpy Error
|
" use more jumpy Error
|
||||||
@@ -430,4 +487,75 @@ if exists("g:zenburn_color_also_Ignore") && g:zenburn_color_also_Ignore
|
|||||||
hi Ignore guifg=#545a4f
|
hi Ignore guifg=#545a4f
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" new tabline and fold column
|
||||||
|
if exists("g:zenburn_high_Contrast") && g:zenburn_high_Contrast
|
||||||
|
hi FoldColumn guibg=#161616
|
||||||
|
hi Folded guibg=#161616
|
||||||
|
hi TabLine guifg=#88b090 guibg=#313633 gui=none
|
||||||
|
hi TabLineSel guifg=#ccd990 guibg=#222222
|
||||||
|
hi TabLineFill guifg=#88b090 guibg=#313633 gui=none
|
||||||
|
|
||||||
|
hi SpecialKey guibg=#242424
|
||||||
|
|
||||||
|
if &t_Co > 255
|
||||||
|
hi FoldColumn ctermbg=233 ctermfg=109
|
||||||
|
hi Folded ctermbg=233 ctermfg=109
|
||||||
|
hi TabLine ctermbg=236 ctermfg=108 cterm=none
|
||||||
|
hi TabLineSel ctermbg=235 ctermfg=186 cterm=bold
|
||||||
|
hi TabLineFill ctermbg=236 ctermfg=236
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
hi FoldColumn guibg=#333333
|
||||||
|
hi Folded guibg=#333333
|
||||||
|
hi TabLine guifg=#d0d0b8 guibg=#222222 gui=none
|
||||||
|
hi TabLineSel guifg=#f0f0b0 guibg=#333333 gui=bold
|
||||||
|
hi TabLineFill guifg=#dccdcc guibg=#101010 gui=none
|
||||||
|
|
||||||
|
hi SpecialKey guibg=#444444
|
||||||
|
|
||||||
|
if &t_Co > 255
|
||||||
|
hi FoldColumn ctermbg=236 ctermfg=109
|
||||||
|
hi Folded ctermbg=236 ctermfg=109
|
||||||
|
hi TabLine ctermbg=235 ctermfg=187 cterm=none
|
||||||
|
hi TabLineSel ctermbg=236 ctermfg=229 cterm=bold
|
||||||
|
hi TabLineFill ctermbg=233 ctermfg=233
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
" EXPERIMENTAL ctags_highlighting support
|
||||||
|
" link/set sensible defaults here;
|
||||||
|
"
|
||||||
|
" For now I mostly link to subset of Zenburn colors, the linkage is based
|
||||||
|
" on appearance, not semantics. In later versions I might define more new colours.
|
||||||
|
"
|
||||||
|
" HELP NEEDED to make this work properly.
|
||||||
|
if exists("_zenburn_ctags") && _zenburn_ctags
|
||||||
|
|
||||||
|
" Highlighter seems to think a lot of things are global variables even
|
||||||
|
" though they're not. Example: python method-local variable is
|
||||||
|
" coloured as a global variable. They should not be global, since
|
||||||
|
" they're not visible outside the method.
|
||||||
|
" If this is some very bright colour group then things look bad.
|
||||||
|
hi link CTagsGlobalVariable Identifier
|
||||||
|
|
||||||
|
hi CTagsClass guifg=#acd0b3
|
||||||
|
if &t_Co > 255
|
||||||
|
hi CTagsClass ctermfg=115
|
||||||
|
endif
|
||||||
|
|
||||||
|
hi link CTagsImport Statement
|
||||||
|
hi link CTagsMember Function
|
||||||
|
|
||||||
|
hi link CTagsGlobalConstant Constant
|
||||||
|
|
||||||
|
" These do not yet have support, I can't get them to appear
|
||||||
|
hi link EnumerationValue Float
|
||||||
|
hi link EnumerationName Identifier
|
||||||
|
hi link DefinedName WarningMsg
|
||||||
|
hi link LocalVariable WarningMsg
|
||||||
|
hi link Structure WarningMsg
|
||||||
|
hi link Union WarningMsg
|
||||||
|
endif
|
||||||
|
|
||||||
" TODO check for more obscure syntax groups that they're ok
|
" TODO check for more obscure syntax groups that they're ok
|
||||||
|
|
||||||
|
|||||||
86
doc/mark.txt
86
doc/mark.txt
@@ -55,14 +55,15 @@ HIGHLIGHTING *mark-highlighting*
|
|||||||
{Visual}<Leader>m Mark or unmark the visual selection.
|
{Visual}<Leader>m Mark or unmark the visual selection.
|
||||||
*<Leader>r* *v_<Leader>r*
|
*<Leader>r* *v_<Leader>r*
|
||||||
<Leader>r Manually input a regular expression to mark.
|
<Leader>r Manually input a regular expression to mark.
|
||||||
{Visual}<Leader>r (Based on the visual selection.)
|
{Visual}<Leader>r Ditto, based on the visual selection.
|
||||||
|
|
||||||
In accordance with the built-in |star| command,
|
In accordance with the built-in |star| command,
|
||||||
all these mappings use 'ignorecase', but not
|
all these mappings use 'ignorecase', but not
|
||||||
'smartcase'.
|
'smartcase'.
|
||||||
*<Leader>n*
|
*<Leader>n*
|
||||||
<Leader>n Clear the mark under the cursor.
|
<Leader>n Clear the mark under the cursor.
|
||||||
If not on a mark: Clear all marks.
|
If not on a mark: Disable all marks, similar to
|
||||||
|
|:nohlsearch|.
|
||||||
|
|
||||||
Note: Marks that span multiple lines are not detected,
|
Note: Marks that span multiple lines are not detected,
|
||||||
so the use of <Leader>n on such a mark will
|
so the use of <Leader>n on such a mark will
|
||||||
@@ -73,7 +74,13 @@ HIGHLIGHTING *mark-highlighting*
|
|||||||
:Mark {pattern} Mark or unmark {pattern}.
|
:Mark {pattern} Mark or unmark {pattern}.
|
||||||
For implementation reasons, {pattern} cannot use the
|
For implementation reasons, {pattern} cannot use the
|
||||||
'smartcase' setting, only 'ignorecase'.
|
'smartcase' setting, only 'ignorecase'.
|
||||||
:Mark Clear all marks.
|
:Mark Disable all marks, similar to |:nohlsearch|. Marks
|
||||||
|
will automatically re-enable when a mark is added or
|
||||||
|
removed, or a search for marks is performed.
|
||||||
|
*:MarkClear*
|
||||||
|
:MarkClear Clear all marks. In contrast to disabling marks, the
|
||||||
|
actual mark information is cleared, the next mark will
|
||||||
|
use the first highlight group. This cannot be undone.
|
||||||
|
|
||||||
|
|
||||||
SEARCHING *mark-searching*
|
SEARCHING *mark-searching*
|
||||||
@@ -109,6 +116,37 @@ SEARCHING *mark-searching*
|
|||||||
You can use Vim's |jumplist| to go back to previous
|
You can use Vim's |jumplist| to go back to previous
|
||||||
mark matches and the position before a mark search.
|
mark matches and the position before a mark search.
|
||||||
|
|
||||||
|
MARK PERSISTENCE *mark-persistence*
|
||||||
|
|
||||||
|
The marks can be kept and restored across Vim sessions, using the |viminfo|
|
||||||
|
file. For this to work, the "!" flag must be part of the 'viminfo' setting: >
|
||||||
|
set viminfo+=! " Save and restore global variables.
|
||||||
|
< *:MarkLoad*
|
||||||
|
:MarkLoad Restore the marks from the previous Vim session. All
|
||||||
|
current marks are discarded.
|
||||||
|
*:MarkSave*
|
||||||
|
:MarkSave Save the currently defined marks (or clear the
|
||||||
|
persisted marks if no marks are currently defined) for
|
||||||
|
use in a future Vim session.
|
||||||
|
|
||||||
|
By default, automatic persistence is enabled (so you don't need to explicitly
|
||||||
|
|:MarkSave|), but you have to explicitly load the persisted marks in a new Vim
|
||||||
|
session via |:MarkLoad|, to avoid that you accidentally drag along outdated
|
||||||
|
highlightings from Vim session to session, and be surprised by the arbitrary
|
||||||
|
highlight groups and occasional appearance of forgotten marks. If you want
|
||||||
|
just that though and automatically restore any marks, set |g:mwAutoLoadMarks|.
|
||||||
|
|
||||||
|
You can also initialize the marks to static values, e.g. by including this in
|
||||||
|
|vimrc|: >
|
||||||
|
runtime plugin/mark.vim
|
||||||
|
silent MarkClear
|
||||||
|
Mark foo
|
||||||
|
Mark bar
|
||||||
|
Or you can define custom commands that preset certain marks: >
|
||||||
|
command -bar MyMarks silent MarkClear | execute 'Mark foo' | execute 'Mark bar'
|
||||||
|
Or a command that adds to the existing marks and then toggles them: >
|
||||||
|
command -bar ToggleFooBarMarks execute 'Mark foo' | execute 'Mark bar'
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
INSTALLATION *mark-installation*
|
INSTALLATION *mark-installation*
|
||||||
|
|
||||||
@@ -135,13 +173,30 @@ Higher numbers always take precedence and are displayed above lower ones.
|
|||||||
|
|
||||||
The search type highlighting (in the search message) can be changed via: >
|
The search type highlighting (in the search message) can be changed via: >
|
||||||
highlight link SearchSpecialSearchType MoreMsg
|
highlight link SearchSpecialSearchType MoreMsg
|
||||||
< *g:mwHistAdd*
|
<
|
||||||
|
*g:mwHistAdd*
|
||||||
By default, any marked words are also added to the search (/) and input (@)
|
By default, any marked words are also added to the search (/) and input (@)
|
||||||
history; if you don't want that, remove the corresponding symbols from: >
|
history; if you don't want that, remove the corresponding symbols from: >
|
||||||
let g:mwHistAdd = '/@'
|
let g:mwHistAdd = '/@'
|
||||||
<
|
<
|
||||||
You can use different mappings by mapping to the <Plug>Mark... mappings before
|
*g:mwAutoLoadMarks*
|
||||||
this plugin is sourced. To remove the default overriding of * and #, use: >
|
To enable the automatic restore of marks from a previous Vim session: >
|
||||||
|
let g:mwAutoLoadMarks = 1
|
||||||
|
< *g:mwAutoSaveMarks*
|
||||||
|
To turn off the automatic persistence of marks across Vim sessions: >
|
||||||
|
let g:mwAutoSaveMarks = 0
|
||||||
|
You can still explicitly save marks via |:MarkSave|.
|
||||||
|
|
||||||
|
*mark-mappings*
|
||||||
|
You can use different mappings by mapping to the <Plug>Mark... mappings (use
|
||||||
|
":map <Plug>Mark" to list them all) before this plugin is sourced.
|
||||||
|
|
||||||
|
There are no default mappings for toggling all marks and for the |:MarkClear|
|
||||||
|
command, but you can define some yourself: >
|
||||||
|
nmap <Leader>M <Plug>MarkToggle
|
||||||
|
nmap <Leader>N <Plug>MarkAllClear
|
||||||
|
<
|
||||||
|
To remove the default overriding of * and #, use: >
|
||||||
nmap <Plug>IgnoreMarkSearchNext <Plug>MarkSearchNext
|
nmap <Plug>IgnoreMarkSearchNext <Plug>MarkSearchNext
|
||||||
nmap <Plug>IgnoreMarkSearchPrev <Plug>MarkSearchPrev
|
nmap <Plug>IgnoreMarkSearchPrev <Plug>MarkSearchPrev
|
||||||
<
|
<
|
||||||
@@ -163,20 +218,21 @@ IDEAS *mark-ideas*
|
|||||||
|
|
||||||
Taken from an alternative implementation at
|
Taken from an alternative implementation at
|
||||||
http://vim.wikia.com/wiki/Highlight_multiple_words:
|
http://vim.wikia.com/wiki/Highlight_multiple_words:
|
||||||
- Allow to specify the highlight group number via :Mark [n] {regexp}
|
- Allow to specify the highlight group number via :[N]Mark {regexp}
|
||||||
- Use keys 1-9 on the numeric keypad to toggle a highlight group number.
|
- Use keys 1-9 on the numeric keypad to toggle a highlight group number.
|
||||||
- Persist the patterns in a uppercase global variable across Vim sessions.
|
|
||||||
(Request from Mun Johl, 16-Apr-2010.)
|
|
||||||
Can be somewhat emulated by placing something like this in |vimrc|: >
|
|
||||||
runtime plugin/mark.vim
|
|
||||||
Mark foo
|
|
||||||
Mark bar
|
|
||||||
< or defining a custom command a la: >
|
|
||||||
command -bar MyMarks execute "Mark foo" | execute "Mark bar"
|
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
HISTORY *mark-history*
|
HISTORY *mark-history*
|
||||||
|
|
||||||
|
2.5.0 07-May-2011
|
||||||
|
- ENH: Add explicit mark persistence via :MarkLoad and :MarkSave commands and
|
||||||
|
automatic persistence via the g:mwAutoLoadMarks and g:mwAutoSaveMarks
|
||||||
|
configuration flags. (Request from Mun Johl, 16-Apr-2010)
|
||||||
|
- Expose toggling of mark display (keeping the mark patterns) via new
|
||||||
|
<Plug>MarkToggle mapping. Offer :MarkClear command as a replacement for the
|
||||||
|
old argumentless :Mark command, which now just disables, but not clears all
|
||||||
|
marks.
|
||||||
|
|
||||||
2.4.4 18-Apr-2011
|
2.4.4 18-Apr-2011
|
||||||
- BUG: Include trailing newline character in check for current mark, so that a
|
- BUG: Include trailing newline character in check for current mark, so that a
|
||||||
mark that matches the entire line (e.g. created by V<Leader>m) can be
|
mark that matches the entire line (e.g. created by V<Leader>m) can be
|
||||||
|
|||||||
268
doc/tagbar.txt
268
doc/tagbar.txt
@@ -3,7 +3,7 @@
|
|||||||
Author: Jan Larres <jan@majutsushi.net>
|
Author: Jan Larres <jan@majutsushi.net>
|
||||||
Licence: Vim licence, see |license|
|
Licence: Vim licence, see |license|
|
||||||
Homepage: http://majutsushi.github.com/tagbar/
|
Homepage: http://majutsushi.github.com/tagbar/
|
||||||
Version: 1.5
|
Version: 2.0.1
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
Contents *tagbar* *tagbar-contents*
|
Contents *tagbar* *tagbar-contents*
|
||||||
@@ -11,12 +11,15 @@ Contents *tagbar* *tagbar-contents*
|
|||||||
1. Intro ........................... |tagbar-intro|
|
1. Intro ........................... |tagbar-intro|
|
||||||
Pseudo-tags ................... |tagbar-pseudotags|
|
Pseudo-tags ................... |tagbar-pseudotags|
|
||||||
Supported features ............ |tagbar-features|
|
Supported features ............ |tagbar-features|
|
||||||
|
Other ctags-compatible programs |tagbar-other|
|
||||||
2. Requirements .................... |tagbar-requirements|
|
2. Requirements .................... |tagbar-requirements|
|
||||||
3. Installation .................... |tagbar-installation|
|
3. Installation .................... |tagbar-installation|
|
||||||
4. Usage ........................... |tagbar-usage|
|
4. Usage ........................... |tagbar-usage|
|
||||||
Commands ...................... |tagbar-commands|
|
Commands ...................... |tagbar-commands|
|
||||||
Key mappings .................. |tagbar-keys|
|
Key mappings .................. |tagbar-keys|
|
||||||
5. Configuration ................... |tagbar-configuration|
|
5. Configuration ................... |tagbar-configuration|
|
||||||
|
Highlight colours ............. |tagbar-highlight|
|
||||||
|
Automatically opening Tagbar .. |tagbar-autoopen|
|
||||||
6. Extending Tagbar ................ |tagbar-extend|
|
6. Extending Tagbar ................ |tagbar-extend|
|
||||||
7. Bugs and limitations ............ |tagbar-bugs|
|
7. Bugs and limitations ............ |tagbar-bugs|
|
||||||
8. History ......................... |tagbar-history|
|
8. History ......................... |tagbar-history|
|
||||||
@@ -100,6 +103,16 @@ The following features are supported by Tagbar:
|
|||||||
Tex, Vera, Verilog, VHDL, Vim and YACC.
|
Tex, Vera, Verilog, VHDL, Vim and YACC.
|
||||||
- Can be extended to support arbitrary new types.
|
- Can be extended to support arbitrary new types.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
OTHER CTAGS-COMPATIBLE PROGRAMS *tagbar-other*
|
||||||
|
|
||||||
|
Tagbar theoretically also supports filetype-specific programs that can output
|
||||||
|
tag information that is compatible with ctags. However due to potential
|
||||||
|
incompatibilities this may not always completely work. Tagbar has been tested
|
||||||
|
with doctorjs/jsctags and will use that if present, other programs require
|
||||||
|
some configuration (see |tagbar-extend|). If a program does not work even with
|
||||||
|
correct configuration please contact me.
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
2. Requirements *tagbar-requirements*
|
2. Requirements *tagbar-requirements*
|
||||||
|
|
||||||
@@ -117,15 +130,15 @@ The following requirements have to be met in order to be able to use tagbar:
|
|||||||
Tagbar will work on any platform that ctags runs on -- this includes
|
Tagbar will work on any platform that ctags runs on -- this includes
|
||||||
UNIX derivatives, Mac OS X and Windows. Note that other versions like
|
UNIX derivatives, Mac OS X and Windows. Note that other versions like
|
||||||
GNU ctags will not work.
|
GNU ctags will not work.
|
||||||
Tagbar generates the tag information by itself and doesn't need already
|
Tagbar generates the tag information by itself and doesn't need (or use)
|
||||||
existing tag files.
|
already existing tag files.
|
||||||
- File type detection must be turned on in vim. This can be done with the
|
- File type detection must be turned on in vim. This can be done with the
|
||||||
following command in your vimrc:
|
following command in your vimrc:
|
||||||
>
|
>
|
||||||
filetype on
|
filetype on
|
||||||
<
|
<
|
||||||
See |filetype| for more information.
|
See |filetype| for more information.
|
||||||
- Tagbar will not work in |restricted-mode|.
|
- Tagbar will not work in |restricted-mode| or with 'compatible' set.
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
3. Installation *tagbar-installation*
|
3. Installation *tagbar-installation*
|
||||||
@@ -195,9 +208,9 @@ in the Tagbar window. The current sort order is displayed in the statusbar of
|
|||||||
the Tagbar window.
|
the Tagbar window.
|
||||||
|
|
||||||
Folding~
|
Folding~
|
||||||
The displayed scopes (and unscoped types) can be folded to hide untinteresting
|
The displayed scopes (and unscoped types) can be folded to hide uninteresting
|
||||||
information. Unfortunately the folding state is lost once you leave the Tagbar
|
information. Mappings similar to Vim's built-in ones are provided. Folds can
|
||||||
window, see |tagbar-bugs|.
|
also be opened and closed by clicking on the fold icon with the mouse.
|
||||||
|
|
||||||
Displaying the prototype of a tag~
|
Displaying the prototype of a tag~
|
||||||
Tagbar can display the prototype of a tag. More precisely it can display the
|
Tagbar can display the prototype of a tag. More precisely it can display the
|
||||||
@@ -223,20 +236,38 @@ COMMANDS *tagbar-commands*
|
|||||||
Open the Tagbar window and close it on tag selection, regardless of the
|
Open the Tagbar window and close it on tag selection, regardless of the
|
||||||
setting of |g:tagbar_autoclose|. If it was already open jump to it.
|
setting of |g:tagbar_autoclose|. If it was already open jump to it.
|
||||||
|
|
||||||
|
:TagbarSetFoldlevel [number]
|
||||||
|
Set the foldlevel of the tags of the current file to [number]. The
|
||||||
|
foldlevel of tags in other files remains unaffected. Works in the same way
|
||||||
|
as 'foldlevel'.
|
||||||
|
|
||||||
|
:TagbarShowTag
|
||||||
|
Open the parent folds of the current tag in the file window as much as
|
||||||
|
needed for the tag to be visible in the Tagbar window.
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
KEY MAPPINGS *tagbar-keys*
|
KEY MAPPINGS *tagbar-keys*
|
||||||
|
|
||||||
These mappings are valid in the Tagbar window:
|
These mappings are valid in the Tagbar window:
|
||||||
|
|
||||||
<F1> Display key mapping help.
|
<F1> Display key mapping help.
|
||||||
<CR>/<Enter> Jump to the tag under the cursor. Doesn't work for pseudo-tags.
|
<CR>/<Enter> Jump to the tag under the cursor. Doesn't work for pseudo-tags
|
||||||
|
or generic headers.
|
||||||
|
p Jump to the tag under the cursor, but stay in the Tagbar window.
|
||||||
|
<LeftMouse> When on a fold icon, open or close the fold depending on the
|
||||||
|
current state.
|
||||||
<2-LeftMouse> Same as <CR>.
|
<2-LeftMouse> Same as <CR>.
|
||||||
<Space> Display the prototype of the current tag (i.e. the line defining
|
<Space> Display the prototype of the current tag (i.e. the line defining
|
||||||
it) in the command line.
|
it) in the command line.
|
||||||
+ Open the fold under the cursor.
|
+/zo Open the fold under the cursor.
|
||||||
- Close the fold under the cursor.
|
-/zc Close the fold under the cursor or the current one if there is
|
||||||
* Open all folds.
|
no fold under the cursor.
|
||||||
= Close all folds.
|
o/za Toggle the fold under the cursor or the current one if there is
|
||||||
|
no fold under the cursor.
|
||||||
|
*/zR Open all folds by setting foldlevel to 99.
|
||||||
|
=/zM Close all folds by setting foldlevel to 0.
|
||||||
|
<C-N> Go to the next top-level tag.
|
||||||
|
<C-P> Go to the previous top-level tag.
|
||||||
s Toggle sort order between name and file order.
|
s Toggle sort order between name and file order.
|
||||||
x Toggle zooming the window.
|
x Toggle zooming the window.
|
||||||
q Close the Tagbar window.
|
q Close the Tagbar window.
|
||||||
@@ -246,6 +277,8 @@ q Close the Tagbar window.
|
|||||||
|
|
||||||
*g:tagbar_ctags_bin*
|
*g:tagbar_ctags_bin*
|
||||||
g:tagbar_ctags_bin~
|
g:tagbar_ctags_bin~
|
||||||
|
Default: empty
|
||||||
|
|
||||||
Use this option to specify the location of your ctags executable. Only needed
|
Use this option to specify the location of your ctags executable. Only needed
|
||||||
if it is not in one of the directories in your $PATH environment variable.
|
if it is not in one of the directories in your $PATH environment variable.
|
||||||
|
|
||||||
@@ -256,6 +289,8 @@ Example:
|
|||||||
|
|
||||||
*g:tagbar_left*
|
*g:tagbar_left*
|
||||||
g:tagbar_left~
|
g:tagbar_left~
|
||||||
|
Default: 0
|
||||||
|
|
||||||
By default the Tagbar window will be opened on the right-hand side of vim. Set
|
By default the Tagbar window will be opened on the right-hand side of vim. Set
|
||||||
this option to open it on the left instead.
|
this option to open it on the left instead.
|
||||||
|
|
||||||
@@ -266,7 +301,9 @@ Example:
|
|||||||
|
|
||||||
*g:tagbar_width*
|
*g:tagbar_width*
|
||||||
g:tagbar_width~
|
g:tagbar_width~
|
||||||
Width of the Tagbar window in characters. The default is 40.
|
Default: 40
|
||||||
|
|
||||||
|
Width of the Tagbar window in characters.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
>
|
>
|
||||||
@@ -275,8 +312,10 @@ Example:
|
|||||||
|
|
||||||
*g:tagbar_autoclose*
|
*g:tagbar_autoclose*
|
||||||
g:tagbar_autoclose~
|
g:tagbar_autoclose~
|
||||||
|
Default: 0
|
||||||
|
|
||||||
If you set this option the Tagbar window will automatically close when you
|
If you set this option the Tagbar window will automatically close when you
|
||||||
jump to a tag. The default is to not automatically close the window.
|
jump to a tag.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
>
|
>
|
||||||
@@ -285,8 +324,10 @@ Example:
|
|||||||
|
|
||||||
*g:tagbar_autofocus*
|
*g:tagbar_autofocus*
|
||||||
g:tagbar_autofocus~
|
g:tagbar_autofocus~
|
||||||
|
Default: 0
|
||||||
|
|
||||||
If you set this option the cursor will move to the Tagbar window when it is
|
If you set this option the cursor will move to the Tagbar window when it is
|
||||||
opened. The default is to not move the cursor to the window.
|
opened.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
>
|
>
|
||||||
@@ -295,9 +336,12 @@ Example:
|
|||||||
|
|
||||||
*g:tagbar_sort*
|
*g:tagbar_sort*
|
||||||
g:tagbar_sort~
|
g:tagbar_sort~
|
||||||
|
Default: 1
|
||||||
|
|
||||||
If this option is set the tags are sorted according to their name. If it is
|
If this option is set the tags are sorted according to their name. If it is
|
||||||
unset they are sorted according to their order in the source file. The default
|
unset they are sorted according to their order in the source file. Note that
|
||||||
is to sort them by name.
|
in the second case Pseudo-tags are always sorted before normal tags of the
|
||||||
|
same kind since they don't have a real position in the file.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
>
|
>
|
||||||
@@ -306,9 +350,11 @@ Example:
|
|||||||
|
|
||||||
*g:tagbar_compact*
|
*g:tagbar_compact*
|
||||||
g:tagbar_compact~
|
g:tagbar_compact~
|
||||||
|
Default: 0
|
||||||
|
|
||||||
Setting this option will result in Tagbar omitting the short help at the
|
Setting this option will result in Tagbar omitting the short help at the
|
||||||
top of the window and the blank lines in between top-level scopes in order to
|
top of the window and the blank lines in between top-level scopes in order to
|
||||||
save screen real estate. The default is to not use compact mode.
|
save screen real estate.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
>
|
>
|
||||||
@@ -317,15 +363,124 @@ Example:
|
|||||||
|
|
||||||
*g:tagbar_expand*
|
*g:tagbar_expand*
|
||||||
g:tagbar_expand~
|
g:tagbar_expand~
|
||||||
|
Default: 0
|
||||||
|
|
||||||
If this option is set the Vim window will be expanded by the width of the
|
If this option is set the Vim window will be expanded by the width of the
|
||||||
Tagbar window if using a GUI version of Vim. The default is not to expand the
|
Tagbar window if using a GUI version of Vim.
|
||||||
window.
|
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
>
|
>
|
||||||
let g:tagbar_expand = 1
|
let g:tagbar_expand = 1
|
||||||
<
|
<
|
||||||
|
|
||||||
|
*g:tagbar_foldlevel*
|
||||||
|
g:tagbar_foldlevel~
|
||||||
|
Default: 99
|
||||||
|
|
||||||
|
The initial foldlevel for folds in the Tagbar window. Fold with a level higher
|
||||||
|
than this number will be closed.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
>
|
||||||
|
let g:tagbar_foldlevel = 2
|
||||||
|
<
|
||||||
|
|
||||||
|
*g:tagbar_usearrows*
|
||||||
|
g:tagbar_usearrows~
|
||||||
|
{Windows only}
|
||||||
|
Default: 0
|
||||||
|
|
||||||
|
Tagbar can display nice Unicode arrows instead of +/- characters as fold icons.
|
||||||
|
However, Windows doesn't seem to be able to substitute in characters from
|
||||||
|
other fonts if the current font doesn't support them. This means that you have
|
||||||
|
to use a font that supports those arrows. Unfortunately there is no way to
|
||||||
|
detect whether specific characters are supported in the current font. So if
|
||||||
|
your font supports those arrows you have to set this option to make it work.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
>
|
||||||
|
let g:tagbar_usearrows = 1
|
||||||
|
<
|
||||||
|
|
||||||
|
*g:tagbar_autoshowtag*
|
||||||
|
g:tagbar_autoshowtag~
|
||||||
|
Default: 0
|
||||||
|
|
||||||
|
If this variable is set and the current tag is inside of a closed fold then
|
||||||
|
the folds will be opened as much as needed for the tag to be visible so it can
|
||||||
|
be highlighted. If it is not set then the folds won't be opened and the parent
|
||||||
|
tag will be highlighted instead. You can use the TagbarShowTag command to open
|
||||||
|
the folds manually.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
>
|
||||||
|
let g:tagbar_autoshowtag = 1
|
||||||
|
<
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
HIGHLIGHT COLOURS *tagbar-highlight*
|
||||||
|
|
||||||
|
All of the colours used by Tagbar can be customized. Here is a list of the
|
||||||
|
highlight groups that are defined by Tagbar:
|
||||||
|
|
||||||
|
TagbarComment
|
||||||
|
The help at the top of the buffer.
|
||||||
|
|
||||||
|
TagbarKind
|
||||||
|
The header of generic "kinds" like "functions" and "variables".
|
||||||
|
|
||||||
|
TagbarScope
|
||||||
|
Tags that define a scope like classes, structs etc.
|
||||||
|
|
||||||
|
TagbarType
|
||||||
|
The type of a tag or scope if available.
|
||||||
|
|
||||||
|
TagbarSignature
|
||||||
|
Function signatures.
|
||||||
|
|
||||||
|
TagbarPseudoID
|
||||||
|
The asterisk (*) that signifies a pseudo-tag.
|
||||||
|
|
||||||
|
TagbarFoldIcon
|
||||||
|
The fold icon on the left of foldable tags.
|
||||||
|
|
||||||
|
TagbarHighlight
|
||||||
|
The colour that is used for automatically highlighting the current tag.
|
||||||
|
|
||||||
|
TagbarAccessPublic
|
||||||
|
The "public" visibility/access symbol.
|
||||||
|
|
||||||
|
TagbarAccessProtected
|
||||||
|
The "protected" visibility/access symbol.
|
||||||
|
|
||||||
|
TagbarAccessPrivate
|
||||||
|
The "private" visibility/access symbol.
|
||||||
|
|
||||||
|
If you want to change any of those colours put a line like the following in
|
||||||
|
your vimrc:
|
||||||
|
>
|
||||||
|
highlight TagbarScope guifg=Green ctermfg=Green
|
||||||
|
<
|
||||||
|
See |:highlight| for more information.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
AUTOMATICALLY OPENING TAGBAR *tagbar-autoopen*
|
||||||
|
|
||||||
|
If you want Tagbar to open automatically, for example on Vim startup or for
|
||||||
|
specific filetypes, there are various ways to do it. For example, to always
|
||||||
|
open Tagbar on Vim startup you can put this into your vimrc file:
|
||||||
|
>
|
||||||
|
autocmd VimEnter * nested TagbarOpen
|
||||||
|
<
|
||||||
|
If you want to have it start for specific filetypes put
|
||||||
|
>
|
||||||
|
TagbarOpen
|
||||||
|
<
|
||||||
|
into a corresponding filetype plugin (see |filetype-plugin|).
|
||||||
|
|
||||||
|
Check out |autocmd.txt| if you want it to automatically open in more
|
||||||
|
complicated cases.
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
6. Extending Tagbar *tagbar-extend*
|
6. Extending Tagbar *tagbar-extend*
|
||||||
|
|
||||||
@@ -344,17 +499,21 @@ kinds: A list of the "language kinds" that should be listed in Tagbar,
|
|||||||
Use the command >
|
Use the command >
|
||||||
ctags --list-kinds={language name}
|
ctags --list-kinds={language name}
|
||||||
< to get a list of the kinds ctags supports for a given language. An
|
< to get a list of the kinds ctags supports for a given language. An
|
||||||
entry in this list is a string with two parts separated by a
|
entry in this list is a string with two or three parts separated
|
||||||
colon: the first part is the one-character abbreviation that ctags
|
by a colon: the first part is the one-character abbreviation that
|
||||||
uses, and the second part is an arbitrary string that will be used
|
ctags uses, and the second part is an arbitrary string that will
|
||||||
in Tagbar as the header for the tags of this kind that are not
|
be used in Tagbar as the header for the tags of this kind that are
|
||||||
listed under a specific scope. For example, the string >
|
not listed under a specific scope. The optional third part
|
||||||
"f:functions"
|
determines whether tags of this kind should be folded by default,
|
||||||
|
with 1 meaning they should be folded and 0 they should not. If
|
||||||
|
this part is omitted the tags will not be folded by default. For
|
||||||
|
example, the string >
|
||||||
|
"f:functions:1"
|
||||||
< would list all the function definitions in a file under the header
|
< would list all the function definitions in a file under the header
|
||||||
"functions".
|
"functions" and fold them.
|
||||||
sro: The scope resolution operator. For example, in C++ it is "::" and
|
sro: The scope resolution operator. For example, in C++ it is "::" and
|
||||||
in Java it is ".". When in doubt run ctags as shown above and look
|
in Java it is ".". If in doubt run ctags as shown above and check
|
||||||
at the output.
|
the output.
|
||||||
kind2scope: A dictionary describing the mapping of tag kinds (in their
|
kind2scope: A dictionary describing the mapping of tag kinds (in their
|
||||||
one-character representation) to the scopes their children will
|
one-character representation) to the scopes their children will
|
||||||
appear in, for example classes, structs etc.
|
appear in, for example classes, structs etc.
|
||||||
@@ -403,8 +562,20 @@ deffile: The path to a file with additional ctags definitions (see the
|
|||||||
< Then the "deffile" entry would look like this to allow for the
|
< Then the "deffile" entry would look like this to allow for the
|
||||||
plugin to be installed in an arbitray location (for example
|
plugin to be installed in an arbitray location (for example
|
||||||
with pathogen): >
|
with pathogen): >
|
||||||
|
|
||||||
'deffile' : expand('<sfile>:p:h:h') . '/ctags/mylang.cnf'
|
'deffile' : expand('<sfile>:p:h:h') . '/ctags/mylang.cnf'
|
||||||
<
|
<
|
||||||
|
ctagsbin: The path to a filetype-specific ctags-compatible program like
|
||||||
|
{optional} jsctags. Set it in the same way as |g:tagbar_ctags_bin|. jsctags is
|
||||||
|
used automatically if found in your $PATH and does not have to be
|
||||||
|
set in that case. If it is not in your path you have to provide the
|
||||||
|
complete configuration and use the "replace" key (see the
|
||||||
|
Tagbar source code for the suggested configuration).
|
||||||
|
ctagsargs: The arguments to be passed to the filetype-specific ctags program
|
||||||
|
{optional} (without the filename). Make sure you set an option that makes the
|
||||||
|
program output its data on stdout. Not used for the normal ctags
|
||||||
|
program.
|
||||||
|
|
||||||
|
|
||||||
You then have to assign this dictionary to a variable with the name
|
You then have to assign this dictionary to a variable with the name
|
||||||
>
|
>
|
||||||
@@ -424,8 +595,8 @@ used in Tagbar.
|
|||||||
let g:tagbar_type_cpp = {
|
let g:tagbar_type_cpp = {
|
||||||
\ 'ctagstype' : 'c++',
|
\ 'ctagstype' : 'c++',
|
||||||
\ 'kinds' : [
|
\ 'kinds' : [
|
||||||
\ 'd:macros',
|
\ 'd:macros:1',
|
||||||
\ 'p:prototypes',
|
\ 'p:prototypes:1',
|
||||||
\ 'g:enums',
|
\ 'g:enums',
|
||||||
\ 'e:enumerators',
|
\ 'e:enumerators',
|
||||||
\ 't:typedefs',
|
\ 't:typedefs',
|
||||||
@@ -467,7 +638,7 @@ the order of enums and typedefs, you would do it like this:
|
|||||||
>
|
>
|
||||||
let g:tagbar_type_cpp = {
|
let g:tagbar_type_cpp = {
|
||||||
\ 'kinds' : [
|
\ 'kinds' : [
|
||||||
\ 'd:macros',
|
\ 'd:macros:1',
|
||||||
\ 'g:enums',
|
\ 'g:enums',
|
||||||
\ 't:typedefs',
|
\ 't:typedefs',
|
||||||
\ 'e:enumerators',
|
\ 'e:enumerators',
|
||||||
@@ -542,8 +713,8 @@ Now we have to create the Tagbar language definition in our vimrc:
|
|||||||
\ 's:sections',
|
\ 's:sections',
|
||||||
\ 'g:graphics',
|
\ 'g:graphics',
|
||||||
\ 'l:labels',
|
\ 'l:labels',
|
||||||
\ 'r:refs',
|
\ 'r:refs:1',
|
||||||
\ 'p:pagerefs'
|
\ 'p:pagerefs:1'
|
||||||
\ ],
|
\ ],
|
||||||
\ 'sort' : 0,
|
\ 'sort' : 0,
|
||||||
\ 'deffile' : expand('<sfile>:p:h:h') . '/ctags/latex.cnf'
|
\ 'deffile' : expand('<sfile>:p:h:h') . '/ctags/latex.cnf'
|
||||||
@@ -606,13 +777,24 @@ files.
|
|||||||
problem in practice anyway. Tags with the same name at any other level are
|
problem in practice anyway. Tags with the same name at any other level are
|
||||||
no problem, though.
|
no problem, though.
|
||||||
|
|
||||||
- The fold state of the Tagbar window is lost when the window is left.
|
|
||||||
Again, I don't know of any proper way around this that still allows
|
|
||||||
auto-updating -- |winsaveview()| doesn't really help here.
|
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
8. History *tagbar-history*
|
8. History *tagbar-history*
|
||||||
|
|
||||||
|
2.0.1 (2011-04-26)
|
||||||
|
- Fix sorting bug when 'ignorecase' is set
|
||||||
|
|
||||||
|
2.0 (2011-04-26)
|
||||||
|
- Folding now works correctly. Folds will be preserved when leaving the
|
||||||
|
Tagbar window and when switching between files. Also tag types can be
|
||||||
|
configured to be folded by default, which is useful for things like
|
||||||
|
includes and imports.
|
||||||
|
- DoctorJS/jsctags and other compatible programs are now supported.
|
||||||
|
- All of the highlight groups can now be overridden.
|
||||||
|
- Added keybinding to quickly jump to next/previous top-level tag.
|
||||||
|
- Added Taglist's "p" keybinding for jumping to a tag without leaving the
|
||||||
|
Tagbar window.
|
||||||
|
- Several bugfixes and other small improvements.
|
||||||
|
|
||||||
1.5 (2011-03-06)
|
1.5 (2011-03-06)
|
||||||
- Type definitions can now include a path to a file with the ctags
|
- Type definitions can now include a path to a file with the ctags
|
||||||
definition. This is especially useful for ftplugins that can now ship
|
definition. This is especially useful for ftplugins that can now ship
|
||||||
@@ -659,5 +841,15 @@ warranty of any kind, either expressed or implied. In no event will the
|
|||||||
copyright holder be liable for any damamges resulting from the use of this
|
copyright holder be liable for any damamges resulting from the use of this
|
||||||
software.
|
software.
|
||||||
|
|
||||||
|
The folding technique was inspired by NERDTree by Martin Grenfell.
|
||||||
|
|
||||||
|
Taybin Rutkin:
|
||||||
|
- Contributed tagbar_autofocus option
|
||||||
|
Seth Milliken:
|
||||||
|
- Contributed folding keybindings that resemble the built-in ones
|
||||||
|
|
||||||
|
Thanks to the following people for feature suggestions etc: Jan Christoph
|
||||||
|
Ebersbach, pielgrzym
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
vim: tw=78 ts=8 sw=8 sts=8 noet ft=help
|
vim: tw=78 ts=8 sw=8 sts=8 noet ft=help
|
||||||
|
|||||||
13
doc/tags
13
doc/tags
@@ -79,6 +79,9 @@
|
|||||||
:Loremipsum loremipsum.txt /*:Loremipsum*
|
:Loremipsum loremipsum.txt /*:Loremipsum*
|
||||||
:Loreplace loremipsum.txt /*:Loreplace*
|
:Loreplace loremipsum.txt /*:Loreplace*
|
||||||
:Mark mark.txt /*:Mark*
|
:Mark mark.txt /*:Mark*
|
||||||
|
:MarkClear mark.txt /*:MarkClear*
|
||||||
|
:MarkLoad mark.txt /*:MarkLoad*
|
||||||
|
:MarkSave mark.txt /*:MarkSave*
|
||||||
:Modified: vimblogger_ft.txt /*:Modified:*
|
:Modified: vimblogger_ft.txt /*:Modified:*
|
||||||
:PreviewBlogArticle vimblogger_ft.txt /*:PreviewBlogArticle*
|
:PreviewBlogArticle vimblogger_ft.txt /*:PreviewBlogArticle*
|
||||||
:SendBlogArticle vimblogger_ft.txt /*:SendBlogArticle*
|
:SendBlogArticle vimblogger_ft.txt /*:SendBlogArticle*
|
||||||
@@ -365,16 +368,21 @@ g:loremipsum_files loremipsum.txt /*g:loremipsum_files*
|
|||||||
g:loremipsum_marker loremipsum.txt /*g:loremipsum_marker*
|
g:loremipsum_marker loremipsum.txt /*g:loremipsum_marker*
|
||||||
g:loremipsum_paragraph_template loremipsum.txt /*g:loremipsum_paragraph_template*
|
g:loremipsum_paragraph_template loremipsum.txt /*g:loremipsum_paragraph_template*
|
||||||
g:loremipsum_words loremipsum.txt /*g:loremipsum_words*
|
g:loremipsum_words loremipsum.txt /*g:loremipsum_words*
|
||||||
|
g:mwAutoLoadMarks mark.txt /*g:mwAutoLoadMarks*
|
||||||
|
g:mwAutoSaveMarks mark.txt /*g:mwAutoSaveMarks*
|
||||||
g:mwHistAdd mark.txt /*g:mwHistAdd*
|
g:mwHistAdd mark.txt /*g:mwHistAdd*
|
||||||
g:snippets_dir snipMate.txt /*g:snippets_dir*
|
g:snippets_dir snipMate.txt /*g:snippets_dir*
|
||||||
g:snips_author snipMate.txt /*g:snips_author*
|
g:snips_author snipMate.txt /*g:snips_author*
|
||||||
g:tagbar_autoclose tagbar.txt /*g:tagbar_autoclose*
|
g:tagbar_autoclose tagbar.txt /*g:tagbar_autoclose*
|
||||||
g:tagbar_autofocus tagbar.txt /*g:tagbar_autofocus*
|
g:tagbar_autofocus tagbar.txt /*g:tagbar_autofocus*
|
||||||
|
g:tagbar_autoshowtag tagbar.txt /*g:tagbar_autoshowtag*
|
||||||
g:tagbar_compact tagbar.txt /*g:tagbar_compact*
|
g:tagbar_compact tagbar.txt /*g:tagbar_compact*
|
||||||
g:tagbar_ctags_bin tagbar.txt /*g:tagbar_ctags_bin*
|
g:tagbar_ctags_bin tagbar.txt /*g:tagbar_ctags_bin*
|
||||||
g:tagbar_expand tagbar.txt /*g:tagbar_expand*
|
g:tagbar_expand tagbar.txt /*g:tagbar_expand*
|
||||||
|
g:tagbar_foldlevel tagbar.txt /*g:tagbar_foldlevel*
|
||||||
g:tagbar_left tagbar.txt /*g:tagbar_left*
|
g:tagbar_left tagbar.txt /*g:tagbar_left*
|
||||||
g:tagbar_sort tagbar.txt /*g:tagbar_sort*
|
g:tagbar_sort tagbar.txt /*g:tagbar_sort*
|
||||||
|
g:tagbar_usearrows tagbar.txt /*g:tagbar_usearrows*
|
||||||
g:tagbar_width tagbar.txt /*g:tagbar_width*
|
g:tagbar_width tagbar.txt /*g:tagbar_width*
|
||||||
g:vimwiki_CJK_length vimwiki.txt /*g:vimwiki_CJK_length*
|
g:vimwiki_CJK_length vimwiki.txt /*g:vimwiki_CJK_length*
|
||||||
g:vimwiki_auto_checkbox vimwiki.txt /*g:vimwiki_auto_checkbox*
|
g:vimwiki_auto_checkbox vimwiki.txt /*g:vimwiki_auto_checkbox*
|
||||||
@@ -440,6 +448,8 @@ mark-ideas mark.txt /*mark-ideas*
|
|||||||
mark-installation mark.txt /*mark-installation*
|
mark-installation mark.txt /*mark-installation*
|
||||||
mark-known-problems mark.txt /*mark-known-problems*
|
mark-known-problems mark.txt /*mark-known-problems*
|
||||||
mark-limitations mark.txt /*mark-limitations*
|
mark-limitations mark.txt /*mark-limitations*
|
||||||
|
mark-mappings mark.txt /*mark-mappings*
|
||||||
|
mark-persistence mark.txt /*mark-persistence*
|
||||||
mark-searching mark.txt /*mark-searching*
|
mark-searching mark.txt /*mark-searching*
|
||||||
mark-todo mark.txt /*mark-todo*
|
mark-todo mark.txt /*mark-todo*
|
||||||
mark-usage mark.txt /*mark-usage*
|
mark-usage mark.txt /*mark-usage*
|
||||||
@@ -873,6 +883,7 @@ surround-replacements surround.txt /*surround-replacements*
|
|||||||
surround-targets surround.txt /*surround-targets*
|
surround-targets surround.txt /*surround-targets*
|
||||||
surround.txt surround.txt /*surround.txt*
|
surround.txt surround.txt /*surround.txt*
|
||||||
tagbar tagbar.txt /*tagbar*
|
tagbar tagbar.txt /*tagbar*
|
||||||
|
tagbar-autoopen tagbar.txt /*tagbar-autoopen*
|
||||||
tagbar-bugs tagbar.txt /*tagbar-bugs*
|
tagbar-bugs tagbar.txt /*tagbar-bugs*
|
||||||
tagbar-commands tagbar.txt /*tagbar-commands*
|
tagbar-commands tagbar.txt /*tagbar-commands*
|
||||||
tagbar-configuration tagbar.txt /*tagbar-configuration*
|
tagbar-configuration tagbar.txt /*tagbar-configuration*
|
||||||
@@ -880,10 +891,12 @@ tagbar-contents tagbar.txt /*tagbar-contents*
|
|||||||
tagbar-credits tagbar.txt /*tagbar-credits*
|
tagbar-credits tagbar.txt /*tagbar-credits*
|
||||||
tagbar-extend tagbar.txt /*tagbar-extend*
|
tagbar-extend tagbar.txt /*tagbar-extend*
|
||||||
tagbar-features tagbar.txt /*tagbar-features*
|
tagbar-features tagbar.txt /*tagbar-features*
|
||||||
|
tagbar-highlight tagbar.txt /*tagbar-highlight*
|
||||||
tagbar-history tagbar.txt /*tagbar-history*
|
tagbar-history tagbar.txt /*tagbar-history*
|
||||||
tagbar-installation tagbar.txt /*tagbar-installation*
|
tagbar-installation tagbar.txt /*tagbar-installation*
|
||||||
tagbar-intro tagbar.txt /*tagbar-intro*
|
tagbar-intro tagbar.txt /*tagbar-intro*
|
||||||
tagbar-keys tagbar.txt /*tagbar-keys*
|
tagbar-keys tagbar.txt /*tagbar-keys*
|
||||||
|
tagbar-other tagbar.txt /*tagbar-other*
|
||||||
tagbar-pseudotags tagbar.txt /*tagbar-pseudotags*
|
tagbar-pseudotags tagbar.txt /*tagbar-pseudotags*
|
||||||
tagbar-requirements tagbar.txt /*tagbar-requirements*
|
tagbar-requirements tagbar.txt /*tagbar-requirements*
|
||||||
tagbar-todo tagbar.txt /*tagbar-todo*
|
tagbar-todo tagbar.txt /*tagbar-todo*
|
||||||
|
|||||||
@@ -13,8 +13,28 @@
|
|||||||
" - Requires Vim 7.1 with "matchadd()", or Vim 7.2 or higher.
|
" - Requires Vim 7.1 with "matchadd()", or Vim 7.2 or higher.
|
||||||
" - mark.vim autoload script.
|
" - mark.vim autoload script.
|
||||||
"
|
"
|
||||||
" Version: 2.4.3
|
" Version: 2.5.0
|
||||||
" Changes:
|
" Changes:
|
||||||
|
" 06-May-2011, Ingo Karkat
|
||||||
|
" - By default, enable g:mwAutoSaveMarks, so that marks are always persisted,
|
||||||
|
" but disable g:mwAutoLoadMarks, so that persisted marks have to be explicitly
|
||||||
|
" loaded, if that is desired. I often wondered why I got unexpected mark
|
||||||
|
" highlightings in a new Vim session until I realized that I had used marks in
|
||||||
|
" a previous session and forgot to clear them.
|
||||||
|
"
|
||||||
|
" 21-Apr-2011, Ingo Karkat
|
||||||
|
" - Expose toggling of mark display (keeping the mark patterns) via new
|
||||||
|
" <Plug>MarkToggle mapping. Offer :MarkClear command as a replacement for the
|
||||||
|
" old argumentless :Mark command, which now just disables, but not clears all
|
||||||
|
" marks.
|
||||||
|
" - Implement lazy-loading of disabled persistent marks via g:mwDoDeferredLoad
|
||||||
|
" flag passing to autoload/mark.vim.
|
||||||
|
"
|
||||||
|
" 19-Apr-2011, Ingo Karkat
|
||||||
|
" - ENH: Add explicit mark persistence via :MarkLoad and :MarkSave commands and
|
||||||
|
" automatic persistence via the g:mwAutoLoadMarks and g:mwAutoSaveMarks
|
||||||
|
" configuration flags.
|
||||||
|
"
|
||||||
" 15-Apr-2011, Ingo Karkat
|
" 15-Apr-2011, Ingo Karkat
|
||||||
" - Avoid losing the mark highlightings on :syn on or :colorscheme commands.
|
" - Avoid losing the mark highlightings on :syn on or :colorscheme commands.
|
||||||
" Thanks to Zhou YiChao for alerting me to this issue and suggesting a fix.
|
" Thanks to Zhou YiChao for alerting me to this issue and suggesting a fix.
|
||||||
@@ -142,6 +162,14 @@ if !exists('g:mwHistAdd')
|
|||||||
let g:mwHistAdd = '/@'
|
let g:mwHistAdd = '/@'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if ! exists('g:mwAutoLoadMarks')
|
||||||
|
let g:mwAutoLoadMarks = 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
if ! exists('g:mwAutoSaveMarks')
|
||||||
|
let g:mwAutoSaveMarks = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
"- default highlightings ------------------------------------------------------
|
"- default highlightings ------------------------------------------------------
|
||||||
function! s:DefaultHighlightings()
|
function! s:DefaultHighlightings()
|
||||||
@@ -168,7 +196,8 @@ vnoremap <silent> <Plug>MarkSet <C-\><C-n>:call mark#DoMark(mark#GetVisualSele
|
|||||||
nnoremap <silent> <Plug>MarkRegex :<C-u>call mark#MarkRegex('')<CR>
|
nnoremap <silent> <Plug>MarkRegex :<C-u>call mark#MarkRegex('')<CR>
|
||||||
vnoremap <silent> <Plug>MarkRegex <C-\><C-n>:call mark#MarkRegex(mark#GetVisualSelectionAsRegexp())<CR>
|
vnoremap <silent> <Plug>MarkRegex <C-\><C-n>:call mark#MarkRegex(mark#GetVisualSelectionAsRegexp())<CR>
|
||||||
nnoremap <silent> <Plug>MarkClear :<C-u>call mark#DoMark(mark#CurrentMark()[0])<CR>
|
nnoremap <silent> <Plug>MarkClear :<C-u>call mark#DoMark(mark#CurrentMark()[0])<CR>
|
||||||
nnoremap <silent> <Plug>MarkAllClear :<C-u>call mark#DoMark()<CR>
|
nnoremap <silent> <Plug>MarkAllClear :<C-u>call mark#ClearAll()<CR>
|
||||||
|
nnoremap <silent> <Plug>MarkToggle :<C-u>call mark#Toggle()<CR>
|
||||||
|
|
||||||
nnoremap <silent> <Plug>MarkSearchCurrentNext :<C-u>call mark#SearchCurrentMark(0)<CR>
|
nnoremap <silent> <Plug>MarkSearchCurrentNext :<C-u>call mark#SearchCurrentMark(0)<CR>
|
||||||
nnoremap <silent> <Plug>MarkSearchCurrentPrev :<C-u>call mark#SearchCurrentMark(1)<CR>
|
nnoremap <silent> <Plug>MarkSearchCurrentPrev :<C-u>call mark#SearchCurrentMark(1)<CR>
|
||||||
@@ -196,6 +225,7 @@ if !hasmapto('<Plug>MarkClear', 'n')
|
|||||||
nmap <unique> <silent> <Leader>n <Plug>MarkClear
|
nmap <unique> <silent> <Leader>n <Plug>MarkClear
|
||||||
endif
|
endif
|
||||||
" No default mapping for <Plug>MarkAllClear.
|
" No default mapping for <Plug>MarkAllClear.
|
||||||
|
" No default mapping for <Plug>MarkToggle.
|
||||||
|
|
||||||
if !hasmapto('<Plug>MarkSearchCurrentNext', 'n')
|
if !hasmapto('<Plug>MarkSearchCurrentNext', 'n')
|
||||||
nmap <unique> <silent> <Leader>* <Plug>MarkSearchCurrentNext
|
nmap <unique> <silent> <Leader>* <Plug>MarkSearchCurrentNext
|
||||||
@@ -219,5 +249,41 @@ endif
|
|||||||
|
|
||||||
"- commands -------------------------------------------------------------------
|
"- commands -------------------------------------------------------------------
|
||||||
command! -nargs=? Mark call mark#DoMark(<f-args>)
|
command! -nargs=? Mark call mark#DoMark(<f-args>)
|
||||||
|
command! -bar MarkClear call mark#ClearAll()
|
||||||
|
|
||||||
|
command! -bar MarkLoad call mark#LoadCommand(1)
|
||||||
|
command! -bar MarkSave call mark#SaveCommand()
|
||||||
|
|
||||||
|
|
||||||
|
"- marks persistence ----------------------------------------------------------
|
||||||
|
if g:mwAutoLoadMarks
|
||||||
|
" As the viminfo is only processed after sourcing of the runtime files, the
|
||||||
|
" persistent global variables are not yet available here. Defer this until Vim
|
||||||
|
" startup has completed.
|
||||||
|
function! s:AutoLoadMarks()
|
||||||
|
if g:mwAutoLoadMarks && exists('g:MARK_MARKS') && g:MARK_MARKS !=# '[]'
|
||||||
|
if ! exists('g:MARK_ENABLED') || g:MARK_ENABLED
|
||||||
|
" There are persistent marks and they haven't been disabled; we need to
|
||||||
|
" show them right now.
|
||||||
|
call mark#LoadCommand(0)
|
||||||
|
else
|
||||||
|
" Though there are persistent marks, they have been disabled. We avoid
|
||||||
|
" sourcing the autoload script and its invasive autocmds right now;
|
||||||
|
" maybe the marks are never turned on. We just inform the autoload
|
||||||
|
" script that it should do this once it is sourced on-demand by a
|
||||||
|
" mark mapping or command.
|
||||||
|
let g:mwDoDeferredLoad = 1
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
augroup MarkInitialization
|
||||||
|
autocmd!
|
||||||
|
" Note: Avoid triggering the autoload unless there actually are persistent
|
||||||
|
" marks. For that, we need to check that g:MARK_MARKS doesn't contain the
|
||||||
|
" empty list representation, and also :execute the :call.
|
||||||
|
autocmd VimEnter * call <SID>AutoLoadMarks()
|
||||||
|
augroup END
|
||||||
|
endif
|
||||||
|
|
||||||
" vim: ts=2 sw=2
|
" vim: ts=2 sw=2
|
||||||
|
|||||||
1896
plugin/tagbar.vim
1896
plugin/tagbar.vim
File diff suppressed because it is too large
Load Diff
@@ -3,25 +3,58 @@
|
|||||||
" Author: Jan Larres <jan@majutsushi.net>
|
" Author: Jan Larres <jan@majutsushi.net>
|
||||||
" Licence: Vim licence
|
" Licence: Vim licence
|
||||||
" Website: http://majutsushi.github.com/tagbar/
|
" Website: http://majutsushi.github.com/tagbar/
|
||||||
" Version: 1.5
|
" Version: 2.0.1
|
||||||
|
|
||||||
if exists("b:current_syntax")
|
if exists("b:current_syntax")
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
syntax match Comment '^" .*' " Comments
|
if has('multi_byte') && has('unix') && &encoding == 'utf-8' &&
|
||||||
syntax match Identifier '^ [^: ]\+[^:]\+$' " Non-scoped kinds
|
\ (empty(&termencoding) || &termencoding == 'utf-8')
|
||||||
syntax match Title '[^(* ]\+\ze\*\? :' " Scope names
|
syntax match TagbarKind '\([▶▼] \)\@<=[^-+: ]\+[^:]\+$'
|
||||||
syntax match Type ' : \zs.*' " Scope types
|
syntax match TagbarScope '\([▶▼][-+# ]\)\@<=[^*]\+\(\*\?\(([^)]\+)\)\? :\)\@='
|
||||||
syntax match SpecialKey '(.*)' " Signatures
|
|
||||||
syntax match NonText '\*\ze :' " Pseudo-tag identifiers
|
syntax match TagbarFoldIcon '[▶▼]\([-+# ]\)\@='
|
||||||
|
|
||||||
|
syntax match TagbarAccessPublic '\([▶▼ ]\)\@<=+\([^-+# ]\)\@='
|
||||||
|
syntax match TagbarAccessProtected '\([▶▼ ]\)\@<=#\([^-+# ]\)\@='
|
||||||
|
syntax match TagbarAccessPrivate '\([▶▼ ]\)\@<=-\([^-+# ]\)\@='
|
||||||
|
elseif has('multi_byte') && (has('win32') || has('win64')) && g:tagbar_usearrows
|
||||||
|
syntax match TagbarKind '\([▷◢] \)\@<=[^-+: ]\+[^:]\+$'
|
||||||
|
syntax match TagbarScope '\([▷◢][-+# ]\)\@<=[^*]\+\(\*\?\(([^)]\+)\)\? :\)\@='
|
||||||
|
|
||||||
|
syntax match TagbarFoldIcon '[▷◢]\([-+# ]\)\@='
|
||||||
|
|
||||||
|
syntax match TagbarAccessPublic '\([▷◢ ]\)\@<=+\([^-+# ]\)\@='
|
||||||
|
syntax match TagbarAccessProtected '\([▷◢ ]\)\@<=#\([^-+# ]\)\@='
|
||||||
|
syntax match TagbarAccessPrivate '\([▷◢ ]\)\@<=-\([^-+# ]\)\@='
|
||||||
|
else
|
||||||
|
syntax match TagbarKind '\([-+] \)\@<=[^-+: ]\+[^:]\+$'
|
||||||
|
syntax match TagbarScope '\([-+][-+# ]\)\@<=[^*]\+\(\*\?\(([^)]\+)\)\? :\)\@='
|
||||||
|
|
||||||
|
syntax match TagbarFoldIcon '[-+]\([-+# ]\)\@='
|
||||||
|
|
||||||
|
syntax match TagbarAccessPublic '\([-+ ]\)\@<=+\([^-+# ]\)\@='
|
||||||
|
syntax match TagbarAccessProtected '\([-+ ]\)\@<=#\([^-+# ]\)\@='
|
||||||
|
syntax match TagbarAccessPrivate '\([-+ ]\)\@<=-\([^-+# ]\)\@='
|
||||||
|
endif
|
||||||
|
|
||||||
|
syntax match TagbarComment '^".*'
|
||||||
|
syntax match TagbarType ' : \zs.*'
|
||||||
|
syntax match TagbarSignature '(.*)'
|
||||||
|
syntax match TagbarPseudoID '\*\ze :'
|
||||||
|
|
||||||
|
highlight default link TagbarComment Comment
|
||||||
|
highlight default link TagbarKind Identifier
|
||||||
|
highlight default link TagbarScope Title
|
||||||
|
highlight default link TagbarType Type
|
||||||
|
highlight default link TagbarSignature SpecialKey
|
||||||
|
highlight default link TagbarPseudoID NonText
|
||||||
|
highlight default link TagbarFoldIcon Statement
|
||||||
|
highlight default link TagbarHighlight Search
|
||||||
|
|
||||||
highlight default TagbarAccessPublic guifg=Green ctermfg=Green
|
highlight default TagbarAccessPublic guifg=Green ctermfg=Green
|
||||||
highlight default TagbarAccessProtected guifg=Blue ctermfg=Blue
|
highlight default TagbarAccessProtected guifg=Blue ctermfg=Blue
|
||||||
highlight default TagbarAccessPrivate guifg=Red ctermfg=Red
|
highlight default TagbarAccessPrivate guifg=Red ctermfg=Red
|
||||||
|
|
||||||
syntax match TagbarAccessPublic '^\s*+\ze[^ ]'
|
|
||||||
syntax match TagbarAccessProtected '^\s*#\ze[^ ]'
|
|
||||||
syntax match TagbarAccessPrivate '^\s*-\ze[^ ]'
|
|
||||||
|
|
||||||
let b:current_syntax = "tagbar"
|
let b:current_syntax = "tagbar"
|
||||||
|
|||||||
Reference in New Issue
Block a user