Come posso cercare i simboli LaTeX in Vim?


12

Posso integrare una forma di completamento del simbolo in Vim? Gli editor TeX dedicati come TeXMaker forniscono un elenco di simboli per il completamento (ad esempio, \almostra un elenco con \alpha, \lamostra \lambdae \langle).

Si noti che TeX ha un numero piuttosto elevato di simboli, quindi i suggerimenti che coinvolgono il mapping manuale di \alto \alphasarebbero inutili.

Plugin correlati Ho:

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

Se è importante, utilizzo XeLaTeX per la compilazione.

Relazionato:


Complementare a questo, c'è un detexify per quando sai come disegnare un personaggio ma non ricordi il nome del comando.
Gilles 'SO- smetti di essere malvagio' il

Sto pianificando di aggiungere una funzionalità simile a vimtex , in base al completamento del dizionario utilizzato ad esempio da latex-suite. vimtexè un plug-in relativamente nuovo e si basa su LaTeX-Box, quindi dovrebbe sembrare un po 'familiare.
Karl Yngve Lervåg

@ KarlYngveLervåg Sono passato a vimtex di recente. Sei andato in giro per aggiungere questa funzione? Quindi posso annusare il dizionario e forse puoi pubblicare usando vimtex come risposta.
Muru,

Sì. Ti consiglio di usarlo snippetsper espansioni complicate, ma per quelle semplici puoi consultare :h vimtex-imapsuna descrizione della funzione implementata in vimtex.
Karl Yngve Lervåg,

Risposte:


9

Per espandere i comandi in LaTeX, uso un dizionario copiato da latex-suite (in dettaglio, questo ) e lo inserisco ~/.vim/dictionariese poi utilizzo

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

Idea da qui . Lo uso con Supertab; il file del dizionario non è veramente completo (lo ha \alphama non lo è \langle) ma sarebbe una questione di completarlo ...

Un'opzione per aggiungere simboli sarebbe quella di analizzare (non complesso --- solo un po 'di magia della shell lo farà) il database di detexify . Ad esempio, si potrebbe usare:

{ 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

Sapevo che @muru non avrebbe resistito a trovare la sceneggiatura giusta! A proposito, sarebbe meglio aggiungere anche le parole chiave dal dizionario suite in lattice ...
Rmano

1
Fatto. Ha aggiunto oltre 600 parole all'elenco da detexify. :)
muru

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.