vimの構文強調表示機能を利用して、ラテックスのコード(任意の言語)を強調表示したいと思います(xcolorパッケージを使用)。したがって、vim-scriptでバッファ内の強調表示されたテキストに関するvim内部情報をエクスポートすることは可能かどうか疑問に思います。明らかに、強調表示された各エンティティの開始、終了、および色を知っていれば十分です。そうすれば、ラテックスコードやhtmlなどの他の言語の生成は明らかです。
質問する
879 次
2 に答える
3
あなたは私のformatvimプラグインを使うことができます:それはlatex-xcolorフォーマットにエクスポートすることができます
Format format latex-xcolor
。結果に問題がある場合(完全にテストされておらず、このオプションを使用したことはほとんどありません)、パッチを送信してください。フォーマット仕様の辞書はここにあります。独自のフォーマットを作成するために必要なものはすべてドキュメントにあります。
注:他の言語にエクスポートする必要がある場合、必要なのは、プラグインの観点からその言語の仕様を作成することだけです。latex-xcolor-clone
プラグインにフォーマットを追加するコードは次のとおりです。
scriptencoding utf-8
execute frawor#Setup('0.0', {'plugin/format': '3.0'})
let s:texescape=
\'substitute('.
\ 'substitute(@@@, ''\v[\\\[\]{}&$_\^%#]'', '.
\ '''\=''''\char''''.char2nr(submatch(0))."{}"'', '.
\ '"g"),'.
\'" ", ''\\enskip{}'', "g")'
let s:texstylestart=
\'((@inverse@)?'.
\ '(''\colorbox[HTML]{''.'.
\ '((@fgcolor@!=#"")?'.
\ '(toupper(@fgcolor@[1:])):'.
\ '(toupper(@_fgcolor@[1:])))."}{".'.
\ '''\textcolor[HTML]{''.'.
\ '((@bgcolor@!=#"")?'.
\ '(toupper(@bgcolor@[1:])):'.
\ '(toupper(@_bgcolor@[1:])))."}{"):'.
\ '(((@bgcolor@!=#"")?'.
\ '(''\colorbox[HTML]{''.toupper(@bgcolor@[1:])."}{"):'.
\ '("")).'.
\ '''\textcolor[HTML]{''.'.
\ '((@fgcolor@!=#"")?'.
\ '(toupper(@fgcolor@[1:])):'.
\ '(toupper(@_fgcolor@[1:])))."}{"))'
let s:texstyleend=
\'repeat("}", '.
\ '((@inverse@)?'.
\ '(2):'.
\ '((@bgcolor@!=#"")+1)))'
let s:format={
\'begin': '\documentclass[a4paper,12pt]{article}'.
\ '\usepackage[utf8]{inputenc}'.
\ '\usepackage[HTML]{xcolor}'.
\ '\pagecolor[HTML]{%''toupper(@_bgcolor@[1:])''%}'.
\ '\color[HTML]{%''toupper(@_fgcolor@[1:])''%}'.
\ '\begin{document}{\ttfamily\noindent',
\'line': '%>'.s:texstylestart.".".
\ s:texescape.".".
\ s:texstyleend,
\'lineend': '\\',
\'end': '}\end{document}',
\'strescape': s:texescape,
\}
call s:_f.format.add('latex-xcolor-clone', s:format)
于 2012-06-30T16:39:33.323 に答える
0
:TOhtml
コマンドはVimに組み込まれています。ただし、明らかに、LatexではなくHTMLを生成します。
于 2012-06-30T15:29:40.023 に答える