シェル (zsh) で作業しているときによくあるのは、cd
どこかに ed を実行して、そのディレクトリをざっと確認したい場合です。 を使用すると、ls
大量の出力が生成され、ターミナルに残ります。 を使用する方ls | less
がよいのですが、終了すると、less
その出力がすべてそこに残ります。 のようにする方法をご存知ですか。ls | less
ただし、 を終了するとless
、ターミナル画面はそのまま残ります。
答え1
私の場合、less
あなたが説明したとおりに動作します - 私は使用する必要がありless -X
ます無効にするこの動作。
「代替スクリーンバッファ多くの端末で実装されている「」
vim
これは/のようなエディターによって使用されnano
、終了時にターミナルが以前の状態に復元されます。
これを試して:
tput smcup
ls | less
tput rmcup
が利用できない場合はtput
、それぞれecho $'\e[?1049h'
/ を使用してみてくださいecho $'\e[?1049l'
。
答え2
zsh を使用しているとのことなので、zsh に組み込まれているタブ補完を利用できます。「長い」ls リストは表示されませんが、「ls」に続けてタブを入力すると、ディレクトリとファイルの名前をプレビューできます。現在の作業ディレクトリで「ls」できる可能性のあるファイル/ディレクトリが表示され、特定の 1 つを ls するか、「-l ファイル名」を追加して特定の 1 つを詳細に表示するか、または「Control-u」を押して現在の行をクリアし、別のコマンドを入力する準備をすると、タブ補完の候補が消えます。
たとえば、VM の 1 つで「ls [TAB]」を実行すると、次のように表示されます。
user@fbsd:~% ls
.cshrc .mailrc .ssh/
.login .profile .zshrc
.login_conf .rhosts code/
.mail_aliases .shrc inventory.hw.gather.sh*
Control-u を押すと、コマンド ラインの下の候補が消えます。