矢印キーに複数行コマンドを表示させる方法は?

矢印キーに複数行コマンドを表示させる方法は?

端末で次のコマンドを実行しました。

$ while read i
> do
> echo $i
> done
4
4

ただし、上矢印キー機能を使用してコマンドを再実行しようとすると、次のコマンドの一部のみが表示されます。

$ while read i

KSHで上矢印を使用して全体のwhileループを印刷するには?

答え1

元のkshの行編集は非常に限られていました。 zshやbashなどの「クローン」のいずれかを使用できます。

ksh93の場合、またはモードの代わりにvi編集モード()を使用すると、複数行のコマンドを呼び出してもksh -o viemacsgmacs働く、改行はとしてレンダリングされますが、^Jこれはpdkshすべての編集モードとその派生モードでも得られます。

Ctrl+VCtrl+J1行に複数行のコードを入力してから、emacs後でモードでも呼び出すためにこれらの改行文字を入力することもできます。

別のオプションは、fc実際のテキストエディタで前の行を編集することです。

fc while

include$FCEDIT後に実行します。その後、エディタで保存して終了します。exwhile


¹特定の動作(入力として使用または呼び出し)に依存する場合、より近い動作をさせるモックモードzshもあります。kshkshkshemulate kshzshksh

関連情報