Wrt Icicles -
Per la maggior parte, Icicles è di circa minibuffer completamento. Ci sono alcuni casi in cui offre qualcosa per il completamento del buffer (ad esempio il codice), ma riguarda principalmente il completamento del minibuffer.
Quando la maggior parte delle persone pensa al completamento del minibuffer, pensano al completamento del nome del file, al completamento del nome del buffer e al completamento del nome del comando. Ma c'è un lotto in più.
Come programmatore Emacs-Lisp, è possibile utilizzare il completamento ovunque si desideri offrire agli utenti una scelta interattiva. È piuttosto generale!
Il completamento è in realtà circa di corrispondenza del modello per definire i set, che è possibile quindi modificare.
La maggior parte delle persone pensa che l'unico scopo del completamento del minibuffer sia scegliere un singolo nome (file, buffer, comando, variabile, ...). Ma il potere di completamento è davvero quello di filtrare e possibilmente ordinare l'insieme completo di nomi di file, nomi di buffer, ecc. In diversi modi, e quindi di lasciare che gli utenti facciano qualcosa con o con il risultato impostato (non necessariamente un singolo oggetto) .
Questo è ciò che Ghiaccioli è circa: che ti permette di dinamicamente (in modo incrementale) definire set con schema-matching, e poi agire sui membri selezionati o tutti i membri di tali gruppi.
Questo non è tanto lo scopo di Ido o gli altri pacchetti di completamento, con la possibile eccezione di timone (Tutto).
differenza Helm (Anything), che privilegia oggetto nomi oltre tipi di oggetti e azioni come punto di partenza, in Icicles in genere richiamare un comando di fare qualcosa a uno o più oggetti di un dato tipo (ad esempio, buffer) e quindi si restringe il set di tali oggetti, in genere per corrispondenza dei nomi. È spesso il caso in Icicles che è possibile agire su quegli oggetti in più modi collegati nello stesso comando.
In Helm (Anything), in generale, l'input è abbinato prima per argomento contro l'intero universo di oggetti di tutti i tipi, e poi a limitare giù a raccogliere alcune operazioni (s) per eseguire.
Infine, tieni presente che ciascuno dei vari approcci di completamento offre sia qualcosa (ad es. Comandi) per gli utenti finali che qualcosa (ad esempio funzionalità di completamento) per i programmatori.
Se stai facendo il completamento del codice poi in genere vuole solo completare il nome al punto. La cosa principale interessante riguardo al completamento del codice è determinare quali sono i candidati appropriati. Per questo, il contesto testuale (ad esempio il codice) è tipicamente importante. Per offrire scelte intelligenti, la funzione di completamento deve analizzare il contesto (codice), compreso qualsiasi contesto comprensivo (ad esempio il codice del progetto).
Il completamento del minibuffer d'altra parte può essere utilizzato per qualsiasi tipo di scelta e azione, compresa la scelta multipla con più azioni. Qui, tutte le parti sono interessanti: cosa possono offrire i candidati, cosa puoi fare con loro, ecc.
Non so se questo aiuti, ma questo è comunque il mio obiettivo.
significa probabilmente http://cx4a.org/software/auto-complete/index.html, nessuno lo ha menzionato. È il migliore della mia esperienza. – VitoshKa
Sì, intendo questo pacchetto - dimentico sempre che contiene il segno "-" e quale no ;-) –