Question

J'ai mis au point un certain nombre de fonctions d'assistance spécifiques au travail pouvant être utiles aux autres membres de mon équipe. Mais je les ai tous écrits dans Elisp d’Emacs, et cela ne se produira pas de les convertir à partir du Notepad ++.

Alors, je pense convertir les fonctions en Perl. Pas de problème.

Sauf que j'utilise tout le temps ido-complétion pour limiter les réponses:

  (setq client (ido-completing-read "Select a Client: " '("IniTrade" "HedgeCorp" "GlobalTech" "OCP") nil t))

EDIT: ido-completion-read est similaire à en terminant -read , sauf que toutes les options sont visibles et peuvent être sélectionnées via les touches [de flèche, généralement] ou en les saisissant. Dans l'exemple ci-dessus, l'invite ressemblerait à

.
  Select a Client: {IniTrade | HedgeCorp | GlobalTech | OCP}
Les sélections

peuvent être effectuées sur l'élément le plus à gauche en appuyant sur RET ou en tapant partiellement (dans ce cas, les premières lettres sont uniques, ce qui est tout ce qui serait nécessaire, et l'élément correspondant deviendrait l'élément de gauche). plus).

nil dans cet exemple est un paramètre non utilisé, mais "t"; nécessite une correspondance exacte - par exemple, l'utilisateur doit effectuer l'une des sélections. La fonction renvoie une chaîne, telle que "IniTrade".

Mes "fonctions auxiliaires" " sont destinés à des besoins internes - ouvrir un journal d'erreurs particulier, restaurer un lot sur le serveur, etc. Pour ces opérations, l'utilisateur doit spécifier l'environnement de test ou de production, le client, l'étape, etc. Dans la plupart des cas, il s'agit de sélections de chaînes. qui sont utilisés pour construire une autre commande shell. Si un élément numérique est renvoyé, il peut être à nouveau converti en chaîne - mais comme les sélections sont généralement la chaîne requise, il serait intéressant de pouvoir ignorer cette étape. [end EDIT]

Existe-t-il un équivalent Perl? J'ai consulté Terme :: Invite qui offre un menu numéroté ... le plus proche que j'ai trouvé. Ce n'est pas aussi joli que l'idi-achèvement, et je devrais tout de même convertir un résultat numérique en chaîne en une chaîne (pas un problème majeur; juste ennuyeux).

Lors de la composition de ce document, j’ai remarqué que j’utilisais le terme "menu". Un peu plus de recherche a abouti à Terme :: Menus. Je n'ai pas encore essayé celui-ci.

Était-ce utile?

La solution

Term :: ReadLine peut faire ce que vous cherchez, bien que cela ressemble probablement davantage à "achèvement-lecture" qu'à "ido-achèvement-lecture".

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top