1. トップ
  2. 新着ニュース
  3. IT
  4. パソコン

窓辺の小石 第163回 "UP THE LINE" 時間線を遡って

マイナビニュース / 2024年4月26日 12時50分

画像提供:マイナビニュース

PowerShellには、入力行を編集する「PSReadLine」という機能が搭載されている。このPSReadLineは、Linuxのbashに「inspired」されたreadline実装だとしている。

readlineは、GNUで開発された。もともとはbashの一部だったが、のちに独立したライブラリになり、他のプログラムなどからも使われるようになった。

その起源は、1980年台初頭にベル研で開発され、1983年に公開されたKornShell(ksh)にあると思われる。kshは、行編集機能をEmacsやviのキー割り当てで行うことができた。

ksh以前、cshなどは、履歴置換コマンドで、履歴を書き換える必要があった。これは、ラインエディタでの行編集に似ている。

kshは当初、オープンソースではなくAT&TがUNIX用ソフトウェアとして販売されていたと記憶する。このため、kshを使うことができるユーザーは非常に限られていた。しかし、そのために、多くのオープンソース系シェルでは、kshのような行編集機能を実装することが目標となった。

いまではLinuxで広く使われているbashは、1988年にGNU/FSF(Free Software Foundation)で開発が始まり、1989年にベータ版が公開された。readlineがbashから独立したライブラリとして公開されたのは1994年からである。

readlineは、GPL(GNU General Public License)であるため、Windows同梱ソフトウェアには取り込むことができず、Microsoftは、似たようなプログラムをC#で開発した。これがPSReadLineである。PowerShell専用であるため、GNU readlineとは異なる部分もあれば、同じようにemacsやviのキー割り当てで行編集が行える。

まず、キー割り当て(EditMode)の変更だが、PSReadLineには、“emacs”、“vi”、“Windows”の3つのEditModeが設定できる。“Windows”は、PSReadLineのデフォルトモードである。

set-PSReadLineOption -EditMode emacs | vi | windows

で行う。キー割り当てに関しては、“Get-PSReadLineKeyHandler”で一覧を得ることが可能だ。

この記事に関連するニュース

トピックスRSS

ランキング

複数ページをまたぐ記事です

記事の最終ページでミッション達成してください