2010-11-19 6 views
43

Ich habe versucht, meine Init-Datei zu bearbeiten. Gibt es eine Möglichkeit, schnell in die Funktionsdefinition anderer .el-Dateien zu springen, die bereits geladen/benötigt wurden?Emacs: Wie zum Funktionsdefinition in .el-Datei zu springen?

Ich erinnere mich, dies einmal zu tun, aber kann mich nicht erinnern, wie ...

Antwort

47

Mxfind-functionRET(function name)RET

Ich finde, dass Ch Cf eine gute Keybinding für find-function macht (da Ch f standardmäßig describe-function gebunden ist)

(global-set-key (kbd "C-h C-f") 'find-function)

+0

Das funktioniert nur für Funktionen, die geladen wurden, oder eine, die für automatisches Laden eingerichtet ist. –

+0

In der Tat, aber es schien wie die beste Antwort angesichts der Tatsache, dass die Frage speziell über geladene elisp Funktionen war, und es erfordert nicht den zusätzlichen Schritt der Generierung einer TAGS-Datei. – phils

+0

danke, das ist, was ich suche. –

4

etags [options] file1 file2 ... und dann von innen Emacs, tun M-. den Tag zu besuchen. Um zum nächsten Vorkommen des Tags zu gelangen, tun Sie M-,.

+2

Wahrscheinlich meintest du 'M-.' :) Nicht' M-x .' – VitoshKa

+0

@Vitoshka: :) ja, korrigiert – vpit3833

3

find-function ist der Weg zu gehen. Eine Alternative ist, C-h f zu verwenden, klicken Sie dann auf den Dateinamen in Puffer *Help*.

5

As of emacs-25.1, gibt es eine neue generische Funktion. Das integrierte Paket XRef bietet ein generisches Framework zum Navigieren Definitionen im Code. Wahrscheinlich würde es in jedem Modus einige Zeit dauern, um benutzerdefinierte Funktionen für dieses Framework anzupassen, aber mindestens emacs-lisp-mode wurde bereits portiert.

+0

Super! Es gab keine Umkehrung von "function-function-at-point" AFAIK, die mich wirklich verärgerte. Jetzt funktioniert es so, wie ich es möchte! (Die Umkehrung von 'xref-find-definitions' ist' xref-pop-marker-stack') –

Verwandte Themen