Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > readlineライブラリ > Readlineモジュール

module Readline

クラスの継承リスト: Readline

要約

GNU Readline によるコマンドライン入力インタフェースを提供するモジュールです。

GNU Readline 互換ライブラリのひとつである Edit Line(libedit) もサポートしています。

Readline.readline を使用してユーザからの入力を取得できます。 このとき、 GNU Readline のように入力の補完や Emacs のようなキー操作などができます。

例: プロンプト"> "を表示して、ユーザからの入力を取得する。

require 'readline'
while buf = Readline.readline("> ", true)
  print("-> ", buf, "\n")
end

ユーザが入力した内容を履歴(以下、ヒストリ)として記録することができます。 定数 Readline::HISTORY を使用して入力履歴にアクセスできます。 例えば、Readline::HISTORY.to_a により、 全ての入力した内容を文字列の配列として取得できます。

例: ヒストリを配列として取得する。

require 'readline'
while buf = Readline.readline("> ", true)
  p Readline::HISTORY.to_a
  print("-> ", buf, "\n")
end

特異メソッド

定義 説明
basic_quote_characters -> String

スペースなどの単語の区切りをクオートするための 複数の文字で構成される文字列を取得します。

basic_quote_characters=(string)

スペースなどの単語の区切りをクオートするための 複数の文字で構成される文字列 string を指定します。

basic_word_break_characters -> String

ユーザの入力の補完を行う際、 単語の区切りを示す複数の文字で構成される文字列を取得します。

basic_word_break_characters=(string)

ユーザの入力の補完を行う際、 単語の区切りを示す複数の文字で構成される文字列 string を指定します。

completer_quote_characters -> String

ユーザの入力の補完を行う際、スペースなどの単語の区切りを クオートするための複数の文字で構成される文字列を取得します。

completer_quote_characters=(string)

ユーザの入力の補完を行う際、スペースなどの単語の区切りを クオートするための複数の文字で構成される文字列 string を指定します。 指定した文字の間では、Readline.completer_word_break_characters= で指定した文字列に含まれる文字も、普通の文字列として扱われます。

completer_word_break_characters -> String

ユーザの入力の補完を行う際、 単語の区切りを示す複数の文字で構成された文字列を取得します。 Readline.basic_word_break_characters との違いは、 GNU Readline の rl_complete_internal 関数で使用されることです。

completer_word_break_characters=(string)

ユーザの入力の補完を行う際、 単語の区切りを示す複数の文字で構成される文字列 string を指定します。 Readline.basic_word_break_characters= との違いは、 GNU Readline の rl_complete_internal 関数で使用されることです。

completion_append_character -> String

ユーザの入力の補完が完了した場合に、最後に付加する文字を取得します。

completion_append_character=(string)

ユーザの入力の補完が完了した場合に、最後に付加する文字 string を指定します。

completion_case_fold -> bool

ユーザの入力を補完する際、大文字と小文字を同一視する/しないを取得します。 bool が真ならば同一視します。bool が偽ならば同一視しません。

completion_case_fold=(bool)

ユーザの入力を補完する際、大文字と小文字を同一視する/しないを指定します。 bool が真ならば同一視します。bool が偽ならば同一視しません。

completion_proc -> Proc

ユーザからの入力を補完する時の候補を取得する Proc オブジェクト proc を取得します。

completion_proc=(proc)

ユーザからの入力を補完する時の候補を取得する Proc オブジェクト proc を指定します。 proc は、次のものを想定しています。

  1. callメソッドを持つ。callメソッドを持たない場合、例外 ArgumentError を発生します。
  2. 引数にユーザからの入力文字列を取る。
  3. 候補の文字列の配列を返す。
emacs_editing_mode -> nil

編集モードを Emacs モードにします。デフォルトは Emacs モードです。

filename_quote_characters -> String

ユーザの入力時にファイル名の補完を行う際、スペースなどの単語の区切りを クオートするための複数の文字で構成される文字列を取得します。

filename_quote_characters=(string)

ユーザの入力時にファイル名の補完を行う際、スペースなどの単語の区切りを クオートするための複数の文字で構成される文字列 string を指定します。

get_screen_size -> [Integer, Integer]

端末のサイズを [rows, columns] で返します。

input=(input)

readline メソッドで使用する入力用の File オブジェクト input を指定します。 戻り値は指定した File オブジェクト input です。

output=(output)

readline メソッドで使用する出力用の File オブジェクト output を指定します。 戻り値は指定した File オブジェクト output です。

set_screen_size(rows, columns) -> Readline

端末のサイズを引数 row、columns に設定します。

vi_editing_mode -> nil

編集モードを vi モードにします。 vi モードの詳細は、GNU Readline のマニュアルを参照してください。

モジュール関数

定義 説明
readline(prompt = "", add_hist = false) -> String | nil

prompt を出力し、ユーザからのキー入力を待ちます。 エンターキーの押下などでユーザが文字列を入力し終えると、 入力した文字列を返します。 このとき、add_hist が true であれば、入力した文字列を入力履歴に追加します。 何も入力していない状態で EOF(UNIX では ^D) を入力するなどで、 ユーザからの入力がない場合は nil を返します。

定数

定義 説明
FILENAME_COMPLETION_PROC -> Proc

GNU Readline で定義されている関数を使用してファイル名の補完を行うための Proc オブジェクトです。 Readline.completion_proc= で使用します。

USERNAME_COMPLETION_PROC -> Proc

GNU Readline で定義されている関数を使用してユーザ名の補完を行うための Proc オブジェクトです。 Readline.completion_proc= で使用します。

VERSION -> String

Readlineモジュールが使用している GNU Readline や libedit のバージョンを 示す文字列です。