11

デフォルト値がすでに入力されているプロンプトを端末に表示したい場合は、どうすればよいですか?

Rubyの標準では、履歴Readline.readline()を設定できますが、デフォルト値を入力することはできません(少なくとも私が知る限り)

私はこのようなものが欲しいです:

コード:

input = Readline.readline_with_default('>', 'default_text')

コンソール:

> default_text|
4

6 に答える 6

5

+1 ハイライン

次のようなものを試してください:

require 'highline/import'
input = ask('> ') {|q| q.default = 'default_text'} # > |default_text|
于 2011-04-27T22:32:02.127 に答える
3

ncursesの仕事のように聞こえます。rbcurse(http://rbcurse.rubyforge.org/)は、現時点で最もよく維持されているAPIのようです。

于 2010-02-22T23:55:16.443 に答える
2

私は同じことで苦労しています。

私が今やっている方法は次のとおりです。

options = ["the_text_you_want"]
question = "use TAB or up arrow to show the text > "

Readline.completion_append_character = " "
Readline::HISTORY.push options.first
Readline.completion_proc = proc { |s| options.grep( /^#{Regexp.escape(s)}/ ) }

while value = Readline.readline(question, true)
  exit if value == 'q'
  puts value.chomp.strip #do something with the value here
end

はい、ばかげていますが、それが私が見つけた唯一の方法です。

誰かがこれに対する解決策を見つけましたか?

于 2010-11-03T03:04:51.740 に答える
1

Highlineは、あなたが説明したこととまったく同じではありませんが、十分に近いかもしれません。

于 2010-02-23T00:09:30.170 に答える