The Linenoise gem is a wrapper around the small self-contained alternative to Readline and Libedit called Linenoise.
- History support
- Completion
- Hints (suggestions at the right of the prompt as you type)
- Single and multiline editing mode with the usual key bindings
Add the Linenoise gem to your Gemfile:
gem 'linenoise', '~> 1.1'
Invoke the following command from your terminal:
gem install linenoise
require 'linenoise'
while buf = Linenoise.linenoise('> ')
p buf
end
require 'linenoise'
LIST = %w[
search download open help history quit url next clear prev past
].freeze
Linenoise.completion_proc = proc do |input|
LIST.grep(/\A#{Regexp.escape(input)}/)
end
while line = Linenoise.linenoise('> ')
p line
end
require 'linenoise'
Linenoise.hint_proc = proc do |input|
case input
when /git show/
' [<options>] [<object>...]'
when /git log/
' [<options>] [<revision range>]'
else
' --help'
end
end
while line = Linenoise.linenoise('> ')
p line
end
More examples and full API explanation is available on the documentation page.
bundle exec rake compile spec
bundle exec rake compile console
In case you have a problem, question or a bug report, feel free to:
- file an issue
- send me an email (see https://github.com/kyrylo)
- tweet at me
The project uses the MIT License. See LICENSE.md for details.