Esiste un equivalente Perl per il completamento ido di Emacs?
-
03-07-2019 - |
Domanda
Ho creato una serie di funzioni di supporto specifiche per il lavoro che potrebbero essere utili per gli altri membri del mio team & amp; mdash. Ma li ho scritti tutti in Elisp di Emacs e non riuscirò a farli convertire da Notepad ++.
Quindi, sto pensando di convertire le funzioni in Perl. Nessun problema.
Tranne il fatto che utilizzo sempre l'ido-completamento per limitare le risposte:
(setq client (ido-completing-read "Select a Client: " '("IniTrade" "HedgeCorp" "GlobalTech" "OCP") nil t))
EDIT: ido-completing-read è simile al completing -read , tranne per il fatto che tutte le opzioni sono visibili e possono essere selezionate scorrendo [tasti freccia, di solito] o digitando-completamento. Nell'esempio sopra, il prompt dovrebbe apparire come
Select a Client: {IniTrade | HedgeCorp | GlobalTech | OCP}
le selezioni possono essere fatte sull'elemento più a sinistra premendo RET o digitando parzialmente (in questo caso, le prime lettere sono tutte uniche, quindi è tutto ciò che sarebbe necessario e l'elemento corrispondente diventerebbe la sinistra- maggior parte).
zero nell'esempio è un parametro inutilizzato, ma " t " richiede una corrispondenza esatta, ad esempio l'utente deve effettuare una delle selezioni. La funzione restituisce una stringa, ad esempio " IniTrade " ;.
Le mie funzioni "helper" " sono per esigenze interne: apertura di un log degli errori specifico, ripristino di un batch sul server, ecc. Per queste operazioni, l'utente deve specificare l'ambiente di test o di produzione, il client, lo stage, ecc. In quasi tutti i casi, si tratta di selezioni di stringhe che sono usati per costruire un altro comando shell. Se viene restituito un elemento numerico, che a sua volta potrebbe essere tradotto nuovamente in una stringa, ma poiché le selezioni sono in genere la stringa richiesta, sarebbe bello se quel passaggio potesse essere saltato. [fine EDIT]
Esiste un equivalente Perl? Ho esaminato Term :: Prompt che offre un menu numerato ... il più vicino che ho trovato. Non è bello come il completamento dell'idolo, e dovrei comunque convertire un risultato numerico all'indietro in una stringa (non un grosso problema; solo fastidioso).
Mentre componevo questo, ho notato che ho usato il termine 'menu', quindi ho fatto qualche altra ricerca e ho trovato Termine :: Menu. Non ho ancora provato questo.
Soluzione
Termine :: ReadLine può fare quello che stai cercando, anche se probabilmente è più simile a "completamento-lettura" che a "completamento-lettura-ido".