Ich habe Haskell auf meinem Mac mit Homebrew installiert, also brew install ghc haskell-platform
.
Ich suche nach einer Möglichkeit, eine ctags Datei der Standard-Haskell Platform-Bibliotheken (Module) zu erzeugen, so dass ich die Quelle durchsuchen kann, während ich in Vim codiere. Ich brauche speziell Prelude
und die anderen beliebtesten Module, wie Data.List
und so.
Ich bin mir bewusst, dass die Quelle über Hoogle im Web verfügbar ist , aber es wird mir leichter fallen jump-to-source wann immer ich brauche, zu Lernzwecken.
tags
-Datei irgendwo hin und sagen Sie Vim, dass sie daraus lesen soll. Ich verstehe auch, dass es nicht notwendig ist, die tags
-Datei neu zu generieren, da diese Module ziemlich statisch sind und nicht sehr oft aktualisiert werden. 1) und 2) wurden von pereakra in Kommentaren beantwortet. Ich werde versuchen, 3) zu beschreiben, indem ich Setup ähnlich dem, das ich benutze, beschreibe. Erste einfache Lösung für Basisbibliotheken, dann allgemeinere Lösung für jedes Haskell-Quellpaket im Allgemeinen.
Als Voraussetzung benötigen wir ein Tool, das eine Tag-Datei für Haskell generiert:
%Vor% Anstelle von hothasktags
könnten Sie Ihren Favoriten verwenden. Siehe zum Beispiel die Ссылка Seite, die einige davon aufzählt.
Dann müssen Quellen für Basisbibliotheken verfügbar sein. Hier verwende ich die von GitHub:
%Vor%Optional können wir zu einer bestimmten Verzweigung wechseln. Zum Beispiel:
%Vor% Führen Sie git branch -a
aus, um alle Möglichkeiten zu sehen.
Lassen Sie uns jetzt Tags für die Basisbibliotheken generieren (ich habe keinen Mac verfügbar und muss daher annehmen, dass der Befehl dort funktioniert oder Sie können ihn entsprechend anpassen):
%Vor% ( Hinweis zur Sortierung : Mein Vim beschwert sich, wenn ich die Sortierung nicht verwende. Für LC_ALL
Erklärung siehe zum Beispiel blog-post )
Jetzt müssen wir den Vim über die Tags informieren, die wir generiert haben. Der einfachste Weg ist wahrscheinlich, die folgende Zeile in Ihre $HOME/.vimrc
einzufügen:
Auf diese Weise werden die Tags für Basisbibliotheken für jede geöffnete Haskell-Datei festgelegt. Wenn dies nicht erwünscht ist, können wir den folgenden Vim-Befehl in .vimrc
setzen:
und rufen Sie :SetGHCTags
bei Bedarf auf.
Für eine allgemeinere Lösung, die mit allen Haskell-Quellenpaketen zusammenarbeitet, können wir die folgende Funktion verwenden (in .vimrc
oder in eine Vim-Datei für den Haskell-Dateityp):
Verwenden Sie es beispielsweise für Shelly.hs
library:
In Vim rufen Sie einfach an:
%Vor% Es gibt Raum für Verbesserungen - SetHaskellTags
könnte Tags generieren, wenn sie nicht existieren, oder sogar die Quellen holen, konfigurierbaren Haskell-Quellcode-Speicher, Vervollständigung des Verzeichnisses usw. Aber es funktioniert jetzt gut genug für mich. Also zumindest die Lösung teilen, die ich habe. Werde hierher kommen, wenn ich einige dieser Verbesserungen gemacht habe.
[1]: Es ist besser, regenerate-haskell-tags
in Ihrem $PAHT
zu speichern.
Tags und Links haskell vim exuberant-ctags ctags