@ Dougs Antwort ist etwas veraltet und sein Fokus liegt auf der Erweiterung des Codes durch vordefinierte Snippets.
Ich denke, die Frage des OP ist über Intellisense (Auto-Vervollständigung Methodenname einer Klasse zum Beispiel).
hippie expand war früher beliebt, der syntax analyzer ist emacs tags . Daher unterstützt es alle Sprachen, die ctags unterstützt (einschließlich C ++ , Java). Das Ergebnis ist jedoch nicht perfekt, da ctags nur reguläre Ausdrücke verwendet, um den Code zu analysieren. Siehe mein init-hippie-expand.el für Details. Sie könnten damit beginnen, den Wert von zu überprüfenhippie-expand-try-functions-list
Auto-Vervollständigung ist eine moderne mit ausgefallener Benutzeroberfläche (Dropdown-Menü, auch im Konsolenfenster). Wenn Sie clang als Backend verwenden. Der Intellisense ist viel besser. Um den Clang zum Laufen zu bringen, musst du den Auto-Vervollständigungs-Clang installieren, der das Plugin für die automatische Vervollständigung ist. Es unterstützt nur die Sprachclang-Unterstützung (C / C ++ / Obj-C). Wie Sylvain Benner betonte, können Sie Emacs-Eclim als das Java-Parsing-Back-End verwenden, das die ausführbare Datei von Eclipse aufruft. Auto-Vervollständigung kann also Java unterstützen. Siehe mein init-auto-complete.el für Details.
semantic bietet sowohl die Benutzeroberfläche als auch die Back-End-Parsing-Engine. Es ist langsam. Die Dropdown-Benutzeroberfläche ist in Ordnung, erfordert jedoch ein X-Fenster. Das Intellisense-Ergebnis ist besser als ctags. Und die Dokumentation ist zu geeky für mich. Siehe init-semantic.el für Details.
Der Firmenmodus ähnelt dem automatischen Vervollständigen. Der Unterschied besteht darin, dass alles in einem Bundle zusammengefasst wird. Zum Beispiel müssen C ++ - Entwickler nur den Firmenmodus installieren (für die automatische Vervollständigung ist ein Plugin eines Drittanbieters erforderlich). Ein weiterer Unterschied in der Benutzeroberfläche ist, dass das Unternehmen den Kandidaten automatisch anzeigt . Sie drücken also weniger Tasten in Gesellschaft. Es ist möglich, dasselbe bei der automatischen Vervollständigung nach der Anpassung zu tun.
Zusammenfassend sind Auto-Vervollständigung, Unternehmen zwei beliebtesten Wahl. Semantic und Hippie-Expand sind ebenfalls willkommen, werden aber weniger genutzt. Andere sind zu trivial, um sie zu erwähnen, und ihre Merkmale werden bereits von den großen Vieren abgedeckt. Beispielsweise könnte die automatische Vervollständigung yasnippet als Eingabequelle verwenden (die automatische Vervollständigung stellt die Benutzeroberfläche bereit, die tatsächlichen Kandidaten werden jedoch vom yasnippet-Back-End erstellt).
Ich schlage vor, entweder Auto-Vervollständigung oder Firma als Haupt-Plugin für die Code-Vervollständigung und entweder Semantik oder Hippie-Erweiterung als ergänzendes Plugin zu verwenden .
Ich benutze Firmenmodus und Hippie-Expand, weil,
Jetzt (Jahr 2017) wird der Firmenmodus aktiver gepflegt als das automatische Vervollständigen und verfügt über mehr Plugins von Drittanbietern (z. B. Latex-Plugin).
Hippie-Expand ist nicht sehr aktiv, belegt aber keinen TAB
Schlüssel, den der Firmenmodus / die Semantik / die automatische Vervollständigung verwendet
Wenn Sie den Firmenmodus für C ++ / Java verwenden, möchten Sie möglicherweise Änderungen vornehmen company-backends
.
Noch ein paar Tipps zum Firmenmodus,
Möglicherweise müssen Sie den Wert von anpassen company-backends
. Angenommen, sein Wert ist (company-eclim company-semantic company-clang (company-dabbrev-code company-gtags company-etags company-keywords))
. Wenn Sie dann company-eclim
Kandidaten erhalten können, die nicht Null sind, company
denken Sie , Sie schreiben Java, so dass es KEINE Backends mehr ausführt company-eclim
.
Nun schauen wir mal (company-dabbrev-code company-gtags company-etags company-keywords)
. Alle diese vier Backends werden zusammen verwendet. Zum Beispiel werden company-dabbrev-code
die anderen drei Backends auch dann ausgeführt , wenn Nicht-Null-Kandidaten erfolgreich abgerufen wurden.
In der Praxis ist es häufig erforderlich, die Reihenfolge der Backends neu anzupassen oder ein neues Backend hinzuzufügen ( company-rtags
z. B.).
complete.el
ausprobieren. Es ist sehr alt und wenig bekannt, aber die Art der In-Buffer-Vervollständigung kann nützlich sein.M-x find-library complete
Lesen Sie dann den Kommentar in der Datei.