如何在Vim中查找LaTeX符号?


12

我可以将某种形式的符号补全集成到Vim吗?像TeXMaker这样的专用TeX编辑器提供了要完成的符号列表(例如,\al显示带有\alpha\lashows \lambda和的列表\langle)。

请注意,TeX包含大量符号,因此涉及手动映射\al到的\alpha建议将毫无用处。

我拥有的相关插件:

  • SUPERTABlet g:SuperTabDefaultCompletionType="context"set omnifunc=syntaxcomplete#Complete
  • 乳胶盒

如果有关系,我可以使用XeLaTeX进行编译。

有关:


与此互补的是,当您知道如何绘制字符但又不记得命令名称时,可以使用definify
吉尔斯(Gilles)'所以

我计划根据例如example使用的字典补全功能,向vimtex添加此类功能latex-suitevimtex是一个相对较新的插件,基于LaTeX-Box,因此应该有点熟悉。
Karl YngveLervåg2015年

@KarlYngveLervåg我最近切换到了vimtex。您是否可以添加此功能?然后,我可以对字典进行核对,也许您可​​以使用vimtex作答。
muru

是。我建议您将其snippets用于复杂的扩展,但对于简单的扩展,可以查看:h vimtex-imaps在vimtex中实现的功能的描述。
Karl YngveLervåg'16

Answers:


9

为了在LaTeX中扩展命令,我使用了从乳胶套件复制的字典(详细说明是这个~/.vim/dictionaries,然后将其放入然后使用

autocmd FileType * exec("setlocal dictionary+=".$HOME."/.vim/dictionaries/".expand('<amatch>'))
set completeopt=menuone,longest,preview
set complete+=k

这里的想法。我将它与supertab一起使用;词典文件不是真的完整(它有,\alpha但不是\langle),但这只是完成它的问题...

添加符号的一种选择是解析detexify数据库(不复杂-只需一点外壳魔术即可做到)。例如,可以使用:

{ curl -sL https://raw.githubusercontent.com/kirel/detexify/master/lib/latex/symbols.yaml |
   grep -Po '(?<=\\)[[:alpha:]]{2,}';
   curl -sL https://raw.githubusercontent.com/gerw/vim-latex-suite/master/ftplugin/latex-suite/dictionaries/dictionary
} | sort -u | tee ~/.vim/dictionaries/tex

我知道@muru不会拒绝找到正确的脚本!顺便说一句,最好也从乳胶套装词典中添加关键字...
Rmano

1
做完了 它从detexify列表中添加了600多个单词。:)
大师

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.