Installieren:
GUI-Version GNU Emacs 25.0.50.1 (x86_64-w64-mingw32) vom 25.07.2015 auf KAEL
unter Verwendung der neuesten Version von von MELPA
Windows 7 x 64-Bit.
Situation:
Zum Beispiel tippe ich die Puffer-Fobarsenz ein.
Beginnen Sie dann eine neue Zeile darunter und geben Sie fooba ein. Ich habe erwartet, dass foobarsentence
sie im Popup-Abschlussfenster des Unternehmens vorgeschlagen wird. Aber es gibt keine foobarsentence
.
Ich fand es von einer anderen Antwort, dass ich unternehmen dabbrev`` dafür verwenden könnte, gebunden, M-/. Aber ich konnte nicht herausfinden, wie ich die Vorschläge company-dabbrev
in das Popup-Fenster "einspeisen" konnte. Ich habe ein Screencast-Gif erstellt, um meine Frage zu klären.
Wie Sie sehen können, M-/Anrufe company-dabbrev
. Aber ich würde gerne sehen, dass in der Firma Abschluss Popup vorgeschlagen. Es hat mich überrascht, dass dies nicht die Standardeinstellung ist.
Irgendwelche Vorschläge, um die Vorschläge company-dabbrev
in das Popup-Fenster des Unternehmens zu übernehmen?
quelle
Antworten:
So funktioniert die Fertigstellung im Unternehmen (ich vereinfache es ein wenig). Eine detailliertere Beschreibung finden Sie in der Dokumentation von
company-backends
C-hvcompany-backends
RET.Sie haben eine Liste von Backends (Completion Engines), die Unternehmen versuchen sollten, die Vervollständigung zu einem bestimmten Zeitpunkt vorzunehmen. Das Unternehmen probiert jedes dieser Backends nacheinander aus, und das erste, das Kandidaten zurückgibt, wird zur Vervollständigung verwendet, und der Rest der Backends wird ignoriert. Standardmäßig wird also immer nur ein Backend verwendet.
In Ihrem Fall (Sie scheinen sich im emacs-lisp-Modus zu befinden) gibt das emacs-lisp-Backend Kandidaten zur Fertigstellung zurück und
company-dabbrev
wird daher von der Firma niemals zur Fertigstellung verwendet, und Sie werden niemalsfoobarsentence
zur Fertigstellung gebracht. Vielleicht möchten Sie also das Back-End des Unternehmens so ändern, dass escompany-dabbrev
vorcompany-elisp
(odercompany-capf
in neueren Versionen von Emacsen) kommt. Aber ich denke, das ist nicht das, was Sie wollen, da dies die aktuelle Situation umkehren würde und Sie keine Vervollständigungen vom emacs-lisp-Backend erhalten (in diesem Fall lesen Sie weiter).Das Unternehmen bietet die Möglichkeit, Abschlüsse aus mehreren Quellen mithilfe von so genannten
grouped
Backends zusammenzuführen. Normalerweise sind die Mitglieder voncompany-backends
einzelne Backends, es kann sich aber auch um eine Liste von Backends handeln. In diesem Fall werden die Vervollständigungen aus den Backends zusammengeführt, sofern sie dieselbenprefix
oder den zu vervollständigenden Text zurückgeben (einecompany-backends
ausführliche Beschreibung finden Sie in der Dokumentation von ).Also, wenn Sie Vervollständigungen von zusammenführen möchten
company-elisp
(auf neuere Emacsencompany-capf
verwendet wird) und diescompany-dabbrev
einfach tunZusätzlich können Sie verschiedene Backends mit dem
:with
Schlüsselwort zusammenführenDies unterscheidet sich von dem Beispiel einer Liste von Backends ohne,
:with
da die Firma nur die Backends zuvor:with
zur Bestimmung desprefix
(des zu vervollständigenden) Texts verwendet. Dies impliziert, dass die Kandidaten von Backends danach:with
vom Unternehmen ignoriert werden, unabhängig davon, ob die Backends a zurückgebenprefix
oder nein, wenn keines der Backends vor:with
a zurückgibtprefix
.Möglicherweise möchten Sie dies lokal in Emacs-Lisp-Puffer festlegen (ich bevorzuge dies)
quelle
:with