mirror of https://github.com/akelge/vim
Added trac support
This commit is contained in:
parent
ad45c77370
commit
0294ea6dab
|
@ -1,2 +1,3 @@
|
|||
textformat.vba: call delete('/Users/andre/.vim/autoload/textformat.vim')|call delete('/Users/andre/.vim/doc/textformat.txt')|call delete('/Users/andre/.vim/plugin/textformat.vim')
|
||||
conque_2.0.vba: call delete('/Users/andre/.vim/doc/conque_term.txt')|call delete('/Users/andre/.vim/syntax/conque_term.vim')|call delete('/Users/andre/.vim/autoload/conque_term/conque_screen.py')|call delete('/Users/andre/.vim/autoload/conque_term/conque_win32_util.py')|call delete('/Users/andre/.vim/autoload/conque_term/conque_sole_shared_memory.py')|call delete('/Users/andre/.vim/autoload/conque_term/conque.py')|call delete('/Users/andre/.vim/autoload/conque_term/conque_sole_wrapper.py')|call delete('/Users/andre/.vim/autoload/conque_term/conque_sole_communicator.py')|call delete('/Users/andre/.vim/autoload/conque_term/conque_sole.py')|call delete('/Users/andre/.vim/autoload/conque_term/conque_globals.py')|call delete('/Users/andre/.vim/autoload/conque_term/conque_subprocess.py')|call delete('/Users/andre/.vim/autoload/conque_term/conque_sole_subprocess.py')|call delete('/Users/andre/.vim/autoload/conque_term.vim')|call delete('/Users/andre/.vim/plugin/conque_term.vim')
|
||||
Align.vba: call delete('/Users/andre/.vim/plugin/AlignPlugin.vim')|call delete('/Users/andre/.vim/plugin/AlignMapsPlugin.vim')|call delete('/Users/andre/.vim/plugin/cecutil.vim')|call delete('/Users/andre/.vim/doc/Align.txt')|call delete('/Users/andre/.vim/autoload/Align.vim')|call delete('/Users/andre/.vim/autoload/AlignMaps.vim')
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,330 @@
|
|||
" AlignMaps.vim : support functions for AlignMaps
|
||||
" Author: Charles E. Campbell, Jr.
|
||||
" Date: Mar 03, 2009
|
||||
" Version: 41
|
||||
" ---------------------------------------------------------------------
|
||||
" Load Once: {{{1
|
||||
if &cp || exists("g:loaded_AlignMaps")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_AlignMaps= "v41"
|
||||
let s:keepcpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" =====================================================================
|
||||
" Functions: {{{1
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" AlignMaps#WrapperStart: {{{2
|
||||
fun! AlignMaps#WrapperStart(vis) range
|
||||
" call Dfunc("AlignMaps#WrapperStart(vis=".a:vis.")")
|
||||
|
||||
if a:vis
|
||||
norm! '<ma'>
|
||||
endif
|
||||
|
||||
if line("'y") == 0 || line("'z") == 0 || !exists("s:alignmaps_wrapcnt") || s:alignmaps_wrapcnt <= 0
|
||||
" call Decho("wrapper initialization")
|
||||
let s:alignmaps_wrapcnt = 1
|
||||
let s:alignmaps_keepgd = &gdefault
|
||||
let s:alignmaps_keepsearch = @/
|
||||
let s:alignmaps_keepch = &ch
|
||||
let s:alignmaps_keepmy = SaveMark("'y")
|
||||
let s:alignmaps_keepmz = SaveMark("'z")
|
||||
let s:alignmaps_posn = SaveWinPosn(0)
|
||||
" set up fencepost blank lines
|
||||
put =''
|
||||
norm! mz'a
|
||||
put! =''
|
||||
ky
|
||||
let s:alignmaps_zline = line("'z")
|
||||
exe "'y,'zs/@/\177/ge"
|
||||
else
|
||||
" call Decho("embedded wrapper")
|
||||
let s:alignmaps_wrapcnt = s:alignmaps_wrapcnt + 1
|
||||
norm! 'yjma'zk
|
||||
endif
|
||||
|
||||
" change some settings to align-standard values
|
||||
set nogd
|
||||
set ch=2
|
||||
AlignPush
|
||||
norm! 'zk
|
||||
" call Dret("AlignMaps#WrapperStart : alignmaps_wrapcnt=".s:alignmaps_wrapcnt." my=".line("'y")." mz=".line("'z"))
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" AlignMaps#WrapperEnd: {{{2
|
||||
fun! AlignMaps#WrapperEnd() range
|
||||
" call Dfunc("AlignMaps#WrapperEnd() alignmaps_wrapcnt=".s:alignmaps_wrapcnt." my=".line("'y")." mz=".line("'z"))
|
||||
|
||||
" remove trailing white space introduced by whatever in the modification zone
|
||||
'y,'zs/ \+$//e
|
||||
|
||||
" restore AlignCtrl settings
|
||||
AlignPop
|
||||
|
||||
let s:alignmaps_wrapcnt= s:alignmaps_wrapcnt - 1
|
||||
if s:alignmaps_wrapcnt <= 0
|
||||
" initial wrapper ending
|
||||
exe "'y,'zs/\177/@/ge"
|
||||
|
||||
" if the 'z line hasn't moved, then go ahead and restore window position
|
||||
let zstationary= s:alignmaps_zline == line("'z")
|
||||
|
||||
" remove fencepost blank lines.
|
||||
" restore 'a
|
||||
norm! 'yjmakdd'zdd
|
||||
|
||||
" restore original 'y, 'z, and window positioning
|
||||
call RestoreMark(s:alignmaps_keepmy)
|
||||
call RestoreMark(s:alignmaps_keepmz)
|
||||
if zstationary > 0
|
||||
call RestoreWinPosn(s:alignmaps_posn)
|
||||
" call Decho("restored window positioning")
|
||||
endif
|
||||
|
||||
" restoration of options
|
||||
let &gd= s:alignmaps_keepgd
|
||||
let &ch= s:alignmaps_keepch
|
||||
let @/ = s:alignmaps_keepsearch
|
||||
|
||||
" remove script variables
|
||||
unlet s:alignmaps_keepch
|
||||
unlet s:alignmaps_keepsearch
|
||||
unlet s:alignmaps_keepmy
|
||||
unlet s:alignmaps_keepmz
|
||||
unlet s:alignmaps_keepgd
|
||||
unlet s:alignmaps_posn
|
||||
endif
|
||||
|
||||
" call Dret("AlignMaps#WrapperEnd : alignmaps_wrapcnt=".s:alignmaps_wrapcnt." my=".line("'y")." mz=".line("'z"))
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" AlignMaps#StdAlign: some semi-standard align calls {{{2
|
||||
fun! AlignMaps#StdAlign(mode) range
|
||||
" call Dfunc("AlignMaps#StdAlign(mode=".a:mode.")")
|
||||
if a:mode == 1
|
||||
" align on @
|
||||
" call Decho("align on @")
|
||||
AlignCtrl mIp1P1=l @
|
||||
'a,.Align
|
||||
elseif a:mode == 2
|
||||
" align on @, retaining all initial white space on each line
|
||||
" call Decho("align on @, retaining all initial white space on each line")
|
||||
AlignCtrl mWp1P1=l @
|
||||
'a,.Align
|
||||
elseif a:mode == 3
|
||||
" like mode 2, but ignore /* */-style comments
|
||||
" call Decho("like mode 2, but ignore /* */-style comments")
|
||||
AlignCtrl v ^\s*/[/*]
|
||||
AlignCtrl mWp1P1=l @
|
||||
'a,.Align
|
||||
else
|
||||
echoerr "(AlignMaps) AlignMaps#StdAlign doesn't support mode#".a:mode
|
||||
endif
|
||||
" call Dret("AlignMaps#StdAlign")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" AlignMaps#CharJoiner: joins lines which end in the given character (spaces {{{2
|
||||
" at end are ignored)
|
||||
fun! AlignMaps#CharJoiner(chr)
|
||||
" call Dfunc("AlignMaps#CharJoiner(chr=".a:chr.")")
|
||||
let aline = line("'a")
|
||||
let rep = line(".") - aline
|
||||
while rep > 0
|
||||
norm! 'a
|
||||
while match(getline(aline),a:chr . "\s*$") != -1 && rep >= 0
|
||||
" while = at end-of-line, delete it and join with next
|
||||
norm! 'a$
|
||||
j!
|
||||
let rep = rep - 1
|
||||
endwhile
|
||||
" update rep(eat) count
|
||||
let rep = rep - 1
|
||||
if rep <= 0
|
||||
" terminate loop if at end-of-block
|
||||
break
|
||||
endif
|
||||
" prepare for next line
|
||||
norm! jma
|
||||
let aline = line("'a")
|
||||
endwhile
|
||||
" call Dret("AlignMaps#CharJoiner")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" AlignMaps#Equals: supports \t= and \T= {{{2
|
||||
fun! AlignMaps#Equals() range
|
||||
" call Dfunc("AlignMaps#Equals()")
|
||||
'a,'zs/\s\+\([*/+\-%|&\~^]\==\)/ \1/e
|
||||
'a,'zs@ \+\([*/+\-%|&\~^]\)=@\1=@ge
|
||||
'a,'zs/==/\="\<Char-0x0f>\<Char-0x0f>"/ge
|
||||
'a,'zs/\([!<>:]\)=/\=submatch(1)."\<Char-0x0f>"/ge
|
||||
norm g'zk
|
||||
AlignCtrl mIp1P1=l =
|
||||
AlignCtrl g =
|
||||
'a,'z-1Align
|
||||
'a,'z-1s@\([*/+\-%|&\~^!=]\)\( \+\)=@\2\1=@ge
|
||||
'a,'z-1s/\( \+\);/;\1/ge
|
||||
if &ft == "c" || &ft == "cpp"
|
||||
" call Decho("exception for ".&ft)
|
||||
'a,'z-1v/^\s*\/[*/]/s/\/[*/]/@&@/e
|
||||
'a,'z-1v/^\s*\/[*/]/s/\*\//@&/e
|
||||
if exists("g:mapleader")
|
||||
exe "norm 'zk"
|
||||
call AlignMaps#StdAlign(1)
|
||||
else
|
||||
exe "norm 'zk"
|
||||
call AlignMaps#StdAlign(1)
|
||||
endif
|
||||
'y,'zs/^\(\s*\) @/\1/e
|
||||
endif
|
||||
'a,'z-1s/\%x0f/=/ge
|
||||
'y,'zs/ @//eg
|
||||
" call Dret("AlignMaps#Equals")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" AlignMaps#Afnc: useful for splitting one-line function beginnings {{{2
|
||||
" into one line per argument format
|
||||
fun! AlignMaps#Afnc()
|
||||
" call Dfunc("AlignMaps#Afnc()")
|
||||
|
||||
" keep display quiet
|
||||
let chkeep = &ch
|
||||
let gdkeep = &gd
|
||||
let vekeep = &ve
|
||||
set ch=2 nogd ve=
|
||||
|
||||
" will use marks y,z ; save current values
|
||||
let mykeep = SaveMark("'y")
|
||||
let mzkeep = SaveMark("'z")
|
||||
|
||||
" Find beginning of function -- be careful to skip over comments
|
||||
let cmmntid = synIDtrans(hlID("Comment"))
|
||||
let stringid = synIDtrans(hlID("String"))
|
||||
exe "norm! ]]"
|
||||
while search(")","bW") != 0
|
||||
" call Decho("line=".line(".")." col=".col("."))
|
||||
let parenid= synIDtrans(synID(line("."),col("."),1))
|
||||
if parenid != cmmntid && parenid != stringid
|
||||
break
|
||||
endif
|
||||
endwhile
|
||||
norm! %my
|
||||
s/(\s*\(\S\)/(\r \1/e
|
||||
exe "norm! `y%"
|
||||
s/)\s*\(\/[*/]\)/)\r\1/e
|
||||
exe "norm! `y%mz"
|
||||
'y,'zs/\s\+$//e
|
||||
'y,'zs/^\s\+//e
|
||||
'y+1,'zs/^/ /
|
||||
|
||||
" insert newline after every comma only one parenthesis deep
|
||||
sil! exe "norm! `y\<right>h"
|
||||
let parens = 1
|
||||
let cmmnt = 0
|
||||
let cmmntline= -1
|
||||
while parens >= 1
|
||||
" call Decho("parens=".parens." @a=".@a)
|
||||
exe 'norm! ma "ay`a '
|
||||
if @a == "("
|
||||
let parens= parens + 1
|
||||
elseif @a == ")"
|
||||
let parens= parens - 1
|
||||
|
||||
" comment bypass: /* ... */ or //...
|
||||
elseif cmmnt == 0 && @a == '/'
|
||||
let cmmnt= 1
|
||||
elseif cmmnt == 1
|
||||
if @a == '/'
|
||||
let cmmnt = 2 " //...
|
||||
let cmmntline= line(".")
|
||||
elseif @a == '*'
|
||||
let cmmnt= 3 " /*...
|
||||
else
|
||||
let cmmnt= 0
|
||||
endif
|
||||
elseif cmmnt == 2 && line(".") != cmmntline
|
||||
let cmmnt = 0
|
||||
let cmmntline= -1
|
||||
elseif cmmnt == 3 && @a == '*'
|
||||
let cmmnt= 4
|
||||
elseif cmmnt == 4
|
||||
if @a == '/'
|
||||
let cmmnt= 0 " ...*/
|
||||
elseif @a != '*'
|
||||
let cmmnt= 3
|
||||
endif
|
||||
|
||||
elseif @a == "," && parens == 1 && cmmnt == 0
|
||||
exe "norm! i\<CR>\<Esc>"
|
||||
endif
|
||||
endwhile
|
||||
norm! `y%mz%
|
||||
sil! 'y,'zg/^\s*$/d
|
||||
|
||||
" perform substitutes to mark fields for Align
|
||||
sil! 'y+1,'zv/^\//s/^\s\+\(\S\)/ \1/e
|
||||
sil! 'y+1,'zv/^\//s/\(\S\)\s\+/\1 /eg
|
||||
sil! 'y+1,'zv/^\//s/\* \+/*/ge
|
||||
sil! 'y+1,'zv/^\//s/\w\zs\s*\*/ */ge
|
||||
" func
|
||||
" ws <- declaration -> <-ptr -> <-var-> <-[array][] -> <-glop-> <-end->
|
||||
sil! 'y+1,'zv/^\//s/^\s*\(\(\K\k*\s*\)\+\)\s\+\([(*]*\)\s*\(\K\k*\)\s*\(\(\[.\{-}]\)*\)\s*\(.\{-}\)\=\s*\([,)]\)\s*$/ \1@#\3@\4\5@\7\8/e
|
||||
sil! 'y+1,'z+1g/^\s*\/[*/]/norm! kJ
|
||||
sil! 'y+1,'z+1s%/[*/]%@&@%ge
|
||||
sil! 'y+1,'z+1s%*/%@&%ge
|
||||
AlignCtrl mIp0P0=l @
|
||||
sil! 'y+1,'zAlign
|
||||
sil! 'y,'zs%@\(/[*/]\)@%\t\1 %e
|
||||
sil! 'y,'zs%@\*/% */%e
|
||||
sil! 'y,'zs/@\([,)]\)/\1/
|
||||
sil! 'y,'zs/@/ /
|
||||
AlignCtrl mIlrp0P0= # @
|
||||
sil! 'y+1,'zAlign
|
||||
sil! 'y+1,'zs/#/ /
|
||||
sil! 'y+1,'zs/@//
|
||||
sil! 'y+1,'zs/\(\s\+\)\([,)]\)/\2\1/e
|
||||
|
||||
" Restore
|
||||
call RestoreMark(mykeep)
|
||||
call RestoreMark(mzkeep)
|
||||
let &ch= chkeep
|
||||
let &gd= gdkeep
|
||||
let &ve= vekeep
|
||||
|
||||
" call Dret("AlignMaps#Afnc")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" AlignMaps#FixMultiDec: converts a type arg,arg,arg; line to multiple lines {{{2
|
||||
fun! AlignMaps#FixMultiDec()
|
||||
" call Dfunc("AlignMaps#FixMultiDec()")
|
||||
|
||||
" save register x
|
||||
let xkeep = @x
|
||||
let curline = getline(".")
|
||||
" call Decho("curline<".curline.">")
|
||||
|
||||
" Get the type. I'm assuming one type per line (ie. int x; double y; on one line will not be handled properly)
|
||||
let @x=substitute(curline,'^\(\s*[a-zA-Z_ \t][a-zA-Z0-9_ \t]*\)\s\+[(*]*\h.*$','\1','')
|
||||
" call Decho("@x<".@x.">")
|
||||
|
||||
" transform line
|
||||
exe 's/,/;\r'.@x.' /ge'
|
||||
|
||||
"restore register x
|
||||
let @x= xkeep
|
||||
|
||||
" call Dret("AlignMaps#FixMultiDec : my=".line("'y")." mz=".line("'z"))
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Restore: {{{1
|
||||
let &cpo= s:keepcpo
|
||||
unlet s:keepcpo
|
||||
" vim: ts=4 fdm=marker
|
File diff suppressed because it is too large
Load Diff
171
vim/doc/tags
171
vim/doc/tags
|
@ -75,6 +75,46 @@
|
|||
:NERDTreeFromBookmark NERD_tree.txt /*:NERDTreeFromBookmark*
|
||||
:NERDTreeMirror NERD_tree.txt /*:NERDTreeMirror*
|
||||
:NERDTreeToggle NERD_tree.txt /*:NERDTreeToggle*
|
||||
:TChangesetOpen trac.txt /*:TChangesetOpen*
|
||||
:TTAddComment trac.txt /*:TTAddComment*
|
||||
:TTClearAllFilters trac.txt /*:TTClearAllFilters*
|
||||
:TTClearFilter trac.txt /*:TTClearFilter*
|
||||
:TTFilterComponent trac.txt /*:TTFilterComponent*
|
||||
:TTFilterMilestone trac.txt /*:TTFilterMilestone*
|
||||
:TTFilterNoMilestone trac.txt /*:TTFilterNoMilestone*
|
||||
:TTFilterNoOwner trac.txt /*:TTFilterNoOwner*
|
||||
:TTFilterOwner trac.txt /*:TTFilterOwner*
|
||||
:TTFilterPriority trac.txt /*:TTFilterPriority*
|
||||
:TTFilterResolution trac.txt /*:TTFilterResolution*
|
||||
:TTFilterSeverity trac.txt /*:TTFilterSeverity*
|
||||
:TTFilterStatus trac.txt /*:TTFilterStatus*
|
||||
:TTFilterType trac.txt /*:TTFilterType*
|
||||
:TTIgnoreComponent trac.txt /*:TTIgnoreComponent*
|
||||
:TTIgnoreMilestone trac.txt /*:TTIgnoreMilestone*
|
||||
:TTIgnoreNoMilestone trac.txt /*:TTIgnoreNoMilestone*
|
||||
:TTIgnoreNoOwner trac.txt /*:TTIgnoreNoOwner*
|
||||
:TTIgnoreOwner trac.txt /*:TTIgnoreOwner*
|
||||
:TTIgnorePriority trac.txt /*:TTIgnorePriority*
|
||||
:TTIgnoreResolution trac.txt /*:TTIgnoreResolution*
|
||||
:TTIgnoreSeverity trac.txt /*:TTIgnoreSeverity*
|
||||
:TTIgnoreStatus trac.txt /*:TTIgnoreStatus*
|
||||
:TTIgnoreType trac.txt /*:TTIgnoreType*
|
||||
:TTLServer trac.txt /*:TTLServer*
|
||||
:TTListFilters trac.txt /*:TTListFilters*
|
||||
:TTOpen trac.txt /*:TTOpen*
|
||||
:TTPreview trac.txt /*:TTPreview*
|
||||
:TTServer trac.txt /*:TTServer*
|
||||
:TTSet trac.txt /*:TTSet*
|
||||
:TTSortby trac.txt /*:TTSortby*
|
||||
:TTUpdateDescrption trac.txt /*:TTUpdateDescrption*
|
||||
:TTimelineOpen trac.txt /*:TTimelineOpen*
|
||||
:TWAddAttachment trac.txt /*:TWAddAttachment*
|
||||
:TWGetAttachment trac.txt /*:TWGetAttachment*
|
||||
:TWOpen trac.txt /*:TWOpen*
|
||||
:TWPreview trac.txt /*:TWPreview*
|
||||
:TWSave trac.txt /*:TWSave*
|
||||
:TWServer trac.txt /*:TWServer*
|
||||
:TWVimDiff trac.txt /*:TWVimDiff*
|
||||
:TlistAddFiles taglist.txt /*:TlistAddFiles*
|
||||
:TlistAddFilesRecursive taglist.txt /*:TlistAddFilesRecursive*
|
||||
:TlistClose taglist.txt /*:TlistClose*
|
||||
|
@ -108,6 +148,7 @@
|
|||
:VCSUnlock vcscommand.txt /*:VCSUnlock*
|
||||
:VCSUpdate vcscommand.txt /*:VCSUpdate*
|
||||
:VCSVimDiff vcscommand.txt /*:VCSVimDiff*
|
||||
Align-copyright Align.txt /*Align-copyright*
|
||||
ConqueTerm conque_term.txt /*ConqueTerm*
|
||||
ConqueTerm_CWInsert conque_term.txt /*ConqueTerm_CWInsert*
|
||||
ConqueTerm_CloseOnEnd conque_term.txt /*ConqueTerm_CloseOnEnd*
|
||||
|
@ -210,6 +251,13 @@ NERD_commenter.txt NERD_commenter.txt /*NERD_commenter.txt*
|
|||
NERD_tree.txt NERD_tree.txt /*NERD_tree.txt*
|
||||
OpenFilemanager open_terminal.txt /*OpenFilemanager*
|
||||
OpenTerminal open_terminal.txt /*OpenTerminal*
|
||||
TSearch trac.txt /*TSearch*
|
||||
TTAddAttachment trac.txt /*TTAddAttachment*
|
||||
TTCreateDefect trac.txt /*TTCreateDefect*
|
||||
TTCreateEnhancement trac.txt /*TTCreateEnhancement*
|
||||
TTCreateTask trac.txt /*TTCreateTask*
|
||||
TTLoadTicketSession trac.txt /*TTLoadTicketSession*
|
||||
TTSaveTicketSession trac.txt /*TTSaveTicketSession*
|
||||
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_Set_App() taglist.txt /*Tlist_Set_App()*
|
||||
|
@ -234,6 +282,90 @@ VCSCommandSVNDiffOpt vcscommand.txt /*VCSCommandSVNDiffOpt*
|
|||
VCSCommandSVNExec vcscommand.txt /*VCSCommandSVNExec*
|
||||
VCSCommandSplit vcscommand.txt /*VCSCommandSplit*
|
||||
VCSCommandVCSTypeOverride vcscommand.txt /*VCSCommandVCSTypeOverride*
|
||||
align Align.txt /*align*
|
||||
align-align Align.txt /*align-align*
|
||||
align-codepoint Align.txt /*align-codepoint*
|
||||
align-command Align.txt /*align-command*
|
||||
align-commands Align.txt /*align-commands*
|
||||
align-concept Align.txt /*align-concept*
|
||||
align-concepts Align.txt /*align-concepts*
|
||||
align-contents Align.txt /*align-contents*
|
||||
align-control Align.txt /*align-control*
|
||||
align-history Align.txt /*align-history*
|
||||
align-manual Align.txt /*align-manual*
|
||||
align-maps Align.txt /*align-maps*
|
||||
align-multibyte Align.txt /*align-multibyte*
|
||||
align-option Align.txt /*align-option*
|
||||
align-options Align.txt /*align-options*
|
||||
align-strlen Align.txt /*align-strlen*
|
||||
align-usage Align.txt /*align-usage*
|
||||
align-userguide Align.txt /*align-userguide*
|
||||
align-utf Align.txt /*align-utf*
|
||||
align-utf8 Align.txt /*align-utf8*
|
||||
align.txt Align.txt /*align.txt*
|
||||
alignctrl Align.txt /*alignctrl*
|
||||
alignctrl- Align.txt /*alignctrl-*
|
||||
alignctrl-+ Align.txt /*alignctrl-+*
|
||||
alignctrl-- Align.txt /*alignctrl--*
|
||||
alignctrl-: Align.txt /*alignctrl-:*
|
||||
alignctrl-< Align.txt /*alignctrl-<*
|
||||
alignctrl-= Align.txt /*alignctrl-=*
|
||||
alignctrl-> Align.txt /*alignctrl->*
|
||||
alignctrl-C Align.txt /*alignctrl-C*
|
||||
alignctrl-I Align.txt /*alignctrl-I*
|
||||
alignctrl-P Align.txt /*alignctrl-P*
|
||||
alignctrl-W Align.txt /*alignctrl-W*
|
||||
alignctrl-c Align.txt /*alignctrl-c*
|
||||
alignctrl-g Align.txt /*alignctrl-g*
|
||||
alignctrl-l Align.txt /*alignctrl-l*
|
||||
alignctrl-m Align.txt /*alignctrl-m*
|
||||
alignctrl-no-option Align.txt /*alignctrl-no-option*
|
||||
alignctrl-p Align.txt /*alignctrl-p*
|
||||
alignctrl-r Align.txt /*alignctrl-r*
|
||||
alignctrl-separators Align.txt /*alignctrl-separators*
|
||||
alignctrl-settings Align.txt /*alignctrl-settings*
|
||||
alignctrl-v Align.txt /*alignctrl-v*
|
||||
alignctrl-w Align.txt /*alignctrl-w*
|
||||
alignman Align.txt /*alignman*
|
||||
alignmanual Align.txt /*alignmanual*
|
||||
alignmap-Htd Align.txt /*alignmap-Htd*
|
||||
alignmap-T= Align.txt /*alignmap-T=*
|
||||
alignmap-Tsp Align.txt /*alignmap-Tsp*
|
||||
alignmap-a( Align.txt /*alignmap-a(*
|
||||
alignmap-a, Align.txt /*alignmap-a,*
|
||||
alignmap-a< Align.txt /*alignmap-a<*
|
||||
alignmap-a= Align.txt /*alignmap-a=*
|
||||
alignmap-a? Align.txt /*alignmap-a?*
|
||||
alignmap-abox Align.txt /*alignmap-abox*
|
||||
alignmap-acom Align.txt /*alignmap-acom*
|
||||
alignmap-adcom Align.txt /*alignmap-adcom*
|
||||
alignmap-adec Align.txt /*alignmap-adec*
|
||||
alignmap-adef Align.txt /*alignmap-adef*
|
||||
alignmap-afnc Align.txt /*alignmap-afnc*
|
||||
alignmap-anum Align.txt /*alignmap-anum*
|
||||
alignmap-aocom Align.txt /*alignmap-aocom*
|
||||
alignmap-ascom Align.txt /*alignmap-ascom*
|
||||
alignmap-history Align.txt /*alignmap-history*
|
||||
alignmap-m= Align.txt /*alignmap-m=*
|
||||
alignmap-t# Align.txt /*alignmap-t#*
|
||||
alignmap-t, Align.txt /*alignmap-t,*
|
||||
alignmap-t: Align.txt /*alignmap-t:*
|
||||
alignmap-t; Align.txt /*alignmap-t;*
|
||||
alignmap-t< Align.txt /*alignmap-t<*
|
||||
alignmap-t= Align.txt /*alignmap-t=*
|
||||
alignmap-t? Align.txt /*alignmap-t?*
|
||||
alignmap-tab Align.txt /*alignmap-tab*
|
||||
alignmap-tml Align.txt /*alignmap-tml*
|
||||
alignmap-ts, Align.txt /*alignmap-ts,*
|
||||
alignmap-ts: Align.txt /*alignmap-ts:*
|
||||
alignmap-ts< Align.txt /*alignmap-ts<*
|
||||
alignmap-ts= Align.txt /*alignmap-ts=*
|
||||
alignmap-tsp Align.txt /*alignmap-tsp*
|
||||
alignmap-tsq Align.txt /*alignmap-tsq*
|
||||
alignmap-tt Align.txt /*alignmap-tt*
|
||||
alignmap-t~ Align.txt /*alignmap-t~*
|
||||
alignmaps Align.txt /*alignmaps*
|
||||
alignusage Align.txt /*alignusage*
|
||||
b:VCSCommandCommand vcscommand.txt /*b:VCSCommandCommand*
|
||||
b:VCSCommandOriginalBuffer vcscommand.txt /*b:VCSCommandOriginalBuffer*
|
||||
b:VCSCommandSourceFile vcscommand.txt /*b:VCSCommandSourceFile*
|
||||
|
@ -312,6 +444,45 @@ textformat-history textformat.txt /*textformat-history*
|
|||
textformat-keymap textformat.txt /*textformat-keymap*
|
||||
textformat-start textformat.txt /*textformat-start*
|
||||
textformat.txt textformat.txt /*textformat.txt*
|
||||
trac-changeset-view trac.txt /*trac-changeset-view*
|
||||
trac-format trac.txt /*trac-format*
|
||||
trac-format-blockquotes trac.txt /*trac-format-blockquotes*
|
||||
trac-format-definition trac.txt /*trac-format-definition*
|
||||
trac-format-discussion trac.txt /*trac-format-discussion*
|
||||
trac-format-font trac.txt /*trac-format-font*
|
||||
trac-format-headings trac.txt /*trac-format-headings*
|
||||
trac-format-images trac.txt /*trac-format-images*
|
||||
trac-format-links trac.txt /*trac-format-links*
|
||||
trac-format-lists trac.txt /*trac-format-lists*
|
||||
trac-format-macros trac.txt /*trac-format-macros*
|
||||
trac-format-misc trac.txt /*trac-format-misc*
|
||||
trac-format-nolink trac.txt /*trac-format-nolink*
|
||||
trac-format-notes trac.txt /*trac-format-notes*
|
||||
trac-format-paragraphs trac.txt /*trac-format-paragraphs*
|
||||
trac-format-preformatted trac.txt /*trac-format-preformatted*
|
||||
trac-format-processors trac.txt /*trac-format-processors*
|
||||
trac-format-tables trac.txt /*trac-format-tables*
|
||||
trac-format-traclinks trac.txt /*trac-format-traclinks*
|
||||
trac-requirements trac.txt /*trac-requirements*
|
||||
trac-search-view trac.txt /*trac-search-view*
|
||||
trac-server trac.txt /*trac-server*
|
||||
trac-setup trac.txt /*trac-setup*
|
||||
trac-ticket-attachments trac.txt /*trac-ticket-attachments*
|
||||
trac-ticket-changes trac.txt /*trac-ticket-changes*
|
||||
trac-ticket-comments trac.txt /*trac-ticket-comments*
|
||||
trac-ticket-create trac.txt /*trac-ticket-create*
|
||||
trac-ticket-filters trac.txt /*trac-ticket-filters*
|
||||
trac-ticket-session trac.txt /*trac-ticket-session*
|
||||
trac-ticket-sorting trac.txt /*trac-ticket-sorting*
|
||||
trac-ticket-view trac.txt /*trac-ticket-view*
|
||||
trac-timeline-view trac.txt /*trac-timeline-view*
|
||||
trac-wiki-attachments trac.txt /*trac-wiki-attachments*
|
||||
trac-wiki-diff trac.txt /*trac-wiki-diff*
|
||||
trac-wiki-editing trac.txt /*trac-wiki-editing*
|
||||
trac-wiki-htmlpreview trac.txt /*trac-wiki-htmlpreview*
|
||||
trac-wiki-save trac.txt /*trac-wiki-save*
|
||||
trac-wiki-view trac.txt /*trac-wiki-view*
|
||||
trac.txt trac.txt /*trac.txt*
|
||||
vcscommand vcscommand.txt /*vcscommand*
|
||||
vcscommand-buffer-management vcscommand.txt /*vcscommand-buffer-management*
|
||||
vcscommand-buffer-variables vcscommand.txt /*vcscommand-buffer-variables*
|
||||
|
|
|
@ -0,0 +1,627 @@
|
|||
*trac.txt*
|
||||
|
||||
Vimtrac Usage Notes
|
||||
|
||||
1. System Requirements |trac-requirements|
|
||||
2. Setup |trac-setup|
|
||||
3. Server Selection |trac-server|
|
||||
4. Wiki Viewing / Editing |trac-wiki-view|
|
||||
4.1 Wiki Browsing/Editing |trac-wiki-editing|
|
||||
4.2. Adding/ Retrieving an Attachment |trac-wiki-attachments|
|
||||
4.3. HTML Preview |trac-wiki-htmlpreview|
|
||||
4.4. Saving Wiki's |trac-wiki-save|
|
||||
4.5 Wiki Vim Diffs |trac-wiki-diff|
|
||||
5. Trac Ticket View |trac-ticket-view|
|
||||
5.1 Ticket Filters |trac-ticket-filters|
|
||||
5.1.1 Ticket Sorting |trac-ticket-sorting|
|
||||
5.2. Adding Comments |trac-ticket-comments|
|
||||
5.3. Changing ticket states |trac-ticket-changes|
|
||||
5.4. Creating Tickets |trac-ticket-create|
|
||||
5.5. Adding/Retrieving attachments |trac-ticket-attachments|
|
||||
5.6 Ticket Sessions |trac-ticket-session|
|
||||
6. Trac Search View |trac-search-view|
|
||||
7. Changeset View |trac-changeset-view|
|
||||
8. Timeline View |trac-timeline-view|
|
||||
9. WikiFormatting |trac-wiki-formatting|
|
||||
9.1 Font Styles |trac-format-font|
|
||||
9.1 Notes: |trac-format-notes|
|
||||
9.2 Headings |trac-format-headings|
|
||||
9.3 Paragraphs |trac-format-paragraphs|
|
||||
9.4 Lists |trac-format-lists|
|
||||
9.4 Definition Lists |trac-format-definition|
|
||||
9.5 Preformatted Text |trac-format-preformatted|
|
||||
9.6 Blockquotes |trac-format-blockquotes|
|
||||
9.7 Discussion Citations |trac-format-discussion|
|
||||
9.8 Tables |trac-format-tables|
|
||||
9.9 Links |trac-format-links|
|
||||
9.9.1 Trac Links |trac-format-traclinks|
|
||||
9.10 Escaping Links and WikiPageNames |trac-format-nolink|
|
||||
9.11 Images |trac-format-images|
|
||||
9.12 Macros |trac-format-macros|
|
||||
9.13 Processors |trac-format-processors|
|
||||
9.14 Miscellaneous |trac-format-misc|
|
||||
================================================================================
|
||||
1. System Requirements *trac-requirements*
|
||||
|
||||
You must have a working Trac repository version 0.10 or later complete with
|
||||
the xmlrpc plugin and a user with suitable access rights.
|
||||
|
||||
Vim must be compiled with python support and your client must have python
|
||||
2.4.4 or later
|
||||
|
||||
To use the summary view you need to have the Align plugin installed for the
|
||||
layout.
|
||||
|
||||
http://www.vim.org/scripts/script.php?script_id=294
|
||||
================================================================================
|
||||
2. Setup *trac-setup*
|
||||
|
||||
You need to create a list of trac servers using this format in your vimrc.
|
||||
|
||||
"let g:tracServerList = {}
|
||||
"let g:tracServerList['(Server Name)'] =
|
||||
\'http://(user):(password)@(trac serverpath)/login/xmlrpc'
|
||||
|
||||
Check out
|
||||
|
||||
http://www.ascetinteractive.com.au/vimtrac/wiki/UsageNotes and
|
||||
http://www.ascetinteractive.com.au/vimtrac/wiki/TricksAndTips
|
||||
|
||||
for more up to date notes
|
||||
|
||||
================================================================================
|
||||
3. Server Selection *trac-server*
|
||||
|
||||
|
||||
:TWServer [ServerName] *:TWServer*
|
||||
:TTServer [ServerName] *:TTServer*
|
||||
:TTLServer [ServerName] *:TTLServer*
|
||||
|
||||
Sets the current trac server where the
|
||||
The <tab> key will cycle through available servers.
|
||||
|
||||
The wiki (TW), ticket (TT) and timeline (TTL) vaiations will open the
|
||||
respective views
|
||||
================================================================================
|
||||
4. Wiki Viewing / Editing *trac-wiki-view*
|
||||
|
||||
The Trac Wiki view is for browsing an editing a trac websites wiki pages.
|
||||
|
||||
*:TWOpen*
|
||||
|
||||
To open the wiki view use the command :TWOpen [OptionalWikiPage]
|
||||
|
||||
If no page argument is given the plugin will open the main page WikiStart
|
||||
by default
|
||||
|
||||
4.1. Browsing/Editing *trac-wiki-editing*
|
||||
|
||||
The WIKITOC_WINDOW will show a list of pages. Scrolling up and down and
|
||||
Pressing <return> on a page will open the selected page in the WIKI_WINDOW
|
||||
|
||||
Pressing <space> over the page in the WIKITOC_WINDOW will display the page
|
||||
in a browser
|
||||
|
||||
Trac sites usually have a bunch of in built pages Trac* or Wiki* you can
|
||||
hide these from view by setting the global variable in your vimrc. let
|
||||
g:tracHideTracWiki = 'yes'
|
||||
|
||||
At the moment this is done with a simple regexp so if you name your own
|
||||
pages Trac... or Wiki... they will not appear on the Table of Contents.
|
||||
|
||||
You can also load a page by pressing the usual tag jump <c-]> to open the
|
||||
page under the cursor. At the moment theres no page name validation so it
|
||||
will throw an error if you try an open a nonexistant page.
|
||||
|
||||
4.2. Adding/ Retrieving an Attachment *trac-wiki-attachments*
|
||||
|
||||
:TWAddAttachment [file_path] *:TWAddAttachment*
|
||||
|
||||
adds an attachment to the current active wiki page
|
||||
|
||||
:TWGetAttachment [file] *:TWGetAttachment*
|
||||
|
||||
gets an attachment from the active Wiki Page and save it to the current
|
||||
working directory.
|
||||
|
||||
If a Wiki page opened contains attachments The Wiki Attachment window will
|
||||
appear. Attachments can be downloaded by hovering over the desired
|
||||
attachment and pressing <enter>
|
||||
|
||||
4.3. HTML Preview *trac-wiki-htmlpreview*
|
||||
|
||||
:TTPreview *:TWPreview* *:TTPreview*
|
||||
|
||||
displays the current wiki in html preview (only tested on lynx set
|
||||
g:tracBrowser)
|
||||
|
||||
You can also use the shortcut <leader>tp
|
||||
|
||||
4.4. Saving Wiki's *trac-wiki-save*
|
||||
|
||||
To save a page you can type in the command view
|
||||
:TWSave [optional_wiki_update_comment] *:TWSave*
|
||||
|
||||
Alternatively you can quickly save a page with your regular :wq<cr> or :w<cr>
|
||||
which I've mapped to perform the TWSave? command.
|
||||
|
||||
Exiting Trac Wiki View
|
||||
|
||||
Exiting is done by either the command
|
||||
|
||||
:TClose, :wq<cr> or :q<cr> in either of the wiki windows
|
||||
|
||||
4.5 Wiki Vim Diffs *trac-wiki-diff*
|
||||
|
||||
:TWVimDiff <revision no> *:TWVimDiff*
|
||||
|
||||
Opens a vertical split diff The current wiki's <revision no>. If theres
|
||||
no argument supplied it will be the previous revision.
|
||||
|
||||
|
||||
================================================================================
|
||||
5. Trac Ticket View *trac-ticket-view*
|
||||
|
||||
The Trac ticket view is you browse trac tickets
|
||||
|
||||
Opening
|
||||
|
||||
:TTOpen [optional_ticket_id] *:TTOpen*
|
||||
|
||||
Browsing
|
||||
|
||||
You can scroll up and down the ticket list. Pressing enter will load the
|
||||
ticket id under the cursor.
|
||||
|
||||
|
||||
5.1 Ticket Filters *trac-ticket-filters*
|
||||
|
||||
:TTFilterMilestone [Milestone] *:TTFilterMilestone*
|
||||
:TTFilterType [Type] *:TTFilterType*
|
||||
:TTFilterStatus [Status] *:TTFilterStatus*
|
||||
:TTFilterResolution [Resolution *:TTFilterResolution*
|
||||
:TTFilterPriority [Priority] *:TTFilterPriority*
|
||||
:TTFilterSeverity [Severity] *:TTFilterSeverity*
|
||||
:TTFilterComponent [Component] *:TTFilterComponent*
|
||||
:TTFilterOwner [Owner] *:TTFilterOwner*
|
||||
|
||||
For filtering on respective ticket attributes. Allows a tab complete option
|
||||
for Filter acts as a whitelist ignoring all other tickets not matching the
|
||||
attribute
|
||||
|
||||
:TTIgnoreMilestone [Milestone] *:TTIgnoreMilestone*
|
||||
:TTIgnoreType [Type] *:TTIgnoreType*
|
||||
:TTIgnoreStatus [Status] *:TTIgnoreStatus*
|
||||
:TTIgnoreResolution [Resolution *:TTIgnoreResolution*
|
||||
:TTIgnorePriority [Priority] *:TTIgnorePriority*
|
||||
:TTIgnoreSeverity [Severity] *:TTIgnoreSeverity*
|
||||
:TTIgnoreComponent [Component] *:TTIgnoreComponent*
|
||||
:TTIgnoreOwner [Owner] *:TTIgnoreOwner*
|
||||
|
||||
The Opposite of TTFilter... acts as a blacklist filter on tickets.
|
||||
|
||||
:TTIgnoreNoMilestone [NoMilestone] *:TTIgnoreNoMilestone*
|
||||
:TTIgnoreNoOwner [NoOwner] *:TTIgnoreNoOwner*
|
||||
:TTFilterNoMilestone [NoMilestone] *:TTFilterNoMilestone*
|
||||
:TTFilterNoOwner [NoOwner] *:TTFilterNoOwner*
|
||||
|
||||
Special filters for tickets not owned or categorised
|
||||
|
||||
:TTClearAllFilters *:TTClearAllFilters*
|
||||
Resets the filter list to blank
|
||||
:TTClearFilter [filter no] *:TTClearFilter*
|
||||
Filter numbers and descriptions are displayed at the top of the ticket
|
||||
list. Using this filter will remove the filter number
|
||||
:TTListFilters *:TTListFilters*
|
||||
|
||||
5.1.2 Ticket Sorting *trac-ticket-sorting*
|
||||
|
||||
:TTSortby [sort_option] *:TTSortby*
|
||||
|
||||
Tickets can either be sorted according to milestone or priority. Milestones
|
||||
will appear in order of due date and ticket priority is arranged according
|
||||
to the trac-admin priority settings.
|
||||
|
||||
5.2. Adding Comments *trac-ticket-comments*
|
||||
|
||||
The TICKET_COMMENT window is for adding comments. To commit a comment write
|
||||
the message first and then type
|
||||
|
||||
:TTAddComment *:TTAddComment*
|
||||
|
||||
5.3. Changing ticket states *trac-ticket-changes*
|
||||
|
||||
Trac current ticket option modifications (use tab complete)
|
||||
|
||||
:TTSetMilestone [Milestone] *:TTSet*
|
||||
:TTSetType [Type]
|
||||
:TTSetStatus [Status]
|
||||
:TTSetResolution [Resolution]
|
||||
:TTSetPriority [Priority]
|
||||
:TTSetSeverity [Severity]
|
||||
:TTSetComponent [Component]
|
||||
:TTSetSummary [Summary]
|
||||
|
||||
The setting will immediately be sent to the server.
|
||||
|
||||
|
||||
:TTUpdateDescrption *:TTUpdateDescrption*
|
||||
|
||||
Takes the text from the TICKET_COMMENT_WINDOW and updates a tickets
|
||||
description. It will prompt for confirmation before committing
|
||||
|
||||
5.4. Creating Tickets *trac-ticket-create*
|
||||
|
||||
This is still a bit of a hack. If you add a description in the
|
||||
TICKET_COMMENT window and type the command
|
||||
|
||||
:TTCreateTask [ticket_summary] *TTCreateTask*
|
||||
:TTCreateDefect [ticket_summary] *TTCreateDefect*
|
||||
:TTCreateEnhancement [ticket_summary] *TTCreateEnhancement*
|
||||
|
||||
A new ticket will be created with the default attributes (set in trac.ini).
|
||||
When creating a ticket you can create a description initially in the
|
||||
TICKET_COMMENT_WINDOW or alternatively you can add a description later
|
||||
using |TTUpdateDescrption|.
|
||||
|
||||
5.5. Adding/Retrieving attachments *trac-ticket-attachments*
|
||||
|
||||
:TTAddAttachment [file_path] *TTAddAttachment*
|
||||
|
||||
Adds a ticket to the current open ticket
|
||||
:TTGetAttachment [file]
|
||||
|
||||
Retrieves an atteched file and saves it to the current working directory.
|
||||
File options for the current ticket may be viewed with <tab> completion.
|
||||
|
||||
5.6. Ticket Sessions *trac-ticket-session*
|
||||
|
||||
It's possible to associate a list of open files with a trac ticket on the
|
||||
local server which can be handy for reopening tickets another day to make
|
||||
further changes.
|
||||
|
||||
Note: the plugin needs a directory to write to by default it is
|
||||
let g:tracSessionDirectory = expand ('$HOME') . '/.vimtrac_session'
|
||||
|
||||
TTSaveTicketSession *TTSaveTicketSession*
|
||||
Saves the open files and line numbers to the active ticket. You must
|
||||
have a ticket open in the ticket view for this to take effect.
|
||||
|
||||
TTLoadTicketSession *TTLoadTicketSession*
|
||||
|
||||
Loads the Tickets Session information
|
||||
|
||||
5.7. Exiting
|
||||
|
||||
:TClose
|
||||
|
||||
or :q<cr> in either of the Ticket windows will close the view
|
||||
|
||||
================================================================================
|
||||
6. Trac Search View *trac-search-view*
|
||||
|
||||
*TSearch*
|
||||
:TSearch [search_term]
|
||||
|
||||
Opening Trac Search View
|
||||
|
||||
Will open search view containing matching wiki/ticket/changesets along with
|
||||
basic descrriptions
|
||||
|
||||
:TClose will close this view or a ticket/wiki view will open if an item is
|
||||
selected
|
||||
|
||||
================================================================================
|
||||
7. Changeset View *trac-changeset-view*
|
||||
|
||||
:TChangesetOpen [changeset_id] *:TChangesetOpen*
|
||||
|
||||
opens a unified diff changeset view in a split window
|
||||
|
||||
You can also open a changeset by pressing <enter> on a matching
|
||||
Changeset:>> line in the Trac Seatch window
|
||||
|
||||
================================================================================
|
||||
8. Timeline View *trac-timeline-view*
|
||||
|
||||
Timeline view requires feedparser.py installed.
|
||||
|
||||
http://www.feedparser.org/
|
||||
|
||||
The timeline view grabs the rss feed from a trac server.
|
||||
|
||||
:TTimelineOpen *:TTimelineOpen*
|
||||
|
||||
You can also open tickets, wikis and changesets by pressing <enter> on a
|
||||
matching Changeset:>>, Wiki:>> and Ticket:>> line
|
||||
================================================================================
|
||||
9. Trac Wiki Formatting *trac-format*
|
||||
|
||||
This reference is based on the trac wiki information provided with trac.
|
||||
(WikiFormatting) Made easier to read within vim. I'd suggest you read the
|
||||
document in your browser and use this as a quick refresher
|
||||
|
||||
Access this file with :TWikiFormat
|
||||
|
||||
|
||||
Wiki markup is a core feature in Trac, tightly integrating all the other
|
||||
parts of Trac into a flexible and powerful whole.
|
||||
|
||||
Trac has a built in small and powerful wiki rendering engine. This wiki
|
||||
engine implements an ever growing subset of the commands from other popular
|
||||
Wikis, especially [http://moinmoin.wikiwikiweb.de/ MoinMoin].
|
||||
|
||||
|
||||
This page demonstrates the formatting syntax available anywhere
|
||||
WikiFormatting is allowed.
|
||||
|
||||
|
||||
9.1 Font Styles *trac-format-font*
|
||||
|
||||
The Trac wiki supports the following font styles:
|
||||
{{{
|
||||
* '''bold''', '''!''' can be bold too''', and '''! '''
|
||||
* ''italic''
|
||||
* '''''bold italic'''''
|
||||
* __underline__
|
||||
* {{{monospace}}} or `monospace`
|
||||
* ~~strike-through~~
|
||||
* ^superscript^
|
||||
* ,,subscript,,
|
||||
}}}
|
||||
|
||||
|
||||
9.1 Notes: *trac-format-notes*
|
||||
|
||||
`{{{...}}}` and {{{`...`}}} commands not only select a monospace font, but
|
||||
also treat their content as verbatim text, meaning that no further wiki
|
||||
processing is done on this text.
|
||||
|
||||
{{{ ! }}} tells wiki parser to not take the following characters as wiki
|
||||
format, so pay attention to put a space after !, e.g. when ending bold.
|
||||
|
||||
9.2 Headings *trac-format-headings*
|
||||
|
||||
You can create heading by starting a line with one up to five ''equal''
|
||||
characters ("=") followed by a single space and the headline text. The line
|
||||
should end with a space followed by the same number of ''='' characters.
|
||||
The heading might optionally be followed by an explicit id. If not, an
|
||||
implicit but nevertheless readable id will be generated.
|
||||
|
||||
Example:
|
||||
{{{
|
||||
= Heading =
|
||||
== Subheading ==
|
||||
=== About ''this'' ===
|
||||
=== Explicit id === #using-explicit-id-in-heading
|
||||
}}}
|
||||
|
||||
9.3 Paragraphs *trac-format-paragraphs*
|
||||
|
||||
A new text paragraph is created whenever two blocks of text are separated
|
||||
by one or more empty lines.
|
||||
|
||||
A forced line break can also be inserted, using:
|
||||
{{{
|
||||
Line 1[[BR]]Line 2
|
||||
}}}
|
||||
|
||||
|
||||
9.4 Lists *trac-format-lists*
|
||||
|
||||
The wiki supports both ordered/numbered and unordered lists.
|
||||
|
||||
Example:
|
||||
{{{
|
||||
* Item 1
|
||||
* Item 1.1
|
||||
* Item 2
|
||||
|
||||
1. Item 1
|
||||
a. Item 1.a
|
||||
a. Item 1.b
|
||||
i. Item 1.b.i
|
||||
i. Item 1.b.ii
|
||||
1. Item 2
|
||||
And numbered lists can also be given an explicit number:
|
||||
3. Item 3
|
||||
}}}
|
||||
|
||||
Note that there must be one or more spaces preceding the list item markers,
|
||||
otherwise the list will be treated as a normal paragraph.
|
||||
|
||||
|
||||
9.4 Definition Lists *trac-format-definition*
|
||||
|
||||
The wiki also supports definition lists.
|
||||
|
||||
Example:
|
||||
{{{
|
||||
llama::
|
||||
some kind of mammal, with hair
|
||||
ppython::
|
||||
some kind of reptile, without hair
|
||||
(can you spot the typo?)
|
||||
}}}
|
||||
|
||||
Note that you need a space in front of the defined term.
|
||||
|
||||
|
||||
9.5 Preformatted Text *trac-format-preformatted*
|
||||
|
||||
Block containing preformatted text are suitable for source code snippets,
|
||||
notes and examples. Use three ''curly braces'' wrapped around the text to
|
||||
define a block quote. The curly braces need to be on a separate line.
|
||||
|
||||
Example:
|
||||
{{{
|
||||
{{{
|
||||
def HelloWorld():
|
||||
print "Hello World"
|
||||
}}}
|
||||
}}}
|
||||
|
||||
9.6 Blockquotes *trac-format-blockquotes*
|
||||
|
||||
In order to mark a paragraph as blockquote, indent that paragraph with two
|
||||
spaces.
|
||||
|
||||
Example:
|
||||
{{{
|
||||
This text is a quote from someone else.
|
||||
}}}
|
||||
|
||||
9.7 Discussion Citations *trac-format-discussion*
|
||||
|
||||
To delineate a citation in an ongoing discussion thread, such as the ticket
|
||||
comment area, e-mail-like citation marks (">", ">>", etc.) may be used.
|
||||
|
||||
Example:
|
||||
{{{
|
||||
>> Someone's original text
|
||||
> Someone else's reply text
|
||||
My reply text
|
||||
}}}
|
||||
|
||||
|
||||
''Note: Some WikiFormatting elements, such as lists and preformatted text,
|
||||
are lost in the citation area. Some reformatting may be necessary to
|
||||
create a clear citation.''
|
||||
|
||||
9.8 Tables *trac-format-tables*
|
||||
|
||||
Simple tables can be created like this:
|
||||
{{{
|
||||
||Cell 1||Cell 2||Cell 3||
|
||||
||Cell 4||Cell 5||Cell 6||
|
||||
}}}
|
||||
|
||||
Note that more complex tables can be created using
|
||||
[wiki:WikiRestructuredText#BiggerReSTExample reStructuredText].
|
||||
|
||||
|
||||
9.9 Links *trac-format-links*
|
||||
|
||||
Hyperlinks are automatically created for WikiPageNames and URLs.
|
||||
!WikiPageLinks can be disabled by prepending an exclamation mark "!"
|
||||
character, such as {{{!WikiPageLink}}}.
|
||||
|
||||
Example:
|
||||
{{{
|
||||
TitleIndex, http://www.edgewall.com/, !NotAlink
|
||||
}}}
|
||||
|
||||
Links can be given a more descriptive title by writing the link followed by
|
||||
a space and a title and all this inside square brackets. If the
|
||||
descriptive title is omitted, then the explicit prefix is discarded, unless
|
||||
the link is an external link. This can be useful for wiki pages not
|
||||
adhering to the WikiPageNames convention.
|
||||
|
||||
Example:
|
||||
{{{
|
||||
* [http://www.edgewall.com/ Edgewall Software]
|
||||
* [wiki:TitleIndex Title Index]
|
||||
* [wiki:ISO9000]
|
||||
}}}
|
||||
|
||||
9.9.1 Trac Links *trac-format-traclinks*
|
||||
|
||||
Wiki pages can link directly to other parts of the Trac system. Pages can
|
||||
refer to tickets, reports, changesets, milestones, source files and other
|
||||
Wiki pages using the following notations:
|
||||
|
||||
{{{
|
||||
* Tickets: #1 or ticket:1
|
||||
* Reports: {1} or report:1
|
||||
* Changesets: r1, [1] or changeset:1
|
||||
* ...
|
||||
}}}
|
||||
|
||||
See TracLinks for more in-depth information.
|
||||
|
||||
|
||||
9.10 Escaping Links and WikiPageNames *trac-format-nolink*
|
||||
|
||||
You may avoid making hyperlinks out of TracLinks by preceding an expression
|
||||
with a single "!" (exclamation mark).
|
||||
|
||||
Example:
|
||||
{{{
|
||||
!NoHyperLink
|
||||
!#42 is not a link
|
||||
}}}
|
||||
|
||||
9.11 Images *trac-format-images*
|
||||
|
||||
Urls ending with `.png`, `.gif` or `.jpg` are no longer automatically
|
||||
interpreted as image links, and converted to `<img>` tags.
|
||||
|
||||
You now have to use the ![[Image]] macro (see below).
|
||||
|
||||
|
||||
9.12 Macros *trac-format-macros*
|
||||
|
||||
Macros are ''custom functions'' to insert dynamic content in a page.
|
||||
|
||||
Example:
|
||||
{{{
|
||||
[[Timestamp]]
|
||||
}}}
|
||||
|
||||
|
||||
See WikiMacros for more information, and a list of installed macros.
|
||||
|
||||
|
||||
9.13 Processors *trac-format-processors*
|
||||
|
||||
Trac supports alternative markup formats using WikiProcessors. For example,
|
||||
processors are used to write pages in
|
||||
[wiki:WikiRestructuredText reStructuredText] or [wiki:WikiHtml HTML].
|
||||
|
||||
Example 1:
|
||||
{{{
|
||||
#!html
|
||||
<pre class="wiki">{{{
|
||||
#!html
|
||||
<h1 style="text-align: right; color: blue">HTML Test</h1>
|
||||
}}}</pre>
|
||||
}}}
|
||||
|
||||
Example:
|
||||
{{{
|
||||
#!html
|
||||
<pre class="wiki">{{{
|
||||
#!python
|
||||
class Test:
|
||||
|
||||
def __init__(self):
|
||||
print "Hello World"
|
||||
if __name__ == '__main__':
|
||||
Test()
|
||||
}}}</pre>
|
||||
}}}
|
||||
|
||||
|
||||
Perl:
|
||||
{{{
|
||||
#!perl
|
||||
my ($test) = 0;
|
||||
if ($test > 0) {
|
||||
print "hello";
|
||||
}
|
||||
}}}
|
||||
|
||||
See WikiProcessors for more information.
|
||||
|
||||
|
||||
9.14 Miscellaneous *trac-format-misc*
|
||||
|
||||
Four or more dashes will be replaced by a horizontal line (<HR>)
|
||||
|
||||
Example:
|
||||
{{{
|
||||
----
|
||||
}}}
|
||||
|
||||
See also: TracLinks, TracGuide, WikiHtml, WikiMacros, WikiProcessors,
|
||||
TracSyntaxColoring.
|
|
@ -0,0 +1,242 @@
|
|||
" AlignMapsPlugin: Alignment maps based upon <Align.vim> and <AlignMaps.vim>
|
||||
" Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Date: Mar 03, 2009
|
||||
"
|
||||
" NOTE: the code herein needs vim 6.0 or later
|
||||
" needs <Align.vim> v6 or later
|
||||
" needs <cecutil.vim> v5 or later
|
||||
" Copyright: Copyright (C) 1999-2008 Charles E. Campbell, Jr. {{{1
|
||||
" Permission is hereby granted to use and distribute this code,
|
||||
" with or without modifications, provided that this copyright
|
||||
" notice is copied with it. Like anything else that's free,
|
||||
" AlignMaps.vim is provided *as is* and comes with no warranty
|
||||
" of any kind, either expressed or implied. By using this
|
||||
" plugin, you agree that in no event will the copyright
|
||||
" holder be liable for any damages resulting from the use
|
||||
" of this software.
|
||||
"
|
||||
" Usage: {{{1
|
||||
" Use 'a to mark beginning of to-be-aligned region, Alternative: use V
|
||||
" move cursor to end of region, and execute map. (linewise visual mode) to
|
||||
" The maps also set up marks 'y and 'z, and retain mark region, execute same
|
||||
" 'a at the beginning of region. map. Uses 'a, 'y, and 'z.
|
||||
"
|
||||
" The start/end wrappers save and restore marks 'y and 'z.
|
||||
"
|
||||
" Although the comments indicate the maps use a leading backslash,
|
||||
" actually they use <Leader> (:he mapleader), so the user can
|
||||
" specify that the maps start how he or she prefers.
|
||||
"
|
||||
" Note: these maps all use <Align.vim>.
|
||||
"
|
||||
" Romans 1:20 For the invisible things of Him since the creation of the {{{1
|
||||
" world are clearly seen, being perceived through the things that are
|
||||
" made, even His everlasting power and divinity; that they may be
|
||||
" without excuse.
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Load Once: {{{1
|
||||
if &cp || exists("g:loaded_AlignMapsPlugin")
|
||||
finish
|
||||
endif
|
||||
let s:keepcpo = &cpo
|
||||
let g:loaded_AlignMapsPlugin = "v41"
|
||||
set cpo&vim
|
||||
|
||||
" =====================================================================
|
||||
" Maps: {{{1
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" WS: wrapper start map (internal) {{{2
|
||||
" Produces a blank line above and below, marks with 'y and 'z
|
||||
if !hasmapto('<Plug>WrapperStart')
|
||||
map <unique> <SID>WS <Plug>AlignMapsWrapperStart
|
||||
endif
|
||||
nmap <silent> <script> <Plug>AlignMapsWrapperStart :set lz<CR>:call AlignMaps#WrapperStart(0)<CR>
|
||||
vmap <silent> <script> <Plug>AlignMapsWrapperStart :<c-u>set lz<CR>:call AlignMaps#WrapperStart(1)<CR>
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" WE: wrapper end (internal) {{{2
|
||||
" Removes guard lines, restores marks y and z, and restores search pattern
|
||||
if !hasmapto('<Plug>WrapperEnd')
|
||||
nmap <unique> <SID>WE <Plug>AlignMapsWrapperEnd
|
||||
endif
|
||||
nmap <silent> <script> <Plug>AlignMapsWrapperEnd :call AlignMaps#WrapperEnd()<CR>:set nolz<CR>
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Complex C-code alignment maps: {{{2
|
||||
if !hasmapto('<Plug>AM_a?') |map <unique> <Leader>a? <Plug>AM_a?|endif
|
||||
if !hasmapto('<Plug>AM_a,') |map <unique> <Leader>a, <Plug>AM_a,|endif
|
||||
if !hasmapto('<Plug>AM_a<') |map <unique> <Leader>a< <Plug>AM_a<|endif
|
||||
if !hasmapto('<Plug>AM_a=') |map <unique> <Leader>a= <Plug>AM_a=|endif
|
||||
if !hasmapto('<Plug>AM_a(') |map <unique> <Leader>a( <Plug>AM_a(|endif
|
||||
if !hasmapto('<Plug>AM_abox') |map <unique> <Leader>abox <Plug>AM_abox|endif
|
||||
if !hasmapto('<Plug>AM_acom') |map <unique> <Leader>acom <Plug>AM_acom|endif
|
||||
if !hasmapto('<Plug>AM_adcom')|map <unique> <Leader>adcom <Plug>AM_adcom|endif
|
||||
if !hasmapto('<Plug>AM_aocom')|map <unique> <Leader>aocom <Plug>AM_aocom|endif
|
||||
if !hasmapto('<Plug>AM_ascom')|map <unique> <Leader>ascom <Plug>AM_ascom|endif
|
||||
if !hasmapto('<Plug>AM_adec') |map <unique> <Leader>adec <Plug>AM_adec|endif
|
||||
if !hasmapto('<Plug>AM_adef') |map <unique> <Leader>adef <Plug>AM_adef|endif
|
||||
if !hasmapto('<Plug>AM_afnc') |map <unique> <Leader>afnc <Plug>AM_afnc|endif
|
||||
if !hasmapto('<Plug>AM_afnc') |map <unique> <Leader>afnc <Plug>AM_afnc|endif
|
||||
if !hasmapto('<Plug>AM_aunum')|map <unique> <Leader>aunum <Plug>AM_aenum|endif
|
||||
if !hasmapto('<Plug>AM_aenum')|map <unique> <Leader>aenum <Plug>AM_aunum|endif
|
||||
if exists("g:alignmaps_euronumber") && !exists("g:alignmaps_usanumber")
|
||||
if !hasmapto('<Plug>AM_anum')|map <unique> <Leader>anum <Plug>AM_aenum|endif
|
||||
else
|
||||
if !hasmapto('<Plug>AM_anum')|map <unique> <Leader>anum <Plug>AM_aunum|endif
|
||||
endif
|
||||
|
||||
map <silent> <script> <Plug>AM_a? <SID>WS:AlignCtrl mIp1P1lC ? : : : : <CR>:'a,.Align<CR>:'a,'z-1s/\(\s\+\)? /?\1/e<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_a, <SID>WS:'y,'zs/\(\S\)\s\+/\1 /ge<CR>'yjma'zk:call AlignMaps#CharJoiner(",")<cr>:silent 'y,'zg/,/call AlignMaps#FixMultiDec()<CR>'z:exe "norm \<Plug>AM_adec"<cr><SID>WE
|
||||
map <silent> <script> <Plug>AM_a< <SID>WS:AlignCtrl mIp1P1=l << >><CR>:'a,.Align<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_a( <SID>WS:AlignCtrl mIp0P1=l<CR>:'a,.Align [(,]<CR>:sil 'y+1,'z-1s/\(\s\+\),/,\1/ge<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_a= <SID>WS:AlignCtrl mIp1P1=l<CR>:AlignCtrl g :=<CR>:'a,'zAlign :\==<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_abox <SID>WS:let g:alignmaps_iws=substitute(getline("'a"),'^\(\s*\).*$','\1','e')<CR>:'a,'z-1s/^\s\+//e<CR>:'a,'z-1s/^.*$/@&@/<CR>:AlignCtrl m=p01P0w @<CR>:'a,.Align<CR>:'a,'z-1s/@/ * /<CR>:'a,'z-1s/@$/*/<CR>'aYP:s/./*/g<CR>0r/'zkYp:s/./*/g<CR>0r A/<Esc>:exe "'a-1,'z-1s/^/".g:alignmaps_iws."/e"<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_acom <SID>WS:'a,.s/\/[*/]\/\=/@&@/e<CR>:'a,.s/\*\//@&/e<CR>:'y,'zs/^\( *\) @/\1@/e<CR>'zk:call AlignMaps#StdAlign(2)<CR>:'y,'zs/^\(\s*\) @/\1/e<CR>:'y,'zs/ @//eg<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_adcom <SID>WS:'a,.v/^\s*\/[/*]/s/\/[*/]\*\=/@&@/e<CR>:'a,.v/^\s*\/[/*]/s/\*\//@&/e<CR>:'y,'zv/^\s*\/[/*]/s/^\( *\) @/\1@/e<CR>'zk:call AlignMaps#StdAlign(3)<cr>:'y,'zv/^\s*\/[/*]/s/^\(\s*\) @/\1/e<CR>:'y,'zs/ @//eg<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_aocom <SID>WS:AlignPush<CR>:AlignCtrl g /[*/]<CR>:exe "norm \<Plug>AM_acom"<cr>:AlignPop<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_ascom <SID>WS:'a,.s/\/[*/]/@&@/e<CR>:'a,.s/\*\//@&/e<CR>:silent! 'a,.g/^\s*@\/[*/]/s/@//ge<CR>:AlignCtrl v ^\s*\/[*/]<CR>:AlignCtrl g \/[*/]<CR>'zk:call AlignMaps#StdAlign(2)<cr>:'y,'zs/^\(\s*\) @/\1/e<CR>:'y,'zs/ @//eg<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_adec <SID>WS:'a,'zs/\([^ \t/(]\)\([*&]\)/\1 \2/e<CR>:'y,'zv/^\//s/\([^ \t]\)\s\+/\1 /ge<CR>:'y,'zv/^\s*[*/]/s/\([^/][*&]\)\s\+/\1/ge<CR>:'y,'zv/^\s*[*/]/s/^\(\s*\%(\K\k*\s\+\%([a-zA-Z_*(&]\)\@=\)\+\)\([*(&]*\)\s*\([a-zA-Z0-9_()]\+\)\s*\(\(\[.\{-}]\)*\)\s*\(=\)\=\s*\(.\{-}\)\=\s*;/\1@\2#@\3\4@\6@\7;@/e<CR>:'y,'zv/^\s*[*/]/s/\*\/\s*$/@*\//e<CR>:'y,'zv/^\s*[*/]/s/^\s\+\*/@@@@@* /e<CR>:'y,'zv/^\s*[*/]/s/^@@@@@\*\(.*[^*/]\)$/&@*/e<CR>'yjma'zk:AlignCtrl v ^\s*[*/#]<CR>:call AlignMaps#StdAlign(1)<cr>:'y,'zv/^\s*[*/]/s/@ //ge<CR>:'y,'zv/^\s*[*/]/s/\(\s*\);/;\1/e<CR>:'y,'zv/^#/s/# //e<CR>:'y,'zv/^\s\+[*/#]/s/\([^/*]\)\(\*\+\)\( \+\)/\1\3\2/e<CR>:'y,'zv/^\s\+[*/#]/s/\((\+\)\( \+\)\*/\2\1*/e<CR>:'y,'zv/^\s\+[*/#]/s/^\(\s\+\) \*/\1*/e<CR>:'y,'zv/^\s\+[*/#]/s/[ \t@]*$//e<CR>:'y,'zs/^[*]/ */e<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_adef <SID>WS:AlignPush<CR>:AlignCtrl v ^\s*\(\/\*\<bar>\/\/\)<CR>:'a,.v/^\s*\(\/\*\<bar>\/\/\)/s/^\(\s*\)#\(\s\)*define\s*\(\I[a-zA-Z_0-9(),]*\)\s*\(.\{-}\)\($\<Bar>\/\*\)/#\1\2define @\3@\4@\5/e<CR>:'a,.v/^\s*\(\/\*\<bar>\/\/\)/s/\($\<Bar>\*\/\)/@&/e<CR>'zk:call AlignMaps#StdAlign(1)<cr>'yjma'zk:'a,.v/^\s*\(\/\*\<bar>\/\/\)/s/ @//g<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_afnc :<c-u>set lz<CR>:silent call AlignMaps#Afnc()<CR>:set nolz<CR>
|
||||
map <silent> <script> <Plug>AM_aunum <SID>WS:'a,'zs/\%([0-9.]\)\s\+\zs\([-+.]\=\d\)/@\1/ge<CR>:'a,'zs/\(\(^\|\s\)\d\+\)\(\s\+\)@/\1@\3@/ge<CR>:'a,'zs/\.@/\.0@/ge<CR>:AlignCtrl wmp0P0r<CR>:'a,'zAlign [.@]<CR>:'a,'zs/@/ /ge<CR>:'a,'zs/\(\.\)\(\s\+\)\([0-9.,eE+]\+\)/\1\3\2/ge<CR>:'a,'zs/\([eE]\)\(\s\+\)\([0-9+\-+]\+\)/\1\3\2/ge<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_aenum <SID>WS:'a,'zs/\%([0-9.]\)\s\+\([-+]\=\d\)/\1@\2/ge<CR>:'a,'zs/\.@/\.0@/ge<CR>:AlignCtrl wmp0P0r<CR>:'a,'zAlign [,@]<CR>:'a,'zs/@/ /ge<CR>:'a,'zs/\(,\)\(\s\+\)\([-0-9.,eE+]\+\)/\1\3\2/ge<CR>:'a,'zs/\([eE]\)\(\s\+\)\([0-9+\-+]\+\)/\1\3\2/ge<CR><SID>WE
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" html table alignment {{{2
|
||||
if !hasmapto('<Plug>AM_Htd')|map <unique> <Leader>Htd <Plug>AM_Htd|endif
|
||||
map <silent> <script> <Plug>AM_Htd <SID>WS:'y,'zs%<[tT][rR]><[tT][dD][^>]\{-}>\<Bar></[tT][dD]><[tT][dD][^>]\{-}>\<Bar></[tT][dD]></[tT][rR]>%@&@%g<CR>'yjma'zk:AlignCtrl m=Ilp1P0 @<CR>:'a,.Align<CR>:'y,'zs/ @/@/<CR>:'y,'zs/@ <[tT][rR]>/<[tT][rR]>/ge<CR>:'y,'zs/@//ge<CR><SID>WE
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" character-based right-justified alignment maps {{{2
|
||||
if !hasmapto('<Plug>AM_T|')|map <unique> <Leader>T| <Plug>AM_T||endif
|
||||
if !hasmapto('<Plug>AM_T#') |map <unique> <Leader>T# <Plug>AM_T#|endif
|
||||
if !hasmapto('<Plug>AM_T,') |map <unique> <Leader>T, <Plug>AM_T,o|endif
|
||||
if !hasmapto('<Plug>AM_Ts,') |map <unique> <Leader>Ts, <Plug>AM_Ts,|endif
|
||||
if !hasmapto('<Plug>AM_T:') |map <unique> <Leader>T: <Plug>AM_T:|endif
|
||||
if !hasmapto('<Plug>AM_T;') |map <unique> <Leader>T; <Plug>AM_T;|endif
|
||||
if !hasmapto('<Plug>AM_T<') |map <unique> <Leader>T< <Plug>AM_T<|endif
|
||||
if !hasmapto('<Plug>AM_T=') |map <unique> <Leader>T= <Plug>AM_T=|endif
|
||||
if !hasmapto('<Plug>AM_T?') |map <unique> <Leader>T? <Plug>AM_T?|endif
|
||||
if !hasmapto('<Plug>AM_T@') |map <unique> <Leader>T@ <Plug>AM_T@|endif
|
||||
if !hasmapto('<Plug>AM_Tab') |map <unique> <Leader>Tab <Plug>AM_Tab|endif
|
||||
if !hasmapto('<Plug>AM_Tsp') |map <unique> <Leader>Tsp <Plug>AM_Tsp|endif
|
||||
if !hasmapto('<Plug>AM_T~') |map <unique> <Leader>T~ <Plug>AM_T~|endif
|
||||
|
||||
map <silent> <script> <Plug>AM_T| <SID>WS:AlignCtrl mIp0P0=r <Bar><CR>:'a,.Align<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_T# <SID>WS:AlignCtrl mIp0P0=r #<CR>:'a,.Align<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_T, <SID>WS:AlignCtrl mIp0P1=r ,<CR>:'a,.Align<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_Ts, <SID>WS:AlignCtrl mIp0P1=r ,<CR>:'a,.Align<CR>:'a,.s/\(\s*\),/,\1/ge<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_T: <SID>WS:AlignCtrl mIp1P1=r :<CR>:'a,.Align<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_T; <SID>WS:AlignCtrl mIp0P0=r ;<CR>:'a,.Align<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_T< <SID>WS:AlignCtrl mIp0P0=r <<CR>:'a,.Align<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_T= <SID>WS:'a,'z-1s/\s\+\([*/+\-%<Bar>&\~^]\==\)/ \1/e<CR>:'a,'z-1s@ \+\([*/+\-%<Bar>&\~^]\)=@\1=@ge<CR>:'a,'z-1s/; */;@/e<CR>:'a,'z-1s/==/\="\<Char-0x0f>\<Char-0x0f>"/ge<CR>:'a,'z-1s/!=/\x="!\<Char-0x0f>"/ge<CR>:AlignCtrl mIp1P1=r = @<CR>:AlignCtrl g =<CR>:'a,'z-1Align<CR>:'a,'z-1s/; *@/;/e<CR>:'a,'z-1s/; *$/;/e<CR>:'a,'z-1s@\([*/+\-%<Bar>&\~^]\)\( \+\)=@\2\1=@ge<CR>:'a,'z-1s/\( \+\);/;\1/ge<CR>:'a,'z-1s/\xff/=/ge<CR><SID>WE:exe "norm <Plug>acom"
|
||||
map <silent> <script> <Plug>AM_T? <SID>WS:AlignCtrl mIp0P0=r ?<CR>:'a,.Align<CR>:'y,'zs/ \( *\);/;\1/ge<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_T@ <SID>WS:AlignCtrl mIp0P0=r @<CR>:'a,.Align<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_Tab <SID>WS:'a,.s/^\(\t*\)\(.*\)/\=submatch(1).escape(substitute(submatch(2),'\t','@','g'),'\')/<CR>:AlignCtrl mI=r @<CR>:'a,.Align<CR>:'y+1,'z-1s/@/ /g<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_Tsp <SID>WS:'a,.s/^\(\s*\)\(.*\)/\=submatch(1).escape(substitute(submatch(2),'\s\+','@','g'),'\')/<CR>:AlignCtrl mI=r @<CR>:'a,.Align<CR>:'y+1,'z-1s/@/ /g<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_T~ <SID>WS:AlignCtrl mIp0P0=r ~<CR>:'a,.Align<CR>:'y,'zs/ \( *\);/;\1/ge<CR><SID>WE
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" character-based left-justified alignment maps {{{2
|
||||
if !hasmapto('<Plug>AM_t|') |map <unique> <Leader>t| <Plug>AM_t||endif
|
||||
if !hasmapto('<Plug>AM_t#') |map <unique> <Leader>t# <Plug>AM_t#|endif
|
||||
if !hasmapto('<Plug>AM_t,') |map <unique> <Leader>t, <Plug>AM_t,|endif
|
||||
if !hasmapto('<Plug>AM_t:') |map <unique> <Leader>t: <Plug>AM_t:|endif
|
||||
if !hasmapto('<Plug>AM_t;') |map <unique> <Leader>t; <Plug>AM_t;|endif
|
||||
if !hasmapto('<Plug>AM_t<') |map <unique> <Leader>t< <Plug>AM_t<|endif
|
||||
if !hasmapto('<Plug>AM_t=') |map <unique> <Leader>t= <Plug>AM_t=|endif
|
||||
if !hasmapto('<Plug>AM_ts,') |map <unique> <Leader>ts, <Plug>AM_ts,|endif
|
||||
if !hasmapto('<Plug>AM_ts:') |map <unique> <Leader>ts: <Plug>AM_ts:|endif
|
||||
if !hasmapto('<Plug>AM_ts;') |map <unique> <Leader>ts; <Plug>AM_ts;|endif
|
||||
if !hasmapto('<Plug>AM_ts<') |map <unique> <Leader>ts< <Plug>AM_ts<|endif
|
||||
if !hasmapto('<Plug>AM_ts=') |map <unique> <Leader>ts= <Plug>AM_ts=|endif
|
||||
if !hasmapto('<Plug>AM_w=') |map <unique> <Leader>w= <Plug>AM_w=|endif
|
||||
if !hasmapto('<Plug>AM_t?') |map <unique> <Leader>t? <Plug>AM_t?|endif
|
||||
if !hasmapto('<Plug>AM_t~') |map <unique> <Leader>t~ <Plug>AM_t~|endif
|
||||
if !hasmapto('<Plug>AM_t@') |map <unique> <Leader>t@ <Plug>AM_t@|endif
|
||||
if !hasmapto('<Plug>AM_m=') |map <unique> <Leader>m= <Plug>AM_m=|endif
|
||||
if !hasmapto('<Plug>AM_tab') |map <unique> <Leader>tab <Plug>AM_tab|endif
|
||||
if !hasmapto('<Plug>AM_tml') |map <unique> <Leader>tml <Plug>AM_tml|endif
|
||||
if !hasmapto('<Plug>AM_tsp') |map <unique> <Leader>tsp <Plug>AM_tsp|endif
|
||||
if !hasmapto('<Plug>AM_tsq') |map <unique> <Leader>tsq <Plug>AM_tsq|endif
|
||||
" if !hasmapto('<Plug>AM_tt') |map <unique> <Leader>tt <Plug>AM_tt|endif
|
||||
|
||||
map <silent> <script> <Plug>AM_t| <SID>WS:AlignCtrl mIp0P0=l <Bar><CR>:'a,.Align<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_t# <SID>WS:AlignCtrl mIp0P0=l #<CR>:'a,.Align<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_t, <SID>WS:AlignCtrl mIp0P1=l ,<CR>:'a,.Align<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_t: <SID>WS:AlignCtrl mIp1P1=l :<CR>:'a,.Align<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_t; <SID>WS:AlignCtrl mIp0P1=l ;<CR>:'a,.Align<CR>:sil 'y,'zs/\( *\);/;\1/ge<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_t< <SID>WS:AlignCtrl mIp0P0=l <<CR>:'a,.Align<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_t= <SID>WS:call AlignMaps#Equals()<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_ts, <SID>WS:AlignCtrl mIp0P1=l #<CR>:'a,.Align<CR>:sil 'y+1,'z-1s/\(\s*\)#/,\1/ge<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_ts, <SID>WS:AlignCtrl mIp0P1=l ,<CR>:'a,.Align<CR>:sil 'y+1,'z-1s/\(\s*\),/,\1/ge<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_ts: <SID>WS:AlignCtrl mIp1P1=l :<CR>:'a,.Align<CR>:sil 'y+1,'z-1s/\(\s*\):/:\1/ge<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_ts; <SID>WS:AlignCtrl mIp1P1=l ;<CR>:'a,.Align<CR>:sil 'y+1,'z-1s/\(\s*\);/;\1/ge<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_ts< <SID>WS:AlignCtrl mIp1P1=l <<CR>:'a,.Align<CR>:sil 'y+1,'z-1s/\(\s*\)</<\1/ge<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_ts= <SID>WS:AlignCtrl mIp1P1=l =<CR>:'a,.Align<CR>:sil 'y+1,'z-1s/\(\s*\)=/=\1/ge<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_w= <SID>WS:'a,'zg/=/s/\s\+\([*/+\-%<Bar>&\~^]\==\)/ \1/e<CR>:'a,'zg/=/s@ \+\([*/+\-%<Bar>&\~^]\)=@\1=@ge<CR>:'a,'zg/=/s/==/\="\<Char-0x0f>\<Char-0x0f>"/ge<CR>:'a,'zg/=/s/!=/\="!\<Char-0x0f>"/ge<CR>'zk:AlignCtrl mWp1P1=l =<CR>:AlignCtrl g =<CR>:'a,'z-1g/=/Align<CR>:'a,'z-1g/=/s@\([*/+\-%<Bar>&\~^!=]\)\( \+\)=@\2\1=@ge<CR>:'a,'z-1g/=/s/\( \+\);/;\1/ge<CR>:'a,'z-1v/^\s*\/[*/]/s/\/[*/]/@&@/e<CR>:'a,'z-1v/^\s*\/[*/]/s/\*\//@&/e<CR>'zk:call AlignMaps#StdAlign(1)<cr>:'y,'zs/^\(\s*\) @/\1/e<CR>:'a,'z-1g/=/s/\xff/=/ge<CR>:'y,'zg/=/s/ @//eg<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_t? <SID>WS:AlignCtrl mIp0P0=l ?<CR>:'a,.Align<CR>:.,'zs/ \( *\);/;\1/ge<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_t~ <SID>WS:AlignCtrl mIp0P0=l ~<CR>:'a,.Align<CR>:'y,'zs/ \( *\);/;\1/ge<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_t@ <SID>WS::call AlignMaps#StdAlign(1)<cr>:<SID>WE
|
||||
map <silent> <script> <Plug>AM_m= <SID>WS:'a,'zs/\s\+\([*/+\-%<Bar>&\~^]\==\)/ \1/e<CR>:'a,'zs@ \+\([*/+\-%<Bar>&\~^]\)=@\1=@ge<CR>:'a,'zs/==/\="\<Char-0x0f>\<Char-0x0f>"/ge<CR>:'a,'zs/!=/\="!\<Char-0x0f>"/ge<CR>'zk:AlignCtrl mIp1P1=l =<CR>:AlignCtrl g =<CR>:'a,'z-1Align<CR>:'a,'z-1s@\([*/+\-%<Bar>&\~^!=]\)\( \+\)=@\2\1=@ge<CR>:'a,'z-1s/\( \+\);/;\1/ge<CR>:'a,'z-s/%\ze[^=]/ @%@ /e<CR>'zk:call AlignMaps#StdAlign(1)<cr>:'y,'zs/^\(\s*\) @/\1/e<CR>:'a,'z-1s/\xff/=/ge<CR>:'y,'zs/ @//eg<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_tab <SID>WS:'a,.s/^\(\t*\)\(.*\)$/\=submatch(1).escape(substitute(submatch(2),'\t',"\<Char-0x0f>",'g'),'\')/<CR>:if &ts == 1<bar>exe "AlignCtrl mI=lp0P0 \<Char-0x0f>"<bar>else<bar>exe "AlignCtrl mI=l \<Char-0x0f>"<bar>endif<CR>:'a,.Align<CR>:exe "'y+1,'z-1s/\<Char-0x0f>/".((&ts == 1)? '\t' : ' ')."/g"<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_tml <SID>WS:AlignCtrl mWp1P0=l \\\@<!\\\s*$<CR>:'a,.Align<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_tsp <SID>WS:'a,.s/^\(\s*\)\(.*\)/\=submatch(1).escape(substitute(submatch(2),'\s\+','@','g'),'\')/<CR>:AlignCtrl mI=lp0P0 @<CR>:'a,.Align<CR>:'y+1,'z-1s/@/ /g<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_tsq <SID>WS:'a,.AlignReplaceQuotedSpaces<CR>:'a,.s/^\(\s*\)\(.*\)/\=submatch(1).substitute(submatch(2),'\s\+','@','g')/<CR>:AlignCtrl mIp0P0=l @<CR>:'a,.Align<CR>:'y+1,'z-1s/[%@]/ /g<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_tt <SID>WS:AlignCtrl mIp1P1=l \\\@<!& \\\\<CR>:'a,.Align<CR><SID>WE
|
||||
|
||||
" =====================================================================
|
||||
" Menu Support: {{{1
|
||||
" ma ..move.. use menu
|
||||
" v V or ctrl-v ..move.. use menu
|
||||
if has("menu") && has("gui_running") && &go =~ 'm' && !exists("s:firstmenu")
|
||||
let s:firstmenu= 1
|
||||
if !exists("g:DrChipTopLvlMenu")
|
||||
let g:DrChipTopLvlMenu= "DrChip."
|
||||
endif
|
||||
if g:DrChipTopLvlMenu != ""
|
||||
let s:mapleader = exists("g:mapleader")? g:mapleader : '\'
|
||||
let s:emapleader= escape(s:mapleader,'\ ')
|
||||
exe 'menu '.g:DrChipTopLvlMenu.'AlignMaps.<<\ and\ >><tab>'.s:emapleader.'a< '.s:mapleader.'a<'
|
||||
exe 'menu '.g:DrChipTopLvlMenu.'AlignMaps.Assignment\ =<tab>'.s:emapleader.'t= '.s:mapleader.'t='
|
||||
exe 'menu '.g:DrChipTopLvlMenu.'AlignMaps.Assignment\ :=<tab>'.s:emapleader.'a= '.s:mapleader.'a='
|
||||
exe 'menu '.g:DrChipTopLvlMenu.'AlignMaps.Backslashes<tab>'.s:emapleader.'tml '.s:mapleader.'tml'
|
||||
exe 'menu '.g:DrChipTopLvlMenu.'AlignMaps.Breakup\ Comma\ Declarations<tab>'.s:emapleader.'a, '.s:mapleader.'a,'
|
||||
exe 'menu '.g:DrChipTopLvlMenu.'AlignMaps.C\ Comment\ Box<tab>'.s:emapleader.'abox '.s:mapleader.'abox'
|
||||
exe 'menu '.g:DrChipTopLvlMenu.'AlignMaps.Commas<tab>'.s:emapleader.'t, '.s:mapleader.'t,'
|
||||
exe 'menu '.g:DrChipTopLvlMenu.'AlignMaps.Commas<tab>'.s:emapleader.'ts, '.s:mapleader.'ts,'
|
||||
exe 'menu '.g:DrChipTopLvlMenu.'AlignMaps.Commas\ With\ Strings<tab>'.s:emapleader.'tsq '.s:mapleader.'tsq'
|
||||
exe 'menu '.g:DrChipTopLvlMenu.'AlignMaps.Comments<tab>'.s:emapleader.'acom '.s:mapleader.'acom'
|
||||
exe 'menu '.g:DrChipTopLvlMenu.'AlignMaps.Comments\ Only<tab>'.s:emapleader.'aocom '.s:mapleader.'aocom'
|
||||
exe 'menu '.g:DrChipTopLvlMenu.'AlignMaps.Declaration\ Comments<tab>'.s:emapleader.'adcom '.s:mapleader.'adcom'
|
||||
exe 'menu '.g:DrChipTopLvlMenu.'AlignMaps.Declarations<tab>'.s:emapleader.'adec '.s:mapleader.'adec'
|
||||
exe 'menu '.g:DrChipTopLvlMenu.'AlignMaps.Definitions<tab>'.s:emapleader.'adef '.s:mapleader.'adef'
|
||||
exe 'menu '.g:DrChipTopLvlMenu.'AlignMaps.Function\ Header<tab>'.s:emapleader.'afnc '.s:mapleader.'afnc'
|
||||
exe 'menu '.g:DrChipTopLvlMenu.'AlignMaps.Html\ Tables<tab>'.s:emapleader.'Htd '.s:mapleader.'Htd'
|
||||
exe 'menu '.g:DrChipTopLvlMenu.'AlignMaps.(\.\.\.)?\.\.\.\ :\ \.\.\.<tab>'.s:emapleader.'a? '.s:mapleader.'a?'
|
||||
exe 'menu '.g:DrChipTopLvlMenu.'AlignMaps.Numbers<tab>'.s:emapleader.'anum '.s:mapleader.'anum'
|
||||
exe 'menu '.g:DrChipTopLvlMenu.'AlignMaps.Numbers\ (American-Style)<tab>'.s:emapleader.'aunum <Leader>aunum '.s:mapleader.'aunum <Leader>aunum'
|
||||
exe 'menu '.g:DrChipTopLvlMenu.'AlignMaps.Numbers\ (Euro-Style)<tab>'.s:emapleader.'aenum '.s:mapleader.'aenum'
|
||||
exe 'menu '.g:DrChipTopLvlMenu.'AlignMaps.Spaces\ (Left\ Justified)<tab>'.s:emapleader.'tsp '.s:mapleader.'tsp'
|
||||
exe 'menu '.g:DrChipTopLvlMenu.'AlignMaps.Spaces\ (Right\ Justified)<tab>'.s:emapleader.'Tsp '.s:mapleader.'Tsp'
|
||||
exe 'menu '.g:DrChipTopLvlMenu.'AlignMaps.Statements\ With\ Percent\ Style\ Comments<tab>'.s:emapleader.'m= '.s:mapleader.'m='
|
||||
exe 'menu '.g:DrChipTopLvlMenu.'AlignMaps.Symbol\ <<tab>'.s:emapleader.'t< '.s:mapleader.'t<'
|
||||
exe 'menu '.g:DrChipTopLvlMenu.'AlignMaps.Symbol\ \|<tab>'.s:emapleader.'t\| '.s:mapleader.'t|'
|
||||
exe 'menu '.g:DrChipTopLvlMenu.'AlignMaps.Symbol\ @<tab>'.s:emapleader.'t@ '.s:mapleader.'t@'
|
||||
exe 'menu '.g:DrChipTopLvlMenu.'AlignMaps.Symbol\ #<tab>'.s:emapleader.'t# '.s:mapleader.'t#'
|
||||
exe 'menu '.g:DrChipTopLvlMenu.'AlignMaps.Tabs<tab>'.s:emapleader.'tab '.s:mapleader.'tab'
|
||||
unlet s:mapleader
|
||||
unlet s:emapleader
|
||||
endif
|
||||
endif
|
||||
|
||||
" =====================================================================
|
||||
" Restore: {{{1
|
||||
let &cpo= s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
" ==============================================================================
|
||||
" Modelines: {{{1
|
||||
" vim: ts=4 nowrap fdm=marker
|
|
@ -0,0 +1,41 @@
|
|||
" AlignPlugin: tool to align multiple fields based on one or more separators
|
||||
" Author: Charles E. Campbell, Jr.
|
||||
" Date: Nov 02, 2008
|
||||
" GetLatestVimScripts: 294 1 :AutoInstall: Align.vim
|
||||
" GetLatestVimScripts: 1066 1 :AutoInstall: cecutil.vim
|
||||
" Copyright: Copyright (C) 1999-2007 Charles E. Campbell, Jr. {{{1
|
||||
" Permission is hereby granted to use and distribute this code,
|
||||
" with or without modifications, provided that this copyright
|
||||
" notice is copied with it. Like anything else that's free,
|
||||
" Align.vim is provided *as is* and comes with no warranty
|
||||
" of any kind, either expressed or implied. By using this
|
||||
" plugin, you agree that in no event will the copyright
|
||||
" holder be liable for any damages resulting from the use
|
||||
" of this software.
|
||||
"
|
||||
" Romans 1:16,17a : For I am not ashamed of the gospel of Christ, for it is {{{1
|
||||
" the power of God for salvation for everyone who believes; for the Jew first,
|
||||
" and also for the Greek. For in it is revealed God's righteousness from
|
||||
" faith to faith.
|
||||
" ---------------------------------------------------------------------
|
||||
" Load Once: {{{1
|
||||
if &cp || exists("g:loaded_AlignPlugin")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_AlignPlugin = "v35"
|
||||
let s:keepcpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Public Interface: {{{1
|
||||
com! -bang -range -nargs=* Align <line1>,<line2>call Align#Align(<bang>0,<q-args>)
|
||||
com! -range -nargs=0 AlignReplaceQuotedSpaces <line1>,<line2>call Align#AlignReplaceQuotedSpaces()
|
||||
com! -nargs=* AlignCtrl call Align#AlignCtrl(<q-args>)
|
||||
com! -nargs=0 AlignPush call Align#AlignPush()
|
||||
com! -nargs=0 AlignPop call Align#AlignPop()
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Restore: {{{1
|
||||
let &cpo= s:keepcpo
|
||||
unlet s:keepcpo
|
||||
" vim: ts=4 fdm=marker
|
|
@ -0,0 +1,510 @@
|
|||
" cecutil.vim : save/restore window position
|
||||
" save/restore mark position
|
||||
" save/restore selected user maps
|
||||
" Author: Charles E. Campbell, Jr.
|
||||
" Version: 18b ASTRO-ONLY
|
||||
" Date: Aug 27, 2008
|
||||
"
|
||||
" Saving Restoring Destroying Marks: {{{1
|
||||
" call SaveMark(markname) let savemark= SaveMark(markname)
|
||||
" call RestoreMark(markname) call RestoreMark(savemark)
|
||||
" call DestroyMark(markname)
|
||||
" commands: SM RM DM
|
||||
"
|
||||
" Saving Restoring Destroying Window Position: {{{1
|
||||
" call SaveWinPosn() let winposn= SaveWinPosn()
|
||||
" call RestoreWinPosn() call RestoreWinPosn(winposn)
|
||||
" \swp : save current window/buffer's position
|
||||
" \rwp : restore current window/buffer's previous position
|
||||
" commands: SWP RWP
|
||||
"
|
||||
" Saving And Restoring User Maps: {{{1
|
||||
" call SaveUserMaps(mapmode,maplead,mapchx,suffix)
|
||||
" call RestoreUserMaps(suffix)
|
||||
"
|
||||
" GetLatestVimScripts: 1066 1 :AutoInstall: cecutil.vim
|
||||
"
|
||||
" You believe that God is one. You do well. The demons also {{{1
|
||||
" believe, and shudder. But do you want to know, vain man, that
|
||||
" faith apart from works is dead? (James 2:19,20 WEB)
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Load Once: {{{1
|
||||
if &cp || exists("g:loaded_cecutil")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_cecutil = "v18b"
|
||||
let s:keepcpo = &cpo
|
||||
set cpo&vim
|
||||
"DechoTabOn
|
||||
|
||||
" =======================
|
||||
" Public Interface: {{{1
|
||||
" =======================
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Map Interface: {{{2
|
||||
if !hasmapto('<Plug>SaveWinPosn')
|
||||
map <unique> <Leader>swp <Plug>SaveWinPosn
|
||||
endif
|
||||
if !hasmapto('<Plug>RestoreWinPosn')
|
||||
map <unique> <Leader>rwp <Plug>RestoreWinPosn
|
||||
endif
|
||||
nmap <silent> <Plug>SaveWinPosn :call SaveWinPosn()<CR>
|
||||
nmap <silent> <Plug>RestoreWinPosn :call RestoreWinPosn()<CR>
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Command Interface: {{{2
|
||||
com! -bar -nargs=0 SWP call SaveWinPosn()
|
||||
com! -bar -nargs=0 RWP call RestoreWinPosn()
|
||||
com! -bar -nargs=1 SM call SaveMark(<q-args>)
|
||||
com! -bar -nargs=1 RM call RestoreMark(<q-args>)
|
||||
com! -bar -nargs=1 DM call DestroyMark(<q-args>)
|
||||
|
||||
if v:version < 630
|
||||
let s:modifier= "sil "
|
||||
else
|
||||
let s:modifier= "sil keepj "
|
||||
endif
|
||||
|
||||
" ===============
|
||||
" Functions: {{{1
|
||||
" ===============
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" SaveWinPosn: {{{2
|
||||
" let winposn= SaveWinPosn() will save window position in winposn variable
|
||||
" call SaveWinPosn() will save window position in b:cecutil_winposn{b:cecutil_iwinposn}
|
||||
" let winposn= SaveWinPosn(0) will *only* save window position in winposn variable (no stacking done)
|
||||
fun! SaveWinPosn(...)
|
||||
" call Dfunc("SaveWinPosn() a:0=".a:0)
|
||||
if line(".") == 1 && getline(1) == ""
|
||||
" call Dfunc("SaveWinPosn : empty buffer")
|
||||
return ""
|
||||
endif
|
||||
let so_keep = &l:so
|
||||
let siso_keep = &siso
|
||||
let ss_keep = &l:ss
|
||||
setlocal so=0 siso=0 ss=0
|
||||
|
||||
let swline = line(".")
|
||||
let swcol = col(".")
|
||||
let swwline = winline() - 1
|
||||
let swwcol = virtcol(".") - wincol()
|
||||
let savedposn = "call GoWinbufnr(".winbufnr(0).")|silent ".swline
|
||||
let savedposn = savedposn."|".s:modifier."norm! 0z\<cr>"
|
||||
if swwline > 0
|
||||
let savedposn= savedposn.":".s:modifier."norm! ".swwline."\<c-y>\<cr>"
|
||||
endif
|
||||
if swwcol > 0
|
||||
let savedposn= savedposn.":".s:modifier."norm! 0".swwcol."zl\<cr>"
|
||||
endif
|
||||
let savedposn = savedposn.":".s:modifier."call cursor(".swline.",".swcol.")\<cr>"
|
||||
|
||||
" save window position in
|
||||
" b:cecutil_winposn_{iwinposn} (stack)
|
||||
" only when SaveWinPosn() is used
|
||||
if a:0 == 0
|
||||
if !exists("b:cecutil_iwinposn")
|
||||
let b:cecutil_iwinposn= 1
|
||||
else
|
||||
let b:cecutil_iwinposn= b:cecutil_iwinposn + 1
|
||||
endif
|
||||
" call Decho("saving posn to SWP stack")
|
||||
let b:cecutil_winposn{b:cecutil_iwinposn}= savedposn
|
||||
endif
|
||||
|
||||
let &l:so = so_keep
|
||||
let &siso = siso_keep
|
||||
let &l:ss = ss_keep
|
||||
|
||||
" if exists("b:cecutil_iwinposn") " Decho
|
||||
" call Decho("b:cecutil_winpos{".b:cecutil_iwinposn."}[".b:cecutil_winposn{b:cecutil_iwinposn}."]")
|
||||
" else " Decho
|
||||
" call Decho("b:cecutil_iwinposn doesn't exist")
|
||||
" endif " Decho
|
||||
" call Dret("SaveWinPosn [".savedposn."]")
|
||||
return savedposn
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" RestoreWinPosn: {{{2
|
||||
" call RestoreWinPosn()
|
||||
" call RestoreWinPosn(winposn)
|
||||
fun! RestoreWinPosn(...)
|
||||
" call Dfunc("RestoreWinPosn() a:0=".a:0)
|
||||
" call Decho("getline(1)<".getline(1).">")
|
||||
" call Decho("line(.)=".line("."))
|
||||
if line(".") == 1 && getline(1) == ""
|
||||
" call Dfunc("RestoreWinPosn : empty buffer")
|
||||
return ""
|
||||
endif
|
||||
let so_keep = &l:so
|
||||
let siso_keep = &l:siso
|
||||
let ss_keep = &l:ss
|
||||
setlocal so=0 siso=0 ss=0
|
||||
|
||||
if a:0 == 0 || a:1 == ""
|
||||
" use saved window position in b:cecutil_winposn{b:cecutil_iwinposn} if it exists
|
||||
if exists("b:cecutil_iwinposn") && exists("b:cecutil_winposn{b:cecutil_iwinposn}")
|
||||
" call Decho("using stack b:cecutil_winposn{".b:cecutil_iwinposn."}<".b:cecutil_winposn{b:cecutil_iwinposn}.">")
|
||||
try
|
||||
exe "silent! ".b:cecutil_winposn{b:cecutil_iwinposn}
|
||||
catch /^Vim\%((\a\+)\)\=:E749/
|
||||
" ignore empty buffer error messages
|
||||
endtry
|
||||
" normally drop top-of-stack by one
|
||||
" but while new top-of-stack doesn't exist
|
||||
" drop top-of-stack index by one again
|
||||
if b:cecutil_iwinposn >= 1
|
||||
unlet b:cecutil_winposn{b:cecutil_iwinposn}
|
||||
let b:cecutil_iwinposn= b:cecutil_iwinposn - 1
|
||||
while b:cecutil_iwinposn >= 1 && !exists("b:cecutil_winposn{b:cecutil_iwinposn}")
|
||||
let b:cecutil_iwinposn= b:cecutil_iwinposn - 1
|
||||
endwhile
|
||||
if b:cecutil_iwinposn < 1
|
||||
unlet b:cecutil_iwinposn
|
||||
endif
|
||||
endif
|
||||
else
|
||||
echohl WarningMsg
|
||||
echomsg "***warning*** need to SaveWinPosn first!"
|
||||
echohl None
|
||||
endif
|
||||
|
||||
else " handle input argument
|
||||
" call Decho("using input a:1<".a:1.">")
|
||||
" use window position passed to this function
|
||||
exe "silent ".a:1
|
||||
" remove a:1 pattern from b:cecutil_winposn{b:cecutil_iwinposn} stack
|
||||
if exists("b:cecutil_iwinposn")
|
||||
let jwinposn= b:cecutil_iwinposn
|
||||
while jwinposn >= 1 " search for a:1 in iwinposn..1
|
||||
if exists("b:cecutil_winposn{jwinposn}") " if it exists
|
||||
if a:1 == b:cecutil_winposn{jwinposn} " and the pattern matches
|
||||
unlet b:cecutil_winposn{jwinposn} " unlet it
|
||||
if jwinposn == b:cecutil_iwinposn " if at top-of-stack
|
||||
let b:cecutil_iwinposn= b:cecutil_iwinposn - 1 " drop stacktop by one
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
let jwinposn= jwinposn - 1
|
||||
endwhile
|
||||
endif
|
||||
endif
|
||||
|
||||
" Seems to be something odd: vertical motions after RWP
|
||||
" cause jump to first column. The following fixes that.
|
||||
" Note: was using wincol()>1, but with signs, a cursor
|
||||
" at column 1 yields wincol()==3. Beeping ensued.
|
||||
if virtcol('.') > 1
|
||||
silent norm! hl
|
||||
elseif virtcol(".") < virtcol("$")
|
||||
silent norm! lh
|
||||
endif
|
||||
|
||||
let &l:so = so_keep
|
||||
let &l:siso = siso_keep
|
||||
let &l:ss = ss_keep
|
||||
|
||||
" call Dret("RestoreWinPosn")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" GoWinbufnr: go to window holding given buffer (by number) {{{2
|
||||
" Prefers current window; if its buffer number doesn't match,
|
||||
" then will try from topleft to bottom right
|
||||
fun! GoWinbufnr(bufnum)
|
||||
" call Dfunc("GoWinbufnr(".a:bufnum.")")
|
||||
if winbufnr(0) == a:bufnum
|
||||
" call Dret("GoWinbufnr : winbufnr(0)==a:bufnum")
|
||||
return
|
||||
endif
|
||||
winc t
|
||||
let first=1
|
||||
while winbufnr(0) != a:bufnum && (first || winnr() != 1)
|
||||
winc w
|
||||
let first= 0
|
||||
endwhile
|
||||
" call Dret("GoWinbufnr")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" SaveMark: sets up a string saving a mark position. {{{2
|
||||
" For example, SaveMark("a")
|
||||
" Also sets up a global variable, g:savemark_{markname}
|
||||
fun! SaveMark(markname)
|
||||
" call Dfunc("SaveMark(markname<".a:markname.">)")
|
||||
let markname= a:markname
|
||||
if strpart(markname,0,1) !~ '\a'
|
||||
let markname= strpart(markname,1,1)
|
||||
endif
|
||||
" call Decho("markname=".markname)
|
||||
|
||||
let lzkeep = &lz
|
||||
set lz
|
||||
|
||||
if 1 <= line("'".markname) && line("'".markname) <= line("$")
|
||||
let winposn = SaveWinPosn(0)
|
||||
exe s:modifier."norm! `".markname
|
||||
let savemark = SaveWinPosn(0)
|
||||
let g:savemark_{markname} = savemark
|
||||
let savemark = markname.savemark
|
||||
call RestoreWinPosn(winposn)
|
||||
else
|
||||
let g:savemark_{markname} = ""
|
||||
let savemark = ""
|
||||
endif
|
||||
|
||||
let &lz= lzkeep
|
||||
|
||||
" call Dret("SaveMark : savemark<".savemark.">")
|
||||
return savemark
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" RestoreMark: {{{2
|
||||
" call RestoreMark("a") -or- call RestoreMark(savemark)
|
||||
fun! RestoreMark(markname)
|
||||
" call Dfunc("RestoreMark(markname<".a:markname.">)")
|
||||
|
||||
if strlen(a:markname) <= 0
|
||||
" call Dret("RestoreMark : no such mark")
|
||||
return
|
||||
endif
|
||||
let markname= strpart(a:markname,0,1)
|
||||
if markname !~ '\a'
|
||||
" handles 'a -> a styles
|
||||
let markname= strpart(a:markname,1,1)
|
||||
endif
|
||||
" call Decho("markname=".markname." strlen(a:markname)=".strlen(a:markname))
|
||||
|
||||
let lzkeep = &lz
|
||||
set lz
|
||||
let winposn = SaveWinPosn(0)
|
||||
|
||||
if strlen(a:markname) <= 2
|
||||
if exists("g:savemark_{markname}") && strlen(g:savemark_{markname}) != 0
|
||||
" use global variable g:savemark_{markname}
|
||||
" call Decho("use savemark list")
|
||||
call RestoreWinPosn(g:savemark_{markname})
|
||||
exe "norm! m".markname
|
||||
endif
|
||||
else
|
||||
" markname is a savemark command (string)
|
||||
" call Decho("use savemark command")
|
||||
let markcmd= strpart(a:markname,1)
|
||||
call RestoreWinPosn(markcmd)
|
||||
exe "norm! m".markname
|
||||
endif
|
||||
|
||||
call RestoreWinPosn(winposn)
|
||||
let &lz = lzkeep
|
||||
|
||||
" call Dret("RestoreMark")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" DestroyMark: {{{2
|
||||
" call DestroyMark("a") -- destroys mark
|
||||
fun! DestroyMark(markname)
|
||||
" call Dfunc("DestroyMark(markname<".a:markname.">)")
|
||||
|
||||
" save options and set to standard values
|
||||
let reportkeep= &report
|
||||
let lzkeep = &lz
|
||||
set lz report=10000
|
||||
|
||||
let markname= strpart(a:markname,0,1)
|
||||
if markname !~ '\a'
|
||||
" handles 'a -> a styles
|
||||
let markname= strpart(a:markname,1,1)
|
||||
endif
|
||||
" call Decho("markname=".markname)
|
||||
|
||||
let curmod = &mod
|
||||
let winposn = SaveWinPosn(0)
|
||||
1
|
||||
let lineone = getline(".")
|
||||
exe "k".markname
|
||||
d
|
||||
put! =lineone
|
||||
let &mod = curmod
|
||||
call RestoreWinPosn(winposn)
|
||||
|
||||
" restore options to user settings
|
||||
let &report = reportkeep
|
||||
let &lz = lzkeep
|
||||
|
||||
" call Dret("DestroyMark")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" QArgSplitter: to avoid \ processing by <f-args>, <q-args> is needed. {{{2
|
||||
" However, <q-args> doesn't split at all, so this one returns a list
|
||||
" with splits at all whitespace (only!), plus a leading length-of-list.
|
||||
" The resulting list: qarglist[0] corresponds to a:0
|
||||
" qarglist[i] corresponds to a:{i}
|
||||
fun! QArgSplitter(qarg)
|
||||
" call Dfunc("QArgSplitter(qarg<".a:qarg.">)")
|
||||
let qarglist = split(a:qarg)
|
||||
let qarglistlen = len(qarglist)
|
||||
let qarglist = insert(qarglist,qarglistlen)
|
||||
" call Dret("QArgSplitter ".string(qarglist))
|
||||
return qarglist
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" ListWinPosn: {{{2
|
||||
"fun! ListWinPosn() " Decho
|
||||
" if !exists("b:cecutil_iwinposn") || b:cecutil_iwinposn == 0 " Decho
|
||||
" call Decho("nothing on SWP stack") " Decho
|
||||
" else " Decho
|
||||
" let jwinposn= b:cecutil_iwinposn " Decho
|
||||
" while jwinposn >= 1 " Decho
|
||||
" if exists("b:cecutil_winposn{jwinposn}") " Decho
|
||||
" call Decho("winposn{".jwinposn."}<".b:cecutil_winposn{jwinposn}.">") " Decho
|
||||
" else " Decho
|
||||
" call Decho("winposn{".jwinposn."} -- doesn't exist") " Decho
|
||||
" endif " Decho
|
||||
" let jwinposn= jwinposn - 1 " Decho
|
||||
" endwhile " Decho
|
||||
" endif " Decho
|
||||
"endfun " Decho
|
||||
"com! -nargs=0 LWP call ListWinPosn() " Decho
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" SaveUserMaps: this function sets up a script-variable (s:restoremap) {{{2
|
||||
" which can be used to restore user maps later with
|
||||
" call RestoreUserMaps()
|
||||
"
|
||||
" mapmode - see :help maparg for details (n v o i c l "")
|
||||
" ex. "n" = Normal
|
||||
" The letters "b" and "u" are optional prefixes;
|
||||
" The "u" means that the map will also be unmapped
|
||||
" The "b" means that the map has a <buffer> qualifier
|
||||
" ex. "un" = Normal + unmapping
|
||||
" ex. "bn" = Normal + <buffer>
|
||||
" ex. "bun" = Normal + <buffer> + unmapping
|
||||
" ex. "ubn" = Normal + <buffer> + unmapping
|
||||
" maplead - see mapchx
|
||||
" mapchx - "<something>" handled as a single map item.
|
||||
" ex. "<left>"
|
||||
" - "string" a string of single letters which are actually
|
||||
" multiple two-letter maps (using the maplead:
|
||||
" maplead . each_character_in_string)
|
||||
" ex. maplead="\" and mapchx="abc" saves user mappings for
|
||||
" \a, \b, and \c
|
||||
" Of course, if maplead is "", then for mapchx="abc",
|
||||
" mappings for a, b, and c are saved.
|
||||
" - :something handled as a single map item, w/o the ":"
|
||||
" ex. mapchx= ":abc" will save a mapping for "abc"
|
||||
" suffix - a string unique to your plugin
|
||||
" ex. suffix= "DrawIt"
|
||||
fun! SaveUserMaps(mapmode,maplead,mapchx,suffix)
|
||||
" call Dfunc("SaveUserMaps(mapmode<".a:mapmode."> maplead<".a:maplead."> mapchx<".a:mapchx."> suffix<".a:suffix.">)")
|
||||
|
||||
if !exists("s:restoremap_{a:suffix}")
|
||||
" initialize restoremap_suffix to null string
|
||||
let s:restoremap_{a:suffix}= ""
|
||||
endif
|
||||
|
||||
" set up dounmap: if 1, then save and unmap (a:mapmode leads with a "u")
|
||||
" if 0, save only
|
||||
let mapmode = a:mapmode
|
||||
let dounmap = 0
|
||||
let dobuffer = ""
|
||||
while mapmode =~ '^[bu]'
|
||||
if mapmode =~ '^u'
|
||||
let dounmap= 1
|
||||
let mapmode= strpart(a:mapmode,1)
|
||||
elseif mapmode =~ '^b'
|
||||
let dobuffer= "<buffer> "
|
||||
let mapmode= strpart(a:mapmode,1)
|
||||
endif
|
||||
endwhile
|
||||
" call Decho("dounmap=".dounmap." dobuffer<".dobuffer.">")
|
||||
|
||||
" save single map :...something...
|
||||
if strpart(a:mapchx,0,1) == ':'
|
||||
" call Decho("save single map :...something...")
|
||||
let amap= strpart(a:mapchx,1)
|
||||
if amap == "|" || amap == "\<c-v>"
|
||||
let amap= "\<c-v>".amap
|
||||
endif
|
||||
let amap = a:maplead.amap
|
||||
let s:restoremap_{a:suffix} = s:restoremap_{a:suffix}."|:silent! ".mapmode."unmap ".dobuffer.amap
|
||||
if maparg(amap,mapmode) != ""
|
||||
let maprhs = substitute(maparg(amap,mapmode),'|','<bar>','ge')
|
||||
let s:restoremap_{a:suffix} = s:restoremap_{a:suffix}."|:".mapmode."map ".dobuffer.amap." ".maprhs
|
||||
endif
|
||||
if dounmap
|
||||
exe "silent! ".mapmode."unmap ".dobuffer.amap
|
||||
endif
|
||||
|
||||
" save single map <something>
|
||||
elseif strpart(a:mapchx,0,1) == '<'
|
||||
" call Decho("save single map <something>")
|
||||
let amap = a:mapchx
|
||||
if amap == "|" || amap == "\<c-v>"
|
||||
let amap= "\<c-v>".amap
|
||||
" call Decho("amap[[".amap."]]")
|
||||
endif
|
||||
let s:restoremap_{a:suffix} = s:restoremap_{a:suffix}."|silent! ".mapmode."unmap ".dobuffer.amap
|
||||
if maparg(a:mapchx,mapmode) != ""
|
||||
let maprhs = substitute(maparg(amap,mapmode),'|','<bar>','ge')
|
||||
let s:restoremap_{a:suffix} = s:restoremap_{a:suffix}."|".mapmode."map ".amap." ".dobuffer.maprhs
|
||||
endif
|
||||
if dounmap
|
||||
exe "silent! ".mapmode."unmap ".dobuffer.amap
|
||||
endif
|
||||
|
||||
" save multiple maps
|
||||
else
|
||||
" call Decho("save multiple maps")
|
||||
let i= 1
|
||||
while i <= strlen(a:mapchx)
|
||||
let amap= a:maplead.strpart(a:mapchx,i-1,1)
|
||||
if amap == "|" || amap == "\<c-v>"
|
||||
let amap= "\<c-v>".amap
|
||||
endif
|
||||
let s:restoremap_{a:suffix} = s:restoremap_{a:suffix}."|silent! ".mapmode."unmap ".dobuffer.amap
|
||||
if maparg(amap,mapmode) != ""
|
||||
let maprhs = substitute(maparg(amap,mapmode),'|','<bar>','ge')
|
||||
let s:restoremap_{a:suffix} = s:restoremap_{a:suffix}."|".mapmode."map ".amap." ".dobuffer.maprhs
|
||||
endif
|
||||
if dounmap
|
||||
exe "silent! ".mapmode."unmap ".dobuffer.amap
|
||||
endif
|
||||
let i= i + 1
|
||||
endwhile
|
||||
endif
|
||||
" call Dret("SaveUserMaps : restoremap_".a:suffix.": ".s:restoremap_{a:suffix})
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" RestoreUserMaps: {{{2
|
||||
" Used to restore user maps saved by SaveUserMaps()
|
||||
fun! RestoreUserMaps(suffix)
|
||||
" call Dfunc("RestoreUserMaps(suffix<".a:suffix.">)")
|
||||
if exists("s:restoremap_{a:suffix}")
|
||||
let s:restoremap_{a:suffix}= substitute(s:restoremap_{a:suffix},'|\s*$','','e')
|
||||
if s:restoremap_{a:suffix} != ""
|
||||
" call Decho("exe ".s:restoremap_{a:suffix})
|
||||
exe "silent! ".s:restoremap_{a:suffix}
|
||||
endif
|
||||
unlet s:restoremap_{a:suffix}
|
||||
endif
|
||||
" call Dret("RestoreUserMaps")
|
||||
endfun
|
||||
|
||||
" ==============
|
||||
" Restore: {{{1
|
||||
" ==============
|
||||
let &cpo= s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
" ================
|
||||
" Modelines: {{{1
|
||||
" ================
|
||||
" vim: ts=4 fdm=marker
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,511 @@
|
|||
" Trac client: A interface to a Trac Wiki Repository
|
||||
"
|
||||
" Script Info and Documentation {{{
|
||||
"=============================================================================
|
||||
" Copyright: Copyright (C) 2008 Michael Brown
|
||||
" License: The MIT License
|
||||
"
|
||||
" 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.
|
||||
" Name Of File: trac.vim , trac.py
|
||||
" Description: Wiki Client to the Trac Project Manager (trac.edgewall.org)
|
||||
" Maintainer: Michael Brown <michael <at> ascetinteractive.com>
|
||||
" Contributors: Brad Fritz
|
||||
" Last Change:
|
||||
" URL:
|
||||
" Version: 0.3.6
|
||||
"
|
||||
" Usage:
|
||||
"
|
||||
" You must have a working Trac repository version 0.10 or later
|
||||
" complete with the xmlrpc plugin and a user with suitable
|
||||
" access rights.
|
||||
"
|
||||
" To use the summary view you need to have the Align plugin
|
||||
" installed for the layout.
|
||||
"
|
||||
" http://www.vim.org/scripts/script.php?script_id=294
|
||||
"
|
||||
" Fill in the server login details in the config section below.
|
||||
"
|
||||
" Defatult key mappings:
|
||||
"
|
||||
" <leader>to : Opens the Trac wiki view
|
||||
" <leader>tq : Closes the Trac wiki View
|
||||
" <leader>tw : Writes the Current Wiki Page (Uses default update
|
||||
" Comment)
|
||||
"
|
||||
" or
|
||||
"
|
||||
" :TServer <server name - Sets the current trac Server
|
||||
" (use tab complete)
|
||||
" :TClose - Close VimTrac to the normal View
|
||||
"
|
||||
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"
|
||||
" Trac Wiki Commands
|
||||
"
|
||||
" :TWOpen <WikiPage> - Open the wiki View
|
||||
" :TWSave "<Comment>" - Saves the Active Wiki Page
|
||||
"
|
||||
" In the Wiki TOC View Pages can be loaded by hitting <enter>
|
||||
"
|
||||
" In the Wiki View Window a Page Will go to the wiki page if
|
||||
" you hit ctrl+] but will throw an error if you arent on a
|
||||
" proper link.
|
||||
"
|
||||
" Wikis can now be saved with :w and :wq.
|
||||
" In all Trac windows :q will return to the normal view
|
||||
"
|
||||
" Wiki Syntax will work with this wiki syntax file
|
||||
" http://www.vim.org/scripts/script.php?script_id=725
|
||||
"
|
||||
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"
|
||||
" Trac Ticket Commands
|
||||
"
|
||||
" :TTOpen <Ticket ID> - Open Trac Ticket Browser
|
||||
"
|
||||
" Trac current ticket option modifications (use tab complete)
|
||||
"
|
||||
" :TTSetMilestone <Milestone>
|
||||
" :TTSetType <Type
|
||||
" :TTSetStatus <Status>
|
||||
" :TTSetResolution <Resolution>
|
||||
" :TTSetPriority <Priority >
|
||||
" :TTSetSeverity <Severity >
|
||||
" :TTSetComponent <Component>
|
||||
" :TTSetSummary <Summary >
|
||||
"
|
||||
"
|
||||
" :TTAddComment - Add the comment to the current
|
||||
" ticket
|
||||
"
|
||||
"
|
||||
" In the Ticket List window j and k jump to next ticket
|
||||
" enter will select a ticket if it is hovering over a number
|
||||
"
|
||||
" Bugs:
|
||||
"
|
||||
" Ocassionally when a wiki page/ticket is loaded it will throw an error.
|
||||
" Just try and load it again
|
||||
"
|
||||
" Please log any issues at http://www.ascetinteractive.com.au/vimtrac
|
||||
"
|
||||
" To Do:
|
||||
" - Complete Error handling for missing Files/Trac Error States
|
||||
" - Add a new Wiki Page Option
|
||||
" - Improve the toc scrolling (highlight current line)
|
||||
" - Improve Ticket Viewing option
|
||||
" - Add support for multiple trac servers
|
||||
"
|
||||
"}}}
|
||||
"Configuration
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
" Load trac.py either from the runtime directory (usually
|
||||
" /usr/local/share/vim/vim71/plugin/ if you're running Vim 7.1) or from the
|
||||
" home vim directory (usually ~/.vim/plugin/).
|
||||
"
|
||||
if g:tracServerList == {}
|
||||
finish
|
||||
endif
|
||||
|
||||
if !has("python")
|
||||
call confirm('Trac.vim needs vim python 2.4.4 support. Wont load', 'OK')
|
||||
finish
|
||||
endif
|
||||
|
||||
if filereadable($VIMRUNTIME."/plugin/trac.py")
|
||||
pyfile $VIMRUNTIME/plugin/trac.py
|
||||
elseif filereadable($HOME."/.vim/plugin/trac.py")
|
||||
pyfile $HOME/.vim/plugin/trac.py
|
||||
else
|
||||
call confirm('trac.vim: Unable to find trac.py. Place it in either your home vim directory or in the Vim runtime directory.', 'OK')
|
||||
finish
|
||||
endif
|
||||
|
||||
python import sys
|
||||
python if sys.version_info[:3] < (2,4,4):vim.command('let g:tracPythonVersionFlag = 1')
|
||||
|
||||
if exists('g:tracPythonVersionFlag')
|
||||
call confirm ( "Trac.vim requires python 2.4.4 or later to work correctly" )
|
||||
finish
|
||||
endif
|
||||
|
||||
if !exists('g:tracDefaultComment')
|
||||
let g:tracDefaultComment = 'VimTrac update' " DEFAULT COMMENT CHANGE
|
||||
endif
|
||||
|
||||
if !exists('g:tracHideTracWiki')
|
||||
let g:tracHideTracWiki = 'yes' " SET TO yes/no IF YOU WANT TO HIDE
|
||||
" ALL THE INTERNAL TRAC WIKI PAGES (^Wiki*/^Trac*)
|
||||
endif
|
||||
|
||||
if !exists('g:tracTempHtml')
|
||||
let g:tracTempHtml = '/tmp/trac_wiki.html'
|
||||
endif
|
||||
|
||||
if !exists('g:tracSessionDirectory')
|
||||
let g:tracSessionDirectory = expand ('$HOME') . '/.vimtrac_session'
|
||||
endif
|
||||
|
||||
if !exists('g:tracBrowser')
|
||||
let g:tracBrowser = 'lynx' " For Setting up Browser view (terminal)
|
||||
"let g:tracBrowser = 'firefox' " For Setting up Browser view (linux gui - not tested)
|
||||
"let g:tracBrowser = '"C:\Program Files\Mozilla Firefox\firefox.exe"' "GVim on Windows not tested
|
||||
endif
|
||||
|
||||
if !exists('g:tracServerList')
|
||||
|
||||
let g:tracServerList = {}
|
||||
|
||||
"Add Server Repositories as Dictionary entries
|
||||
let g:tracServerList['Vim Trac'] = 'http://vimtracuser:wibble@www.ascetinteractive.com.au/vimtrac/login/xmlrpc'
|
||||
let g:tracServerList['(ServerName)'] = 'http://(User):(Pass)@(ServerPath)/login/xmlrpc'
|
||||
|
||||
endif
|
||||
|
||||
"This can be modified to speed up queries
|
||||
if !exists('g:tracTicketClause')
|
||||
let g:tracTicketClause = 'status!=closed'
|
||||
endif
|
||||
|
||||
"Set this to 1 if you wan the ticket view to ignore attribute changes which
|
||||
"can clutter up the view
|
||||
"
|
||||
if !exists('g:tracTicketBriefDescription')
|
||||
let g:tracTicketBriefDescription = 1
|
||||
endif
|
||||
|
||||
|
||||
"Layouts can be modified here
|
||||
if !exists('g:tracWikiStyle')
|
||||
let g:tracWikiStyle = 'full' " 'bottom' 'top' 'full'
|
||||
endif
|
||||
if !exists('g:tracSearchStyle')
|
||||
let g:tracSearchStyle = 'left' " 'right'
|
||||
endif
|
||||
if !exists('g:tracTimelineStyle')
|
||||
let g:tracTimelineStyle = 'bottom' " 'left' 'right'
|
||||
endif
|
||||
" Ticket view styles note the summary style needs the Align plugin
|
||||
if !exists('g:tracTicketStyle')
|
||||
let g:tracTicketStyle = 'summary' " 'full' 'top' 'left' 'right' 'full'
|
||||
endif
|
||||
|
||||
"Leader Short CUTS (Uncomment or add and customise to yout vimrc)
|
||||
"Open Wiki
|
||||
" map <leader>to :TWOpen<cr>
|
||||
" Save Wiki
|
||||
" map <leader>tw :TWSave<cr>
|
||||
" Close wiki/ticket view
|
||||
" map <leader>tq :TClose<cr>
|
||||
" resize
|
||||
" map <leader>tt :python trac_window_resize()<cr>
|
||||
" preview window
|
||||
" map <leader>tp :python trac_preview()<cr>
|
||||
"
|
||||
" map <leader>tp :python trac.ticket.summary_view()<cr>
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"End Configuration
|
||||
|
||||
"
|
||||
"
|
||||
|
||||
|
||||
"Commmand Declarations
|
||||
"
|
||||
"NOTE: Due to the command list increasing as of version 0.3 of the plugin several command names
|
||||
"have been renamed. The ':Trac' command prefix has been cut down to :T and the first inital of
|
||||
"the module eg :TW... for TracWiki commands :TT... for Trac ticket commands
|
||||
"
|
||||
"The trac.py file no longer references these commands directly so you are free
|
||||
"to change them if they clash with another plugin.
|
||||
"
|
||||
"WIKI MODULE COMMANDS
|
||||
|
||||
let g:tracDefaultView = 'wiki' " 'ticket' 'timeline'
|
||||
com! -nargs=+ -complete=customlist,ComTracServers TWServer python trac.set_current_server (<q-args>)
|
||||
com! -nargs=+ -complete=customlist,ComTracServers TTServer python trac.set_current_server (<q-args>, False, 'ticket')
|
||||
com! -nargs=+ -complete=customlist,ComTracServers TTLServer python trac.set_current_server (<q-args>, False ,'timeline')
|
||||
|
||||
"QuickTicket Option (modify this command for your own servers) - Note Ticket #12
|
||||
com! -nargs=+ TQTaskOnVimTrac python trac.ticket.create(<q-args> , 'task' , 'Vim Trac')
|
||||
com! -nargs=+ TQDefectOnVimTrac python trac.ticket.create(<q-args> , 'defect' , 'Vim Trac')
|
||||
com! -nargs=+ TQEnhanceOnVimTrac python trac.ticket.create(<q-args> , 'enhancement' , 'Vim Trac')
|
||||
|
||||
com! -nargs=? -complete=customlist,ComWiki TWOpen python trac.wiki_view (<f-args>)
|
||||
|
||||
fun LoadWikiCommands()
|
||||
"NOTE: TWSave is referenced in trac.py
|
||||
com! -nargs=* TWSave python trac.wiki.save(<q-args>)
|
||||
com! -nargs=? TWCreate python trac.wiki_view (<f-args>, True)
|
||||
com! -nargs=? -complete=customlist,ComAttachments TWGetAttachment python trac.get_attachment (<f-args>)
|
||||
com! -nargs=? -complete=file TWAddAttachment python trac.add_attachment(<f-args>)
|
||||
"HTML Preview/Dumps
|
||||
com! -nargs=0 TWPreview python trac.preview(False)
|
||||
com! -nargs=0 TWDump python trac.preview(True)
|
||||
com! -nargs=? TWVimDiff python trac.wiki.vim_diff(<f-args>)
|
||||
endfun
|
||||
|
||||
fun UnloadWikiCommands()
|
||||
try
|
||||
delc TWSave
|
||||
delc TWCreate
|
||||
delc TWGetAttachment
|
||||
delc TWAddAttachment
|
||||
delc TWPreview
|
||||
delc TWDump
|
||||
delc TWVimDiff
|
||||
endtry
|
||||
endfun
|
||||
|
||||
|
||||
"TICKET MODULE COMMANDS
|
||||
com! -nargs=? TTOpen python trac.ticket_view (<f-args>)
|
||||
|
||||
fun LoadTicketCommands()
|
||||
"Trac Ticket modifications
|
||||
com! -nargs=+ TTCreateTask python trac.ticket.create(<q-args>, 'task')
|
||||
com! -nargs=+ TTCreateDefect python trac.ticket.create(<q-args>, 'defect')
|
||||
com! -nargs=+ TTCreateEnhancement python trac.ticket.create(<q-args>, 'enhancement')
|
||||
|
||||
com! -nargs=0 TTAddComment python trac.ticket.add_comment()
|
||||
"Ticket Attributes
|
||||
com! -nargs=? -complete=customlist,ComMilestone TTSetMilestone python trac.ticket.set_attr(<f-args>, 'milestone' )
|
||||
com! -nargs=? -complete=customlist,ComType TTSetType python trac.ticket.set_attr(<f-args>, 'type' )
|
||||
com! -nargs=? -complete=customlist,ComStatus TTSetStatus python trac.ticket.set_attr(<f-args>, 'status' )
|
||||
com! -nargs=? -complete=customlist,ComResolution TTSetResolution python trac.ticket.set_attr(<f-args>, 'resolution' )
|
||||
com! -nargs=? -complete=customlist,ComPriority TTSetPriority python trac.ticket.set_attr(<f-args>, 'priority' )
|
||||
com! -nargs=? -complete=customlist,ComSeverity TTSetSeverity python trac.ticket.set_attr(<f-args>, 'severity' )
|
||||
com! -nargs=? -complete=customlist,ComComponent TTSetComponent python trac.ticket.set_attr(<f-args>, 'component' )
|
||||
com! -nargs=? TTSetOwner python trac.ticket.set_attr(<f-args>, 'owner' )
|
||||
com! -nargs=+ TTSetSummary python trac.ticket.set_summary(<q-args>)
|
||||
|
||||
com! -nargs=0 TTUpdateDescrption python trac.ticket.update_description()
|
||||
|
||||
com! -nargs=? -complete=customlist,ComMilestone TTFilterMilestone python trac.ticket.filter.add(<f-args>, 'milestone' )
|
||||
com! -nargs=? -complete=customlist,ComType TTFilterType python trac.ticket.filter.add(<f-args>, 'type' )
|
||||
com! -nargs=? -complete=customlist,ComStatus TTFilterStatus python trac.ticket.filter.add(<f-args>, 'status' )
|
||||
com! -nargs=? -complete=customlist,ComResolution TTFilterResolution python trac.ticket.filter.add(<f-args>, 'resolution' )
|
||||
com! -nargs=? -complete=customlist,ComPriority TTFilterPriority python trac.ticket.filter.add(<f-args>, 'priority' )
|
||||
com! -nargs=? -complete=customlist,ComSeverity TTFilterSeverity python trac.ticket.filter.add(<f-args>, 'severity' )
|
||||
com! -nargs=? -complete=customlist,ComComponent TTFilterComponent python trac.ticket.filter.add(<f-args>, 'component' )
|
||||
com! -nargs=? TTFilterOwner python trac.ticket.filter.add(<f-args>, 'owner' )
|
||||
|
||||
com! -nargs=? -complete=customlist,ComMilestone TTFilterNoMilestone python trac.ticket.filter.add('', 'milestone' )
|
||||
com! -nargs=? TTFilterNoOwner python trac.ticket.filter.add('', 'owner' )
|
||||
|
||||
com! -nargs=? -complete=customlist,ComMilestone TTIgnoreMilestone python trac.ticket.filter.add(<f-args>, 'milestone' ,False)
|
||||
com! -nargs=? -complete=customlist,ComType TTIgnoreType python trac.ticket.filter.add(<f-args>, 'type' ,False)
|
||||
com! -nargs=? -complete=customlist,ComStatus TTIgnoreStatus python trac.ticket.filter.add(<f-args>, 'status' ,False)
|
||||
com! -nargs=? -complete=customlist,ComResolution TTIgnoreResolution python trac.ticket.filter.add(<f-args>, 'resolution' ,False)
|
||||
com! -nargs=? -complete=customlist,ComPriority TTIgnorePriority python trac.ticket.filter.add(<f-args>, 'priority' ,False)
|
||||
com! -nargs=? -complete=customlist,ComSeverity TTIgnoreSeverity python trac.ticket.filter.add(<f-args>, 'severity' ,False)
|
||||
com! -nargs=? -complete=customlist,ComComponent TTIgnoreComponent python trac.ticket.filter.add(<f-args>, 'component' ,False)
|
||||
com! -nargs=? TTIgnoreOwner python trac.ticket.filter.add(<f-args>, 'owner' ,False)
|
||||
|
||||
com! -nargs=? -complete=customlist,ComMilestone TTIgnoreNoMilestone python trac.ticket.filter.add('', 'milestone' ,False)
|
||||
com! -nargs=? TTIgnoreNoOwner python trac.ticket.filter.add('', 'owner' ,False)
|
||||
|
||||
com! -nargs=0 TTClearAllFilters python trac.ticket.filter.clear()
|
||||
com! -nargs=* TTClearFilter python trac.ticket.filter.delete(<f-args>)
|
||||
com! -nargs=* TTListFilters python trac.ticket.filter.list()
|
||||
"Ticket Sorting
|
||||
com! -nargs=? -complete=customlist,ComSort TTSortby python trac.ticket.sort.set_sortby(<f-args>)
|
||||
|
||||
"Ticket Attachments
|
||||
com! -nargs=? -complete=customlist,ComAttachments TTGetAttachment python trac.get_attachment (<f-args>)
|
||||
com! -nargs=? -complete=file TTAddAttachment python trac.add_attachment(<f-args>)
|
||||
"Html Preview
|
||||
com! -nargs=0 TTPreview python trac.preview()
|
||||
|
||||
com! -nargs=0 TTLoadTicketSession python trac.ticket.session_load()
|
||||
com! -nargs=0 TTSaveTicketSession python trac.ticket.session_save()
|
||||
|
||||
com! -nargs=? -complete=customlist,ComComponent TTSaveCompSession python trac.ticket.session_component_save(<q-args>)
|
||||
com! -nargs=* -complete=customlist,ComComponent TTLoadCompSession python trac.ticket.session_component_load(<q-args>)
|
||||
|
||||
"Ticket resolution
|
||||
com! -nargs=* TTCloseTicket python trac.ticket.close_ticket(<q-args>)
|
||||
com! -nargs=* TTResolveFixed python trac.ticket.resolve_ticket(<q-args>,'fixed')
|
||||
com! -nargs=* TTResolveWontfix python trac.ticket.resolve_ticket(<q-args>,'wontfix')
|
||||
com! -nargs=* TTResolveDuplicate python trac.ticket.resolve_ticket(<q-args>,'duplicate')
|
||||
com! -nargs=* TTResolveInvalid python trac.ticket.resolve_ticket(<q-args>,'invalid')
|
||||
com! -nargs=* TTResolveWorksForMe python trac.ticket.resolve_ticket(<q-args>,'worksforme')
|
||||
endfun
|
||||
|
||||
fun UnloadTicketCommands()
|
||||
"Trac Ticket modifications
|
||||
try
|
||||
delc TTCreateTask
|
||||
delc TTCreateDefect
|
||||
delc TTCreateEnhancement
|
||||
delc TTAddComment
|
||||
"Ticket Attributes
|
||||
delc TTSetMilestone
|
||||
delc TTSetStatus
|
||||
delc TTSetType
|
||||
delc TTSetResolution
|
||||
delc TTSetPriority
|
||||
delc TTSetSeverity
|
||||
delc TTSetComponent
|
||||
delc TTSetOwner
|
||||
delc TTSetSummary
|
||||
|
||||
delc TTUpdateDescrption
|
||||
|
||||
delc TTFilterMilestone
|
||||
delc TTFilterType
|
||||
delc TTFilterStatus
|
||||
delc TTFilterResolution
|
||||
delc TTFilterPriority
|
||||
delc TTFilterSeverity
|
||||
delc TTFilterComponent
|
||||
delc TTFilterOwner
|
||||
delc TTClearFilter
|
||||
delc TTClearAllFilters
|
||||
|
||||
delc TTSortby
|
||||
|
||||
delc TTIgnoreMilestone
|
||||
delc TTIgnoreType
|
||||
delc TTIgnoreStatus
|
||||
delc TTIgnoreResolution
|
||||
delc TTIgnorePriority
|
||||
delc TTIgnoreSeverity
|
||||
delc TTIgnoreComponent
|
||||
delc TTIgnoreOwner
|
||||
|
||||
delc TTIgnoreNoMilestone
|
||||
delc TTIgnoreNoOwner
|
||||
|
||||
"Ticket Attachments
|
||||
delc TTGetAttachment
|
||||
delc TTAddAttachment
|
||||
"Html Preview
|
||||
delc TTPreview
|
||||
delc TTLoadTicketSession
|
||||
delc TTSaveTicketSession
|
||||
delc TTCloseTicket
|
||||
delc TTListFilters
|
||||
delc TTFilterNoMilestone
|
||||
delc TTFilterNoOwner
|
||||
"resolution
|
||||
delc TTResolveFixed
|
||||
delc TTResolveWontfix
|
||||
delc TTResolveDuplicate
|
||||
delc TTResolveInvalid
|
||||
delc TTResolveWorksForMe
|
||||
endtry
|
||||
endfun
|
||||
|
||||
"MISCELLANEOUS
|
||||
com! -nargs=+ TSearch python trac.search_view(<q-args>)
|
||||
com! -nargs=1 TChangesetOpen python trac.changeset_view(<f-args>, True)
|
||||
com! -nargs=0 TTimelineOpen python trac.timeline_view()
|
||||
com! -nargs=0 TClose python trac.normal_view(<f-args>)
|
||||
|
||||
"FUNCTION COMPLETES
|
||||
fun ComTracServers (A,L,P)
|
||||
return filter (keys(g:tracServerList), 'v:val =~ "^'.a:A.'"')
|
||||
endfun
|
||||
|
||||
let g:tracOptions = 1
|
||||
|
||||
fun ComAttachments (A,L,P)
|
||||
python trac.list_attachments()
|
||||
|
||||
return filter (split (g:tracOptions, '|' ), 'v:val =~ "^' . a:A . '"')
|
||||
endfun
|
||||
|
||||
fun ComWiki (A,L,P)
|
||||
python trac.wiki.get_options()
|
||||
|
||||
return filter (split (g:tracOptions, '|' ), 'v:val =~ "^' . a:A . '"')
|
||||
endfun
|
||||
|
||||
"COMMAND COMPLETES
|
||||
fun ComMilestone (A,L,P)
|
||||
python trac.ticket.get_options(0)
|
||||
|
||||
return filter (split (g:tracOptions, '|' ), 'v:val =~ "^' . a:A . '"')
|
||||
endfun
|
||||
|
||||
fun ComType (A,L,P)
|
||||
python trac.ticket.get_options(1)
|
||||
return filter (split (g:tracOptions, '|' ), 'v:val =~ "^' . a:A . '"')
|
||||
endfun
|
||||
|
||||
fun ComStatus (A,L,P)
|
||||
python trac.ticket.get_options(2)
|
||||
return filter (split (g:tracOptions, '|' ), 'v:val =~ "^' . a:A . '"')
|
||||
endfun
|
||||
|
||||
fun ComResolution (A,L,P)
|
||||
python trac.ticket.get_options(3)
|
||||
return filter (split (g:tracOptions, '|' ), 'v:val =~ "^' . a:A . '"')
|
||||
endfun
|
||||
|
||||
fun ComPriority (A,L,P)
|
||||
python trac.ticket.get_options(4)
|
||||
return filter (split (g:tracOptions, '|' ), 'v:val =~ "^' . a:A . '"')
|
||||
endfun
|
||||
|
||||
fun ComSeverity (A,L,P)
|
||||
python trac.ticket.get_options(5)
|
||||
return filter (split (g:tracOptions, '|' ), 'v:val =~ "^' . a:A . '"')
|
||||
endfun
|
||||
|
||||
fun ComComponent (A,L,P)
|
||||
python trac.ticket.get_options(6)
|
||||
return filter (split (g:tracOptions, '|' ), 'v:val =~ "^' . a:A . '"')
|
||||
endfun
|
||||
|
||||
fun ComSort (A,L,P)
|
||||
return filter (['priority','milestone'], 'v:val =~ "^' . a:A . '"')
|
||||
endfun
|
||||
|
||||
|
||||
"Callback Function for Minibufexplorer et al windows that dont like being
|
||||
"closed by the :only command
|
||||
"TODO add other common plugins that may be affected
|
||||
"see OpenCloseCallbacks in the wiki
|
||||
fun TracOpenViewCallback()
|
||||
try
|
||||
CMiniBufExplorer
|
||||
catch
|
||||
return 0
|
||||
endt
|
||||
|
||||
return 1
|
||||
endfun
|
||||
|
||||
fun TracCloseViewCallback()
|
||||
try
|
||||
MiniBufExplorer
|
||||
catch
|
||||
return 0
|
||||
endt
|
||||
return 1
|
||||
endfun
|
||||
|
||||
python trac_init()
|
|
@ -0,0 +1,77 @@
|
|||
" Vim syntax file
|
||||
" Language: wiki
|
||||
" Maintainer: Andreas Kneib <aporia@web.de>
|
||||
" Improved By: Mathias Panzenböck <grosser.meister.morti@gmx.at>
|
||||
" Last Change: 2003 Aug 05
|
||||
|
||||
" Little syntax file to use a wiki-editor with VIM
|
||||
" (if your browser allow this action)
|
||||
" To use this syntax file:
|
||||
" 1. mkdir ~/.vim/syntax
|
||||
" 2. mv ~/wiki.vim ~/.vim/syntax/wiki.vim
|
||||
" 3. :set syntax=wiki
|
||||
"
|
||||
|
||||
" Quit if syntax file is already loaded
|
||||
if version < 600
|
||||
syntax clear
|
||||
elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
if version < 508
|
||||
command! -nargs=+ WikiHiLink hi link <args>
|
||||
else
|
||||
command! -nargs=+ WikiHiLink hi def link <args>
|
||||
endif
|
||||
|
||||
syn match wikiWord "\<[A-Z][^A-Z ]\+[A-Z][^A-Z ][^A-Z ]*\>"
|
||||
syn match wikiLine "^----$"
|
||||
syn region wikiLink start=+\[+hs=s+1 end=+\]+he=e-1
|
||||
|
||||
"" This RegEx don't work very well. But I'm to clueless, to make it better. ;)
|
||||
"syn region wikiExtLink start=+\([^\[]\|^\)\[[^\[]+hs=s+1 end=+[^\]]\]\([^\]\|$]\)+he=e-1
|
||||
"syn region wikiLink start=+\([^\[]\|^\)\[\[[^\[]+hs=s+1 end=+[^\]]\]\]\([^\]\|$]\)+he=e-1
|
||||
|
||||
syn match wikiStar "[*]"
|
||||
syn region wikiCurly start="{\{3\}" end="}\{3\}"
|
||||
syn region wikiHead start="^= " end="[=] *"
|
||||
syn region wikiSubhead start="^== " end="==[ ]*"
|
||||
syn match wikiCurlyError "}"
|
||||
|
||||
syn region wikiBold start=+'''+ end=+'''+ contains=wikiBoldItalic
|
||||
syn region wikiBoldItalic contained start=+\([^']\|^\)''[^']+ end=+[^']''\([^']\|$\)+
|
||||
|
||||
syn region wikiItalic start=+\([^']\|^\)''[^']+hs=s+1 end=+[^']''\([^']\|$\)+he=e-1 contains=wikiItalicBold
|
||||
syn region wikiItalicBold contained start=+'''+ end=+'''+
|
||||
|
||||
" The default highlighting.
|
||||
if version >= 508 || !exists("did_wiki_syn_inits")
|
||||
if version < 508
|
||||
let did_wiki_syn_inits = 1
|
||||
endif
|
||||
|
||||
WikiHiLink wikiCurlyError Error
|
||||
WikiHiLink wikiHead Type
|
||||
WikiHiLink wikiSubhead PreProc
|
||||
WikiHiLink wikiCurly Statement
|
||||
WikiHiLink wikiStar String
|
||||
WikiHiLink wikiExtLink Special
|
||||
WikiHiLink wikiLink Special
|
||||
WikiHiLink wikiLine PreProc
|
||||
WikiHiLink wikiWord Keyword
|
||||
hi def wikiBold term=bold cterm=bold gui=bold
|
||||
hi def wikiBoldItalic term=bold,italic cterm=bold,italic gui=bold,italic
|
||||
hi def wikiItalic term=italic cterm=italic gui=italic
|
||||
hi def wikiItalicBold term=bold,italic cterm=bold,italic gui=bold,italic
|
||||
endif
|
||||
|
||||
delcommand WikiHiLink
|
||||
|
||||
let b:current_syntax = "wiki"
|
||||
|
||||
"EOF vim: tw=78:ft=vim:ts=8
|
||||
|
||||
|
||||
|
||||
|
|
@ -23,8 +23,8 @@ set shiftwidth=4
|
|||
set smarttab
|
||||
set expandtab
|
||||
set softtabstop=4
|
||||
set autoindent
|
||||
set smartindent
|
||||
" set autoindent
|
||||
" set smartindent
|
||||
|
||||
" For highlighted numbers:
|
||||
let python_highlight_numbers = 1
|
||||
|
@ -93,7 +93,6 @@ function! CleverTab()
|
|||
inoremap <Tab> <C-R>=CleverTab()<CR>
|
||||
set completeopt=longest
|
||||
|
||||
|
||||
" Emacs like indenting. Pressing Tab indents line
|
||||
" Not in python, there it is managed by GetPythonIndent
|
||||
set indentkeys=0{,0},0),:,0#,!^F,o,O,e,!<Tab>,!^F
|
||||
|
|
Loading…
Reference in New Issue