Ich codiere Ocaml unter Emacs ...
Ich würde gerne wissen, ob es eine Verknüpfung gibt, um zu der Definition einer Funktion zu springen (wo sich der Cursor befindet). Im Moment muss ich dazu den Namen der Funktion in der ganzen Datei suchen oder nach let the_name_of_the_function
und let rec the_name_of_the_function
und and the_name_of_the_function
suchen, was offensichtlich mühsam ist ...
Übrigens, ich habe schon die Datei .annot
.
Könnte jemand helfen? Danke!
Mein ctags(1)
(aus dem exuberant-ctags
-Paket) unterstützt die OCaml-Sprache und Emacs unterstützt ctags
, wenn es als etags
ausgeführt wird.
Versuchen Sie also: cd /path/to/Ocaml/sources/ && etags -R .
, einen Index zu erstellen, und dann innerhalb von emacs
, M <- . ret , um nach dem zu suchen Tag unter dem Cursor.
Während Sie auf eine bessere Lösung warten (von denen es einige gibt, finden Sie beispielsweise OCamlSpotter ), die Sie verwenden können die Arme-Mann-Befehle, die unten aufgeführt sind. Nimmt Tuareg-Modus an.
%Vor%Das Problem könnte mit merlin ( Ссылка ) gelöst werden. Merlin kann einfach mit opam installiert werden:
%Vor%Befolgen Sie die Anweisungen von opam, um die ~ / .emacs-Datei zu konfigurieren. Um die Konfiguration abzuschließen, müssen Sie eine MERLIN-Datei bereitstellen, die merlin mitteilt, wo sich die Quelldateien und die Erstellungsdateien befinden und welche Pakete im Projekt verwendet werden. Ein kurzer Überblick über die .merlin-Datei finden Sie in Ссылка
Um nun zur Funktionsdefinition in Emacs zu springen:
%Vor%Um zum Funktionsaufruf zurückzukehren:
%Vor% Sie können versuchen otags
hier zu finden:
Ссылка
Von der Projektseite:
Otags erzeugt aus OCaml TAGS-Dateien, die für Emacs und vi / vim geeignet sind Quellen. Otags verwendet camlp4 zum Parsen.
Um es zu verwenden, versuchen Sie etwas wie:
%Vor% Dabei ist src
das Unterverzeichnis, das Ihre OCaml-Quelldateien enthält.
Es sollte eine TAGS
Datei erstellt werden.
Dann solltest du M-.
in Emacs machen können.
Sie können otags
mit opam
installieren.
Tags und Links emacs keyboard-shortcuts ocaml