Como posso procurar símbolos LaTeX no Vim?

12

Posso integrar alguma forma de conclusão de símbolo ao Vim? Editores TeX dedicados, como o TeXMaker, fornecem uma lista de símbolos para conclusão (por exemplo, \almostra uma lista com \alpha, \lashows \lambdae \langle).

Observe que o TeX possui um número bastante grande de símbolos; portanto, sugestões envolvendo mapeamento manual de \alto \alphaseriam inúteis.

Plugins relacionados que tenho:

  • SuperTab com let g:SuperTabDefaultCompletionType="context"e set omnifunc=syntaxcomplete#Complete
  • LaTeX-Box

Se isso importa, eu uso o XeLaTeX para compilar.

Palavras-chave:

muru
fonte
Complementarmente, há detexificação para quando você sabe desenhar um personagem, mas não se lembra do nome do comando.
Gilles 'SO- stop be evil' '' -
Estou planejando adicionar esse recurso ao vimtex , com base na conclusão do dicionário usada por exemplo latex-suite. vimtexé um plugin relativamente novo e é baseado no LaTeX-Box; portanto, deve parecer um pouco familiar.
Karl Yngve Lervåg
@ KarlYngveLervåg Mudei para o vimtex recentemente. Você conseguiu adicionar esse recurso? Então eu posso adicionar um dicionário no dicionário, e talvez você possa postar usando o vimtex como resposta.
muru 23/01
Sim. Eu recomendo que você use snippetspara expansões complicadas, mas para simples, você pode ver :h vimtex-imapsuma descrição do recurso implementado no vimtex.
Karl Yngve Lervåg

Respostas:

9

Para expandir comandos no LaTeX, eu uso um dicionário copiado do latex-suite (em detalhes, este ) e o coloco ~/.vim/dictionariese depois uso

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

Idéia daqui . Eu uso com supertab; o arquivo de dicionário não está completo ( \alphamas não está completo \langle), mas seria uma questão de completá-lo ...

Uma opção para adicionar símbolos seria analisar (não é complexo - apenas um pouco de magia shell o fará) o banco de dados detexify . Por exemplo, pode-se usar:

{ 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
Rmano
fonte
Eu sabia que o @muru não resistiria a encontrar o script certo! Aliás, seria melhor adicionar também as palavras-chave do dicionário latex-suite ...
Rmano 4/15
1
Feito. Ele adicionou mais de 600 palavras à lista de detexify. :) #
317 muru