Ich habe Emacs schon lange benutzt, aber ich habe nicht mit einer Reihe von Funktionen Schritt gehalten. Eine davon ist speedbar , die ich jetzt kurz untersucht habe. Ein anderer ist imenu . Beide wurden in erwähnt in-Emacs-wie-kann- i-jump-zwischen-Funktionen-in-der-aktuelle-Datei?
Mit imenu kann ich zu bestimmten Methoden in dem Modul springen, in dem ich arbeite. Aber es gibt eine Parse-Hierarchie, die ich verhandeln muss, bevor ich den Methodennamen wählen kann (mit Autovervollständigung).
Es geht so. Ich tippe M-x imenu
und dann kann ich Using
oder Types
wählen. Mit der Option using kann ich zu jeder der using-Anweisungen auf der obersten Ebene der C # -Datei springen (etwas wie Importanweisungen in einem Java-Modul für diejenigen unter Ihnen, die C # nicht kennen). Nicht sehr hilfreich. Ich wähle Typen. Dann muss ich einen Namespace und eine Klasse auswählen, obwohl nur jeweils eine im Quellmodul vorhanden ist. An diesem Punkt kann ich zwischen Variablen, Typen und Methoden wählen. Wenn ich Methoden auswähle, bekomme ich endlich die Liste der Methoden zur Auswahl. Die Hierarchie, die ich durchquere, sieht so aus;
Erst wenn ich auf die 5. Ebene komme, kann ich das auswählen, zu dem ich wirklich springen möchte: eine bestimmte Methode.
Imenu scheint über das Quellmodul intelligent zu sein, aber irgendwie schwer zu benutzen. Mache ich es falsch?
Die CEDET-Tools in Ссылка enthalten einen C # -Parser im Contrib-Bereich, der C # -Code parsen kann. CEDET unterstützt dann spezialisierte Schnittstellen für Speedbar und Imenu, die Ihre Menükonstrukte so gestalten, dass sie organisiert und nicht organisiert sind. In c ++ zum Beispiel Code wie folgt:
%Vor%würde Ihnen einen Baum geben, der "bar" unter "foo" und "somemethod" unter "bar" hätte. Wenn Sie also Ihre Struktur kennen, müssen Sie nur nach dem Namen auf das gewünschte Tag zugreifen.
Ich benutze die folgende Funktion, die ido verwendet und nur nach den Symbolen fragt, zu denen man springen kann. Nennen Sie es einfach statt imenu:
%Vor%Tags und Links c# emacs emacs-speedbar