vim의 구문 강조 기능을 활용하여 latex에서 코드 (xcolor 패키지 사용)를 강조 표시하고 싶습니다. 따라서 vim-script가 버퍼의 강조된 텍스트에 대한 vim 내부 정보를 내보낼 수 있는지 궁금합니다. 분명히 강조 표시된 각 엔티티의 시작, 끝 및 색상을 알고 있으면 충분합니다. 라텍스 코드 또는 html과 같은 다른 언어의 생성은 명백합니다.vim의 구문 강조 기능을 latex로 내보내기
답변
당신은 내 formatvim 플러그인을 사용할 수 있습니다 : 그것은
Format format latex-xcolor
와 라텍스 xcolor 형식으로 내보낼 수 있습니다. 결과가 좋지 않다면 (완전히 테스트되지 않았고이 옵션을 거의 사용하지 않았습니다.) 패치를 보낼 자유를 느껴보십시오. 형식 지정이있는 사전은 here으로 볼 수 있습니다. 자신의 형식을 만드는 데 필요한 모든 것이 documentation입니다.
참고 : 다른 언어로 내보내려면 내 플러그인과 관련된 사양을 작성하면됩니다. 다음은 내 플러그인에 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=
\'((@[email protected])?'.
\ '(''\colorbox[HTML]{''.'.
\ '((@[email protected]!=#"")?'.
\ '(toupper(@[email protected][1:])):'.
\ '(toupper(@[email protected][1:])))."}{".'.
\ '''\textcolor[HTML]{''.'.
\ '((@[email protected]!=#"")?'.
\ '(toupper(@[email protected][1:])):'.
\ '(toupper(@[email protected][1:])))."}{"):'.
\ '(((@[email protected]!=#"")?'.
\ '(''\colorbox[HTML]{''.toupper(@[email protected][1:])."}{"):'.
\ '("")).'.
\ '''\textcolor[HTML]{''.'.
\ '((@[email protected]!=#"")?'.
\ '(toupper(@[email protected][1:])):'.
\ '(toupper(@[email protected][1:])))."}{"))'
let s:texstyleend=
\'repeat("}", '.
\ '((@[email protected])?'.
\ '(2):'.
\ '((@[email protected]!=#"")+1)))'
let s:format={
\'begin': '\documentclass[a4paper,12pt]{article}'.
\ '\usepackage[utf8]{inputenc}'.
\ '\usepackage[HTML]{xcolor}'.
\ '\pagecolor[HTML]{%''toupper(@[email protected][1:])''%}'.
\ '\color[HTML]{%''toupper(@[email protected][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)
매력처럼 작동합니다. 도표 작성자와 깨지지 않는 공 간만 문제를 일으키는 것 같지만 먼저 대체 할 수 있습니다. 이것이 버그 리포트에 적합한 지 여부는 확실하지 않습니다. – highsciguy
@highsciguy 무엇을 의미합니까? 탭 문자는 공백으로 대체되며 유지되지 않습니다. 줄 바꿈하지 않는 공백은 문제를 일으키지 않아야합니다. 그러나'set list listchars = nbsp : _'를 수행하지 않는 한 그 공백은있는 그대로 포함됩니다. 그렇게하면 SpecialKey를 사용하여 강조 표시된 '_'으로 포함됩니다 (현재 : set hl = 8 : ErrorMsg를 지정해도 vim에서이를 ErrorMsg로 강조 표시합니다). – ZyX
set list 명령은 줄 바꿈하지 않는 공백에 도움이됩니다. vim에 표시되기 때문에 탭이 나타날 수 있습니다. 실제로 출력 "»"문자가 나타납니다. – highsciguy
명령은 Vim에 내장되어 있습니다. 그것은 분명히 라텍스가 아니라 HTML을 생성합니다.
- 1. Vim의 부합 구문 강조 표시
- 2. vim의 .ejs 파일에 대한 구문 강조 표시
- 3. vim의 라텍스 플러그인 구문 강조 표시
- 4. Vim의 정규 표현식에 대한 구문 강조 표시
- 5. Vim의 Haskell 구문 강조 표시가 손상 되었습니까?
- 6. vim의 열 강조 표시
- 7. Vim의 구조 강조
- 8. etherpad에서 구문 강조 기능을 켜는 방법
- 9. octopress에서 구문 강조 기능을 수행하는 방법
- 10. vim의 자바 스크립트 문자열에서 HTML 구문 강조 표시
- 11. 분할 명령을 사용할 때 VIM의 구문 강조 표시가 없어짐
- 12. vim의 구문 강조 표시가 "set -e # comment"를 좋아하지 않습니다.
- 13. vim의 현재 버퍼에서 사용자 정의 구문 강조 표시
- 14. Vim의 여러 줄 강조 표시
- 15. VIM의 특정 열 강조 표시
- 16. VIM의 #defined 값 강조 표시
- 17. Vim의 구문 힌팅
- 18. Vim의 단어/라인 강조 표시 성능
- 19. vim의 % 기능을 제한하는 방법은 무엇입니까?
- 20. OpenOffice 구문 강조 표시
- 21. Vim의 CDATA 요소에서 XML을 구문 강조하는 방법은 무엇입니까?
- 22. 확장 탭이 설정된 경우 vim의 탭 강조
- 23. Xcode 통증, 구문 강조 강조
- 24. vim에서 자바 스크립트 구문 강조 표시
- 25. OCaml 코드의 구문 강조 기능을 지원하는 Javascript 라이브러리는 무엇입니까?
- 26. 간단한 구문 강조 기능을 사용하여 Eclipse에서 xml을 보는 방법은 무엇입니까?
- 27. Wiki 코드의 구문 강조 기능을 지원하는 텍스트 편집기는 무엇입니까?
- 28. Google Prettifier는 C#의 구문 강조 기능을 지원합니까?
- 29. JBoss Developer Studio는 freemarker 템플릿 파일의 구문 강조 기능을 활성화합니다.
- 30. vim의 파일 기능을 완전히 끄는 방법은 무엇입니까?
그런 다음 HTML로 직접 내 보내지 않는 이유는 무엇입니까? LaTeX에 정규 표현식 그룹을 매치시키는 것은 좀 더 복잡합니다 :/ – Rook
목록 패키지 http://en.wikibooks.org/wiki/LaTeX/Packages/Listings에 대해 알고 있습니까? – epsilonhalbe