Wie kann ich in Vim nach LaTeX-Symbolen suchen?


12

Kann ich irgendeine Form der Symbolvervollständigung in Vim integrieren? Spezielle TeX-Editoren wie TeXMaker stellen eine Liste mit Symbolen zur Vervollständigung bereit (z. B. \aleine Liste mit \alpha, \lazeigt \lambdaund \langle).

Bitte beachten Sie, dass TeX eine große Anzahl von Symbolen enthält. Vorschläge, die eine manuelle Zuordnung von \alto beinhalten, \alphawären daher unbrauchbar.

Verwandte Plugins, die ich habe:

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

Wenn es darauf ankommt, verwende ich XeLaTeX zum Kompilieren.

Verbunden:


Ergänzend dazu gibt es Detexify, wenn Sie wissen, wie man einen Charakter zeichnet, sich aber nicht an den Namen des Befehls erinnern.
Gilles 'SO- hör auf böse zu sein'

Ich plane, eine solche Funktion zu vimtex hinzuzufügen , basierend auf der Wörterbuchvervollständigung, wie sie beispielsweise von verwendet wird latex-suite. vimtexist ein relativ neues Plugin und basiert auf LaTeX-Box, sollte sich also etwas vertraut anfühlen.
Karl Yngve Lervåg

@ KarlYngveLervåg Ich bin kürzlich zu vimtex gewechselt. Haben Sie es verstanden, diese Funktion hinzuzufügen? Dann kann ich das Wörterbuch nuken und vielleicht kannst du mit vimtex als Antwort posten.
Muru

Ja. Ich empfehle, dass Sie snippetsfür komplizierte Erweiterungen verwenden, aber für einfache können Sie sich :h vimtex-imapseine Beschreibung der in vimtex implementierten Funktion ansehen.
Karl Yngve Lervåg

Antworten:


9

Um Befehle in LaTeX zu erweitern, verwende ich ein Wörterbuch, das aus der Latex-Suite kopiert wurde (im Detail dieses ) und stelle es ein ~/.vim/dictionariesund benutze dann

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

Idee von hier . Ich benutze es mit Supertab; Die Wörterbuchdatei ist nicht wirklich vollständig (hat es \alphaaber nicht \langle), aber das wäre eine Frage der Vervollständigung ...

Eine Option zum Hinzufügen von Symbolen wäre das Analysieren (nicht komplex - nur ein bisschen Muschelmagie wird es tun) der Detexify-Datenbank . Zum Beispiel könnte man verwenden:

{ 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

Ich wusste, dass @muru nicht widerstehen würde, das richtige Skript zu finden! Übrigens wäre es besser, auch die Schlüsselwörter aus Latex-Suite-Wörterbuch hinzuzufügen ...
Rmano

1
Erledigt. Es wurden mehr als 600 Wörter zur Liste von detexify hinzugefügt. :)
muru

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.