Existe um equivalente a Perl para a conclusão IDO da EMACS?
-
03-07-2019 - |
Pergunta
Eu construí várias funções auxiliares específicas do trabalho que podem ser úteis para outros membros da minha equipe e Mdash. Mas eu escrevi todos eles no ELISP da Emacs, e fazê -los converter do Notepad ++ não vai acontecer.
Então, estou pensando em converter as funções em Perl. Sem problemas.
Exceto que eu uso a conclusão do IDO o tempo todo para limitar as respostas:
(setq client (ido-completing-read "Select a Client: " '("IniTrade" "HedgeCorp" "GlobalTech" "OCP") nil t))
Editar: a leitura de conclusão da IDO é semelhante a completando leitura, exceto que todas as opções são visíveis e podem ser selecionadas via ciclismo [teclas de seta, geralmente] ou conclusão de digitação. No exemplo acima, o prompt seria
Select a Client: {IniTrade | HedgeCorp | GlobalTech | OCP}
As seleções podem ser feitas no item mais à esquerda, pressionando o RET ou por digitação parcial (neste caso, as primeiras letras são todas únicas, de modo que isso é tudo o que seria necessário, e o item correspondente se tornaria o mais esquerdo).
Nil no exemplo é um parâmetro não utilizado, mas "t" requer uma correspondência exata - por exemplo, o usuário deve fazer uma das seleções. A função retorna uma string, como "initrade".
Minhas "funções auxiliares" são para necessidades internas - abrindo um registro de erros específico, restaurando um lote para o servidor etc. Para essas operações, o usuário precisa especificar um ambiente de teste ou produção, cliente, estágio etc. em quase todos os casos , essas são seleções de string que são usadas para criar outro comando de shell. Se um item numérico for retornado, isso poderá ser re-traduzido para uma string-mas como as seleções geralmente são a string necessária, seria bom se essa etapa pudesse ser ignorada. [End Edit
Existe um equivalente perl? Eu olhei Termo :: Prompt que oferece um menu numerado ... mais próximo que encontrei. Isso não é tão bonito quanto a conclusão e eu ainda teria que converter um resulto numérico para trás em uma string (não um problema importante; apenas irritante).
Ao compor isso, notei que usei o termo 'menu', assim como algumas pesquisas e surgiu com Termo :: menus. Ainda não tentei este.
Solução
Termo :: ReadLine pode fazer o que você está procurando, embora provavelmente seja mais como 'Conclusão de leitura' do que a 'Ler-Ler-Ler-Ler'.