history
Vim を使用して(シェルではなく)の結果を確認したい。うまくいくと思います(の入力としてhistory | vim
の結果を使用します)が、次のように返されます。history
vim
$history | vim
Vim: Warning: Input is not from a terminal
Vim: Error reading input, exiting...
Vim: Finished.
誰でもこれを説明できますか?
vimにパイプすることで、標準入力ストリームを変更しています。vimは対話型プログラムであるため、標準入力がコンソールである必要があります。
vim で表示したい場合は、stdin からファイルを読み込んでいることを (引数 を指定して-
)伝える必要があります。
history | vim -
または、 moreまたはlessを使用することもできます。
history | more
history | less
これらの後者の 2 つは好ましいです。vimにパイプすると、「ファイル」が変更されていると見なされるため、直接:q
コマンドで終了することはできません。代わりに で強制終了する必要がありますが:q!
、これは少し面倒です。
一方、入力するだけで多かれ少なかれ終了できます。これら 2 つのプログラムのマンページを見てください。あなたはそれらをたくさん使うでしょう。q
コメントで Russell Silva が推奨しているように、 stdin から読み取るときにvimを読み取り専用モードで開くことができます。-R
引数を指定するだけです。次に、オーバーライドを必要とせずに通常どおり終了できます。
history | vim -R -