339 lines
14 KiB
VimL
339 lines
14 KiB
VimL
|
"=============================================================================
|
||
|
" File: elementmacros.vim
|
||
|
" Author: Mikolaj Machowski
|
||
|
" Created: Tue Apr 23 06:00 PM 2002 PST
|
||
|
"
|
||
|
" Description: macros for dimensions/fonts/counters.
|
||
|
" and various common commands such ref/label/footnote.
|
||
|
"=============================================================================
|
||
|
|
||
|
nmap <silent> <script> <plug> i
|
||
|
imap <silent> <script> <C-o><plug> <Nop>
|
||
|
|
||
|
if exists('s:lastElementsLocation') && g:Tex_ElementsMenuLocation == s:lastElementsLocation
|
||
|
finish
|
||
|
endif
|
||
|
|
||
|
if exists('s:lastElementsLocation')
|
||
|
exe 'aunmenu '.s:lastElementsLocation.'Font.'
|
||
|
exe 'aunmenu '.s:lastElementsLocation.'Dimension.'
|
||
|
exe 'aunmenu '.s:lastElementsLocation.'Counters.'
|
||
|
exe 'aunmenu '.s:lastElementsLocation.'Various.'
|
||
|
endif
|
||
|
|
||
|
let s:lastElementsLocation = g:Tex_ElementsMenuLocation
|
||
|
|
||
|
let s:fontMenuLoc = g:Tex_ElementsMenuLocation.'Font.'
|
||
|
let s:dimensionMenuLoc = g:Tex_ElementsMenuLocation.'Dimension.'
|
||
|
let s:counterMenuLoc = g:Tex_ElementsMenuLocation.'Counters.'
|
||
|
let s:variousMenuLoc = g:Tex_ElementsMenuLocation.'Various.'
|
||
|
|
||
|
" ==============================================================================
|
||
|
" Set up the functions the first time.
|
||
|
" ==============================================================================
|
||
|
if !exists('s:definedFuncs') " {{{
|
||
|
let s:definedFuncs = 1
|
||
|
|
||
|
" Tex_RemoveElementMenus: remove the elements menu {{{
|
||
|
"
|
||
|
function! Tex_RemoveElementMenus()
|
||
|
exe 'silent! aunmenu '.s:lastElementsLocation.'Font.'
|
||
|
exe 'silent! aunmenu '.s:lastElementsLocation.'Dimension.'
|
||
|
exe 'silent! aunmenu '.s:lastElementsLocation.'Counters.'
|
||
|
exe 'silent! aunmenu '.s:lastElementsLocation.'Various.'
|
||
|
endfunction
|
||
|
|
||
|
" }}}
|
||
|
" Tex_FontFamily: sets up font menus {{{
|
||
|
"
|
||
|
function! <SID>Tex_FontFamily(font,fam)
|
||
|
let vislhs = matchstr(tolower(a:font), '^.\zs.*')
|
||
|
|
||
|
" avoid redoing imaps and vmaps for every reconfiguration of menus.
|
||
|
if !exists('s:doneOnce') && g:Tex_FontMaps
|
||
|
exe "vnoremap <silent> ".g:Tex_Leader.vislhs.
|
||
|
\" \<C-\\>\<C-N>:call VEnclose('\\text".vislhs."{', '}', '{\\".vislhs.a:fam." ', '}')<CR>"
|
||
|
exe 'call IMAP ("'.a:font.'", "\\text'.vislhs.'{<++>}<++>", "tex")'
|
||
|
endif
|
||
|
|
||
|
" menu entry.
|
||
|
if g:Tex_Menus && g:Tex_FontMenus
|
||
|
let location = s:fontMenuLoc.substitute(a:fam, '^.', '\u&', '').'.'.vislhs.a:fam.'<tab>'.a:font.'\ ('.g:Tex_Leader.vislhs.')'
|
||
|
exe "amenu ".location.
|
||
|
\" <plug><C-r>=IMAP_PutTextWithMovement('\\text".vislhs."{<++>}<++>')<CR>"
|
||
|
exe "vmenu ".location.
|
||
|
\" \<C-\\>\<C-N>:call VEnclose('\\text".vislhs."{', '}', '{\\".vislhs.a:fam." ', '}')<CR>"
|
||
|
endif
|
||
|
|
||
|
endfunction
|
||
|
|
||
|
" }}}
|
||
|
" Tex_FontDiacritics: sets up menus for diacritics. {{{
|
||
|
"
|
||
|
function! <SID>Tex_FontDiacritics(name, rhs)
|
||
|
let location = s:fontMenuLoc.'&Diacritics.'.a:name.'<tab>'
|
||
|
exe 'amenu '.location.
|
||
|
\" <plug><C-r>=IMAP_PutTextWithMovement('\\".a:rhs."{<++>}<++>')<CR>"
|
||
|
exe 'vmenu '.location.
|
||
|
\" \<C-\\>\<C-n>:call VEnclose('\\".a:rhs."{', '}', '', '')<CR>"
|
||
|
endfunction " }}}
|
||
|
" Tex_FontSize: sets up size fonts {{{
|
||
|
"
|
||
|
function! <SID>Tex_FontSize(name)
|
||
|
let location = s:fontMenuLoc.'&Size.'.a:name.'<tab>'
|
||
|
exe 'amenu '.location." <plug>\\".a:name
|
||
|
exe 'vunmenu '.location
|
||
|
endfunction " }}}
|
||
|
" Tex_Fontfont: sets up the 'font' part of font menus {{{
|
||
|
"
|
||
|
function! <SID>Tex_Fontfont(desc, lhs)
|
||
|
let location = s:fontMenuLoc.'&font.'.a:desc.'<tab>'
|
||
|
exe "amenu ".location." <plug><C-r>=IMAP_PutTextWithMovement('".a:lhs."')<CR>"
|
||
|
exe "vunmenu ".location
|
||
|
endfunction " }}}
|
||
|
" Tex_DimMenus: set up dimension menus {{{
|
||
|
function! <SID>Tex_DimMenus(submenu, rhs)
|
||
|
let location = s:dimensionMenuLoc.a:submenu.'.'.a:rhs.'<tab>'
|
||
|
exe "amenu ".location." <plug>\\".a:rhs
|
||
|
exe "vunmenu ".location
|
||
|
endfunction " }}}
|
||
|
" Tex_CounterMenus: set up counters menus {{{
|
||
|
function! <SID>Tex_CounterMenus(submenu, rhs)
|
||
|
let location = s:counterMenuLoc.a:submenu.'.'.a:rhs.'<tab>'
|
||
|
exe "amenu ".location." <plug>\\".a:rhs
|
||
|
exe "vunmenu ".location
|
||
|
endfunction " }}}
|
||
|
" Tex_VariousMenus: set up various menus {{{
|
||
|
function! <SID>Tex_VariousMenus(desc, lhs)
|
||
|
let location = s:variousMenuLoc.a:desc.'<tab>'
|
||
|
exe "amenu ".location." <plug><C-r>=IMAP_PutTextWithMovement('".a:lhs."')<CR>"
|
||
|
exe "vunmenu ".location
|
||
|
endfunction " }}}
|
||
|
endif
|
||
|
" }}}
|
||
|
|
||
|
" ==============================================================================
|
||
|
" Fonts
|
||
|
" ==============================================================================
|
||
|
" series/family/shape {{{
|
||
|
call <SID>Tex_FontFamily("FBF","series")
|
||
|
call <SID>Tex_FontFamily("FMD","series")
|
||
|
|
||
|
call <SID>Tex_FontFamily("FTT","family")
|
||
|
call <SID>Tex_FontFamily("FSF","family")
|
||
|
call <SID>Tex_FontFamily("FRM","family")
|
||
|
|
||
|
call <SID>Tex_FontFamily("FUP","shape")
|
||
|
call <SID>Tex_FontFamily("FSL","shape")
|
||
|
call <SID>Tex_FontFamily("FSC","shape")
|
||
|
call <SID>Tex_FontFamily("FIT","shape")
|
||
|
|
||
|
" the \emph is special.
|
||
|
if g:Tex_FontMaps | exe "vnoremap <silent> ".g:Tex_Leader."em \<C-\\>\<C-N>:call VEnclose('\\emph{', '}', '{\\em', '\\/}')<CR>" | endif
|
||
|
if g:Tex_FontMaps | exe 'call IMAP ("FEM", "\\emph{<++>}<++>", "tex")' | endif
|
||
|
|
||
|
" }}}
|
||
|
if g:Tex_Menus && g:Tex_FontMenus
|
||
|
" {{{ diacritics
|
||
|
call <SID>Tex_FontDiacritics('Acute', '"')
|
||
|
call <SID>Tex_FontDiacritics('Breve', 'u')
|
||
|
call <SID>Tex_FontDiacritics('Circle', 'r')
|
||
|
call <SID>Tex_FontDiacritics('Circumflex', '^')
|
||
|
call <SID>Tex_FontDiacritics('Umlaut', '"')
|
||
|
call <SID>Tex_FontDiacritics('HUmlaut', 'H')
|
||
|
call <SID>Tex_FontDiacritics('Dot\ over', '.')
|
||
|
call <SID>Tex_FontDiacritics('Grave', '`')
|
||
|
call <SID>Tex_FontDiacritics('Hacek', 'v')
|
||
|
call <SID>Tex_FontDiacritics('Makron', '=')
|
||
|
call <SID>Tex_FontDiacritics('Tilde', '~')
|
||
|
call <SID>Tex_FontDiacritics('Underline', 'b')
|
||
|
call <SID>Tex_FontDiacritics('Cedille', 'c')
|
||
|
call <SID>Tex_FontDiacritics('Dot\ under', ' ')
|
||
|
call <SID>Tex_FontDiacritics('Ligature', 't')
|
||
|
" }}}
|
||
|
" {{{ Si&ze.
|
||
|
call <SID>Tex_FontSize('tiny')
|
||
|
call <SID>Tex_FontSize('scriptsize')
|
||
|
call <SID>Tex_FontSize('footnotesize')
|
||
|
call <SID>Tex_FontSize('small')
|
||
|
call <SID>Tex_FontSize('normalsize')
|
||
|
call <SID>Tex_FontSize('large')
|
||
|
call <SID>Tex_FontSize('Large')
|
||
|
call <SID>Tex_FontSize('LARGE')
|
||
|
call <SID>Tex_FontSize('huge')
|
||
|
call <SID>Tex_FontSize('Huge')
|
||
|
" }}}
|
||
|
" {{{ &font.
|
||
|
call s:Tex_Fontfont('fontencoding{}', '\fontencoding{<++>}<++>')
|
||
|
call s:Tex_Fontfont('fontfamily{qtm}', '\fontfamily{<++>}<++>')
|
||
|
call s:Tex_Fontfont('fontseries{m\ b\ bx\ sb\ c}', '\fontseries{<++>}<++>')
|
||
|
call s:Tex_Fontfont('fontshape{n\ it\ sl\ sc\ ui}', '\fontshape{<++>}<++>')
|
||
|
call s:Tex_Fontfont('fontsize{}{}', '\fontsize{<++>}{<++>}<++>')
|
||
|
call s:Tex_Fontfont('selectfont', '\selectfont ')
|
||
|
" }}}
|
||
|
endif
|
||
|
|
||
|
" ==============================================================================
|
||
|
" Dimensions
|
||
|
" ==============================================================================
|
||
|
if g:Tex_Menus
|
||
|
" {{{ Static1
|
||
|
call <SID>Tex_DimMenus('Static1', 'arraycolsep')
|
||
|
call <SID>Tex_DimMenus('Static1', 'arrayrulewidth')
|
||
|
call <SID>Tex_DimMenus('Static1', 'bibindent')
|
||
|
call <SID>Tex_DimMenus('Static1', 'columnsep')
|
||
|
call <SID>Tex_DimMenus('Static1', 'columnseprule')
|
||
|
call <SID>Tex_DimMenus('Static1', 'columnwidth')
|
||
|
call <SID>Tex_DimMenus('Static1', 'doublerulesep')
|
||
|
call <SID>Tex_DimMenus('Static1', 'evensidemargin')
|
||
|
call <SID>Tex_DimMenus('Static1', 'fboxrule')
|
||
|
call <SID>Tex_DimMenus('Static1', 'fboxsep')
|
||
|
call <SID>Tex_DimMenus('Static1', 'footheight')
|
||
|
call <SID>Tex_DimMenus('Static1', 'footnotesep')
|
||
|
call <SID>Tex_DimMenus('Static1', 'footskip')
|
||
|
call <SID>Tex_DimMenus('Static1', 'headheight')
|
||
|
call <SID>Tex_DimMenus('Static1', 'headsep')
|
||
|
call <SID>Tex_DimMenus('Static1', 'itemindent')
|
||
|
call <SID>Tex_DimMenus('Static1', 'labelsep')
|
||
|
call <SID>Tex_DimMenus('Static1', 'labelwidth')
|
||
|
call <SID>Tex_DimMenus('Static1', 'leftmargin')
|
||
|
call <SID>Tex_DimMenus('Static1', 'leftmargini')
|
||
|
call <SID>Tex_DimMenus('Static1', 'leftmarginii')
|
||
|
call <SID>Tex_DimMenus('Static1', 'leftmarginiii')
|
||
|
call <SID>Tex_DimMenus('Static1', 'leftmarginiv')
|
||
|
call <SID>Tex_DimMenus('Static1', 'leftmarginv')
|
||
|
call <SID>Tex_DimMenus('Static1', 'leftmarginvi')
|
||
|
call <SID>Tex_DimMenus('Static1', 'linewidth')
|
||
|
call <SID>Tex_DimMenus('Static1', 'listparindent')
|
||
|
call <SID>Tex_DimMenus('Static1', 'marginparpush')
|
||
|
call <SID>Tex_DimMenus('Static1', 'marginparsep')
|
||
|
call <SID>Tex_DimMenus('Static1', 'marginparwidth')
|
||
|
call <SID>Tex_DimMenus('Static1', 'mathindent')
|
||
|
call <SID>Tex_DimMenus('Static1', 'oddsidemargin')
|
||
|
" }}}
|
||
|
" {{{ Static2
|
||
|
call <SID>Tex_DimMenus('Static2', 'paperheight')
|
||
|
call <SID>Tex_DimMenus('Static2', 'paperwidth')
|
||
|
call <SID>Tex_DimMenus('Static2', 'parindent')
|
||
|
call <SID>Tex_DimMenus('Static2', 'rightmargin')
|
||
|
call <SID>Tex_DimMenus('Static2', 'tabbingsep')
|
||
|
call <SID>Tex_DimMenus('Static2', 'tabcolsep')
|
||
|
call <SID>Tex_DimMenus('Static2', 'textheight')
|
||
|
call <SID>Tex_DimMenus('Static2', 'textwidth')
|
||
|
call <SID>Tex_DimMenus('Static2', 'topmargin')
|
||
|
call <SID>Tex_DimMenus('Static2', 'unitlength')
|
||
|
" }}}
|
||
|
" {{{ Dynamic
|
||
|
call <SID>Tex_DimMenus('Dynamic', 'abovedisplayshortskip')
|
||
|
call <SID>Tex_DimMenus('Dynamic', 'abovedisplayskip')
|
||
|
call <SID>Tex_DimMenus('Dynamic', 'baselineskip')
|
||
|
call <SID>Tex_DimMenus('Dynamic', 'belowdisplayshortskip')
|
||
|
call <SID>Tex_DimMenus('Dynamic', 'belowdisplayskip')
|
||
|
call <SID>Tex_DimMenus('Dynamic', 'dblfloatsep')
|
||
|
call <SID>Tex_DimMenus('Dynamic', 'dbltextfloatsep')
|
||
|
call <SID>Tex_DimMenus('Dynamic', 'floatsep')
|
||
|
call <SID>Tex_DimMenus('Dynamic', 'intextsep')
|
||
|
call <SID>Tex_DimMenus('Dynamic', 'itemsep')
|
||
|
call <SID>Tex_DimMenus('Dynamic', 'parsep')
|
||
|
call <SID>Tex_DimMenus('Dynamic', 'parskip')
|
||
|
call <SID>Tex_DimMenus('Dynamic', 'partopsep')
|
||
|
call <SID>Tex_DimMenus('Dynamic', 'textfloatsep')
|
||
|
call <SID>Tex_DimMenus('Dynamic', 'topsep')
|
||
|
call <SID>Tex_DimMenus('Dynamic', 'topskip')
|
||
|
" }}}
|
||
|
" {{{ Change
|
||
|
call <SID>Tex_DimMenus('Change', 'setlength')
|
||
|
call <SID>Tex_DimMenus('Change', 'addtolength')
|
||
|
call <SID>Tex_DimMenus('Change', 'settoheight')
|
||
|
call <SID>Tex_DimMenus('Change', 'settowidth')
|
||
|
call <SID>Tex_DimMenus('Change', 'settolength')
|
||
|
" }}}
|
||
|
endif
|
||
|
|
||
|
" ==============================================================================
|
||
|
" Counters
|
||
|
" ==============================================================================
|
||
|
if g:Tex_Menus
|
||
|
" Counters {{{
|
||
|
call <SID>Tex_CounterMenus('Counters', 'bottomnumber')
|
||
|
call <SID>Tex_CounterMenus('Counters', 'chapter')
|
||
|
call <SID>Tex_CounterMenus('Counters', 'dbltopnumber')
|
||
|
call <SID>Tex_CounterMenus('Counters', 'enumi')
|
||
|
call <SID>Tex_CounterMenus('Counters', 'enumii')
|
||
|
call <SID>Tex_CounterMenus('Counters', 'enumiii')
|
||
|
call <SID>Tex_CounterMenus('Counters', 'enumiv')
|
||
|
call <SID>Tex_CounterMenus('Counters', 'equation')
|
||
|
call <SID>Tex_CounterMenus('Counters', 'figure')
|
||
|
call <SID>Tex_CounterMenus('Counters', 'footnote')
|
||
|
call <SID>Tex_CounterMenus('Counters', 'mpfootnote')
|
||
|
call <SID>Tex_CounterMenus('Counters', 'page')
|
||
|
call <SID>Tex_CounterMenus('Counters', 'paragraph')
|
||
|
call <SID>Tex_CounterMenus('Counters', 'part')
|
||
|
call <SID>Tex_CounterMenus('Counters', 'secnumdepth')
|
||
|
call <SID>Tex_CounterMenus('Counters', 'section')
|
||
|
call <SID>Tex_CounterMenus('Counters', 'subparagraph')
|
||
|
call <SID>Tex_CounterMenus('Counters', 'subsection')
|
||
|
call <SID>Tex_CounterMenus('Counters', 'subsubsection')
|
||
|
call <SID>Tex_CounterMenus('Counters', 'table')
|
||
|
call <SID>Tex_CounterMenus('Counters', 'tocdepth')
|
||
|
call <SID>Tex_CounterMenus('Counters', 'topnumber')
|
||
|
call <SID>Tex_CounterMenus('Counters', 'totalnumber')
|
||
|
" }}}
|
||
|
" theCounters {{{
|
||
|
call <SID>Tex_CounterMenus('theCounters', 'thebottomnumber')
|
||
|
call <SID>Tex_CounterMenus('theCounters', 'thechapter')
|
||
|
call <SID>Tex_CounterMenus('theCounters', 'thedbltopnumber')
|
||
|
call <SID>Tex_CounterMenus('theCounters', 'theenumi')
|
||
|
call <SID>Tex_CounterMenus('theCounters', 'theenumii')
|
||
|
call <SID>Tex_CounterMenus('theCounters', 'theenumiii')
|
||
|
call <SID>Tex_CounterMenus('theCounters', 'theenumiv')
|
||
|
call <SID>Tex_CounterMenus('theCounters', 'theequation')
|
||
|
call <SID>Tex_CounterMenus('theCounters', 'thefigure')
|
||
|
call <SID>Tex_CounterMenus('theCounters', 'thefootnote')
|
||
|
call <SID>Tex_CounterMenus('theCounters', 'thempfootnote')
|
||
|
call <SID>Tex_CounterMenus('theCounters', 'thepage')
|
||
|
call <SID>Tex_CounterMenus('theCounters', 'theparagraph')
|
||
|
call <SID>Tex_CounterMenus('theCounters', 'thepart')
|
||
|
call <SID>Tex_CounterMenus('theCounters', 'thesecnumdepth')
|
||
|
call <SID>Tex_CounterMenus('theCounters', 'thesection')
|
||
|
call <SID>Tex_CounterMenus('theCounters', 'thesubparagraph')
|
||
|
call <SID>Tex_CounterMenus('theCounters', 'thesubsection')
|
||
|
call <SID>Tex_CounterMenus('theCounters', 'thesubsubsection')
|
||
|
call <SID>Tex_CounterMenus('theCounters', 'thetable')
|
||
|
call <SID>Tex_CounterMenus('theCounters', 'thetocdepth')
|
||
|
call <SID>Tex_CounterMenus('theCounters', 'thetopnumber')
|
||
|
call <SID>Tex_CounterMenus('theCounters', 'thetotalnumber')
|
||
|
" }}}
|
||
|
" Type {{{
|
||
|
call <SID>Tex_CounterMenus('Type', 'alph')
|
||
|
call <SID>Tex_CounterMenus('Type', 'Alph')
|
||
|
call <SID>Tex_CounterMenus('Type', 'arabic')
|
||
|
call <SID>Tex_CounterMenus('Type', 'roman')
|
||
|
call <SID>Tex_CounterMenus('Type', 'Roman')
|
||
|
" }}}
|
||
|
endif
|
||
|
|
||
|
" ==============================================================================
|
||
|
" Various
|
||
|
" ==============================================================================
|
||
|
if g:Tex_Menus
|
||
|
" Various {{{
|
||
|
call <SID>Tex_VariousMenus('ref{}' , '\ref{<++>}<++>')
|
||
|
call <SID>Tex_VariousMenus('pageref{}' , '\pageref{<++>}<++>')
|
||
|
call <SID>Tex_VariousMenus('label{}' , '\label{<++>}<++>')
|
||
|
call <SID>Tex_VariousMenus('footnote{}' , '\footnote{<++>}<++>')
|
||
|
call <SID>Tex_VariousMenus('footnotemark{}', '\footnotemark{<++>}<++>')
|
||
|
call <SID>Tex_VariousMenus('footnotemark{}', '\footnotetext{<++>}<++>')
|
||
|
call <SID>Tex_VariousMenus('cite{}' , '\cite{<++>}<++>')
|
||
|
call <SID>Tex_VariousMenus('nocite{}' , '\nocite{<++>}<++>')
|
||
|
" }}}
|
||
|
endif
|
||
|
|
||
|
if g:Tex_CatchVisMapErrors
|
||
|
exe "vnoremap ".g:Tex_Leader." :\<C-u>call ExecMap('".g:Tex_Leader."', 'v')\<CR>"
|
||
|
endif
|
||
|
" this is for avoiding reinclusion of imaps from next time on.
|
||
|
let s:doneOnce = 1
|
||
|
|
||
|
" vim:fdm=marker:ff=unix:noet:ts=4:sw=4
|