2

ruby で事前に定義された簡単な入力が必要です。つまり、ユーザーが編集したり、単に押しEnterてスキップしたりできるように、デフォルトで何かが必要だということです。を使用してSTDIN.gets.chompいます。

not predifiend : "Please enter a title: "
predefined : "Please enter a title: Inception " // "Inception" is pre-defined input]
4

1 に答える 1

3

以下は、ユーザーが入力を開始してもデフォルトの回答がすぐにクリアされないため、次善のソリューションです。

prompt = 'Please enter a title: '
default_answer = 'Inception'

# Print the whole line and go back to line start
print "#{prompt}#{default_answer}\r"
# Print only the prompt so that the cursor stands behing the prompt again
print prompt

# Fetch the raw input
input = gets

# If user just hits enter only the linebreak is put in
if input == "\n"
  answer = default_answer
else # Otherwise the typed string including a linebreak is put in
  answer = input.chomp
end

puts answer.inspect

そのようなことが必要な場合は、より高度な端末機能を使用する必要があると思います。私はncursesが仕事をすることができると思います.

別のオプションは、デフォルトの回答を括弧内に表示し、プロンプトをその後ろに置くことです。多くの単純なコマンド ライン ツールがそのようなことを行います。これは次のようになります。

 Please enter a title [Inception]:
于 2012-10-24T16:17:53.590 に答える