Wrt Icicles -
Zum größten Teil, Icicles ist über Minipuffer Abschluss. Es gibt ein paar Fälle, in denen es etwas für eine In-Puffer- (z. B. Code-) Vervollständigung bietet, aber es geht hauptsächlich um die Minibuffer-Vervollständigung.
Wenn die meisten Leute über die Minibuffer-Vervollständigung nachdenken, denken sie an Dateinamen-Vervollständigung, Puffer-Name-Vervollständigung und Befehls-Name-Vervollständigung. Aber es gibt ein Los mehr dazu.
Als Emacs-Lisp-Programmierer können Sie die Completion überall dort verwenden, wo Sie Benutzern interaktiv eine Auswahlmöglichkeit bieten möchten. Das ist ziemlich allgemein!
Abschluss ist wirklich über Muster-Matching zu definieren Sets, die Sie dann manipulieren können.
Die meisten Leute denken, dass das einzige Ziel der Minibuffer-Vervollständigung ist, einen einzelnen Namen (Datei, Puffer, Befehl, Variable, ...) zu wählen. Aber die Macht der Vervollständigung besteht eigentlich darin, den vollständigen Satz von Dateinamen, Puffernamen usw. auf verschiedene Arten zu filtern und möglicherweise zu sortieren, und dann die Benutzer etwas an oder mit dem Ergebnis setzen zu lassen (nicht notwendigerweise ein einzelnes Objekt) .
Das ist, was Icicles über ist: Lassen Sie dynamisch (inkrementell) definieren Sätze mit Mustervergleich und wirken dann auf ausgewählte Mitglieder oder alle Mitglieder dieser Sätze. Dies ist
nicht so sehr das Ziel Ido oder die anderen Abschluss-Pakete, mit der möglichen Ausnahme von Helm (Alles).
Im Gegensatz zu Helm (Anything), die Privilegien Namen über Objekttypen und Aktionen als Ausgangspunkt Objekt, in Icicles Sie in der Regel einen Befehl aufrufen etwas auf ein oder mehrere Objekte eines bestimmten Art zu tun (zB Puffern) und dann Sie die Reihe dieser Objekte eingrenzen, in der Regel durch Namensanpassung. Es ist oft der Fall in Icicles, dass Sie auf diese Objekte auf mehrere, aber verwandte Arten innerhalb desselben Befehls handeln können.
In Helm (Alles) im Allgemeinen Ihre Eingabe ist abgestimmt zuerst von Objektnamen gegen das gesamte Universum von Objekten aller Art, und danach verengen Sie unten eine Operation zu holen (n) durchzuführen. Beachten Sie, dass jeder der verschiedenen Komplettierungsansätze sowohl etwas (z. B. Befehle) für Endbenutzer als auch etwas (z. B. Komplettierungsfunktionen) für Programmierer bietet.
Wenn Sie Code-Vervollständigung tun dann wollen Sie in der Regel nur die Namen am Punkt abzuschließen. Das Interessante an der Code-Vervollständigung ist die Bestimmung der geeigneten Kandidaten. Dafür ist der textliche Kontext (z. B. der Code) typischerweise von allergrößter Bedeutung. Um intelligente Auswahlen anzubieten, muss die Vervollständigungsfunktion den Kontext (Code) einschließlich eines umfassenden Kontexts (z. B. Projektcode) analysieren.
Minibuffer Abschluss auf der anderen Seite kann für jede Art von Auswahl und Aktion verwendet werden, einschließlich Multiple-Choice mit mehreren Aktionen. Hier sind alle Teile interessant: was Kandidaten zu bieten haben, was man mit ihnen machen kann, usw.
Weiß nicht, ob das hilft, aber das ist meine Meinung jedenfalls.
Sie wahrscheinlich meinen http://cx4a.org/software/auto-complete/index.html, merkwürdiger niemand erwähnte es. Es ist das Beste in meiner Erfahrung. – VitoshKa
Ja, ich meine dieses Paket - ich vergesse immer, welches '-' Zeichen enthält und was nicht ;-) –