當我在 shell - zsh 中工作時經常發生的情況是,我已經cd
編輯了某個地方,並且想要快速查看該目錄。使用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”哪些文件/目錄,然後您可以專門 ls 一個,添加“-l 文件名”以查看特定文件/目錄的詳細信息,或者只需單擊“Control- u ”來清除您所在的行並準備輸入不同的命令,製表符完成建議將會消失。
例如,當我在一台虛擬機器上「ls」[TAB] 時,我看到:
user@fbsd:~% ls
.cshrc .mailrc .ssh/
.login .profile .zshrc
.login_conf .rhosts code/
.mail_aliases .shrc inventory.hw.gather.sh*
當我按下 Control-u 時,命令列下方的建議消失了。