2015-11-25 4 views
2

Я работаю над интерфейсом командной строки, чтобы сделать мой код более удобным. В настоящее время он выглядит так:Помощники интерфейса командной строки?

loop do 
    print "> " 
    cmd = gets.chomp 
    break if cmd == "quit" 
    run_command(cmd) 
    puts 
end 

Я бы хотел его расширить, чтобы сохранить ввод текста. Например, я хотел бы разрешить использовать клавишу «Стрелка вверх», чтобы повторить последнюю команду, и клавишу «Tab» для команды автоматического сопоставления и т. Д.

Есть ли какой-нибудь инструмент для облегчения работы?

+0

«Вопросы, предлагающие нам рекомендовать или находить книгу, инструмент, библиотеку программного обеспечения, учебник или другой ресурс вне сайта, не относятся к теме для переполнения стека, поскольку они склонны привлекать упрямые ответы и спам. Вместо этого [описать проблему] (http://meta.stackoverflow.com/questions/254393) и то, что было сделано до сих пор, чтобы решить эту проблему ». –

+0

Могу ли я добавить, что [Trollop] (https://github.com/ManageIQ/trollop) хорош для аргументов командной строки, если вам это нужно. – Charles

ответ

5

Вы, вероятно, ищет readline, вот пример:

require "readline" 

while cmd = Readline.readline("> ", true) 
    break if cmd == "quit" 
    run_command(cmd) 
    puts 
end 

Tab-завершение немного сложнее, хотя. Посмотрите на example on their documentation page.

+0

Он отлично работает, спасибо за помощь. – user180574

Смежные вопросы