[ADD] add .vim conf, replace old _vim, some xinitrc change, will use xsession later.
[arrow.git] / conf_slk120 / vim / _vim / autoload / viki_latex.vim
blobac16034ccea76b22547be89907b6deb37ca4c8cd
1 " vikiLatex.vim -- viki add-on for LaTeX
2 " @Author:      Thomas Link (micathom AT gmail com?subject=vim)
3 " @License:     GPL (see http://www.gnu.org/licenses/gpl.txt)
4 " @Created:     28-Jän-2004.
5 " @Last Change: 2007-10-05.
6 " @Revision:    0.195
8 if &cp || exists('loaded_viki_latex')
9     finish
10 endif
11 let loaded_viki_latex = 1
13 function! viki_latex#SetupBuffer(state, ...)
14     let noMatch = ""
15     let b:vikiNameSuffix = '.tex'
16     call viki_viki#SetupBuffer(a:state, "sSic")
17     let b:vikiAnchorRx   = '\\label{%{ANCHOR}}'
18     let b:vikiNameTypes  = substitute(b:vikiNameTypes, '\C[Sicx]', "", "g")
19     let b:vikiLaTeXCommands = 'viki\|include\|input\|usepackage\|psfig\|includegraphics\|bibliography\|ref'
20     if exists("g:vikiLaTeXUserCommands")
21         let b:vikiLaTeXCommands = b:vikiLaTeXCommands .'\|'. g:vikiLaTeXUserCommands
22     endif
23     if b:vikiNameTypes =~# "s"
24         let b:vikiSimpleNameRx         = '\(\\\('. b:vikiLaTeXCommands .'\)\(\[\(.\{-}\)\]\)\?{\(.\{-}\)}\)'
25         let b:vikiSimpleNameSimpleRx   = '\\\('. b:vikiLaTeXCommands .'\)\(\[.\{-}\]\)\?{.\{-}}'
26         let b:vikiSimpleNameNameIdx    = 2
27         let b:vikiSimpleNameDestIdx    = 5
28         let b:vikiSimpleNameAnchorIdx  = 4
29         let b:vikiSimpleNameCompound = 'let erx="'. escape(b:vikiSimpleNameRx, '\"')
30                     \ .'" | let nameIdx='. b:vikiSimpleNameNameIdx
31                     \ .' | let destIdx='. b:vikiSimpleNameDestIdx
32                     \ .' | let anchorIdx='. b:vikiSimpleNameAnchorIdx
33     else
34         let b:vikiSimpleNameRx        = noMatch
35         let b:vikiSimpleNameSimpleRx  = noMatch
36         let b:vikiSimpleNameNameIdx   = 0
37         let b:vikiSimpleNameDestIdx   = 0
38         let b:vikiSimpleNameAnchorIdx = 0
39     endif
40 endf
42 function! viki_latex#CheckFilename(filename, ...)
43     if a:filename != ""
44         """ search in the current directory
45         let i = 1
46         while i <= a:0
47             let fn = a:filename .a:{i}
48             " TLogVAR fn
49             if filereadable(fn)
50                 return fn
51             endif
52             let i = i + 1
53         endwh
55         """ use kpsewhich
56         let i = 1
57         while i <= a:0
58             let fn = a:filename .a:{i}
59             let rv = system('kpsewhich '. string(fn))
60             if rv != ""
61                 return substitute(rv, "\n", "", "g")
62             endif
63             let i = i + 1
64         endwh
65     endif
66     return ""
67 endfun
70 function! viki_latex#CompleteSimpleNameDef(def)
71     exec viki#SplitDef(a:def)
72     if v_name == g:vikiDefNil
73         throw "Viki: Malformed command (no name): ". string(a:def)
74     endif
75     let opts = v_anchor
76     let v_anchor  = g:vikiDefNil
77     let useSuffix = g:vikiDefSep
79     if v_name == "input"
80         let v_dest = viki_latex#CheckFilename(v_dest, "", ".tex", ".sty")
81     elseif v_name == "usepackage"
82         let v_dest = viki_latex#CheckFilename(v_dest, ".sty")
83     elseif v_name == "include"
84         let v_dest = viki_latex#CheckFilename(v_dest, ".tex")
85     elseif v_name == "viki"
86         let v_dest = viki_latex#CheckFilename(v_dest, ".tex")
87         let v_anchor = opts
88     elseif v_name == "psfig"
89         let f == matchstr(v_dest, "figure=\zs.\{-}\ze[,}]")
90         let v_dest = viki_latex#CheckFilename(v_dest, "")
91     elseif v_name == "includegraphics"
92         let v_dest = viki_latex#CheckFilename(v_dest, "", 
93                     \ ".eps", ".ps", ".pdf", ".png", ".jpeg", ".jpg", ".gif", ".wmf")
94     elseif v_name == "bibliography"
95         if !exists('b:vikiMarkingInexistent')
96             let bibs = split(v_dest, ",")
97             let f = tlib#input#List('s', "Select Bibliography", bibs)
98             let v_dest = empty(f) ? '' : viki_latex#CheckFilename(f, ".bib")
99         endif
100     elseif v_name == "ref"
101         let v_anchor = v_dest
102         let v_dest   = g:vikiSelfRef
103     elseif exists("*VikiLaTeX_".v_name)
104         exec VikiLaTeX_{v_name}(v_dest, opts)
105     else
106         throw "Viki LaTeX: unsupported command: ". v_name
107     endif
108     
109     if v_dest == ""
110         if !exists('b:vikiMarkingInexistent')
111             throw "Viki LaTeX: can't find: ". v_name ." ". string(a:def)
112         endif
113     else
114         return viki#MakeDef(v_name, v_dest, v_anchor, v_part, 'simple')
115     endif
116 endfun
118 function! viki_latex#MinorMode(state)
119     let b:vikiFamily = "latex"
120     call viki_viki#MinorMode(a:state)
121 endf
123 " au FileType tex let b:vikiFamily="LaTeX"
125 " vim: ff=unix