GNU Readline

GNU Readline（グニュー・リードライン）は、GNUプロジェクトが開発・保守しているライブラリの1つ。GPLでライセンスされ、bashなどのプロジェクトで使われている。

Readlineを使ったアプリケーションでは、CTRL-B押下でカーソルを1文字ぶん戻し、CTRL-F押下で1文字ぶん進め、CTRL-Rでコマンド履歴を検索できる。これらのショートカットキー（前述はデフォルトであり、vi風のバインディングも可能）はGNUの最も有名なプロジェクトであるテキストエディタのGNU Emacsに倣ったものである。Readlineには他にも、キルリング（コピー・アンド・ペーストをより柔軟にしたもの）、コマンド行補完といった基本機能がある。クロスプラットフォームのライブラリであるため、アプリケーションの行編集動作を各種システムで同一にすることができる。

Readlineは設定ファイルでカスタマイズでき、設定ファイルの位置はデフォルト (~/.inputrc) もあるが、アプリケーションで指定したパスでもよい。このファイルでキーバインディングなどをカスタマイズできる。

問題点 
既知のバグと制限がある。一部機能は文書通りには動作せず（例えば、ローカルエコーをディセーブルできない）、キーバインディングの削除ができない。

ライセンス 
GPLv3で配布されている。同様のライブラリにNetBSDのeditlineがあり、NetBSDライセンスで配布されている。

GPLv3と非互換のライセンスで配布されているプログラムの中には、Readlineをオプション機能としているものがある。その場合ユーザーがビルドするときにreadlineを使うか使わないかを指定する。リチャード・ストールマンと Bruno Haible の間で交わされた電子メールで、「プログラムを自由にするまでは（GPLv3互換なライセンスにするまでは）、Readlineの利用を停止する必要がある」と述べている。

脚注・出典

外部リンク 
GNU readline ホームページ
The Tecla command-line editing library - MIT系ライセンスによるReadlineの置換
Editline Library (libedit) - BSDライセンスによるReadlineの置換
Haskeline - HaskellによるReadline実装。BSDライセンス
rlwrap - Readlineの機能を持たないコマンドにReadline機能を提供するツール

GNUプロジェクト
オープンソースソフトウェア