私clear
は現在の画面を「クリア」するコマンドを知っていますが、それはたくさんの改行を印刷するだけでこれを行います-クリアされたコンテンツは上にスクロールされます。
上にスクロールしてもアクセスできないように、ターミナルからの以前の出力をすべて完全に消去する方法はありますか?
Command+K
ます。
私clear
は現在の画面を「クリア」するコマンドを知っていますが、それはたくさんの改行を印刷するだけでこれを行います-クリアされたコンテンツは上にスクロールされます。
上にスクロールしてもアクセスできないように、ターミナルからの以前の出力をすべて完全に消去する方法はありますか?
Command+K
ます。
回答:
⌘+K
Command+ K新しいキーボード用
/usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down'
clear
ある場合を除いて、すべての場合に使用することを検討してください。)
clear
。でも、逆にすべきだと思います。タイピングclear
は打つよりも意図的なようCommand + K
です。
(OPで述べられているように)OSXターミナルアプリを使用している場合、より良いアプローチ(https://apple.stackexchange.com/a/113168のおかげ)は次のとおりです。
clear && printf '\e[3J'
より簡潔に(https://stackoverflow.com/users/4834046/qiuyiへのヒント):
printf '\33c\e[3J'
スクロールバックバッファと画面をクリアします。他のオプションもあります。詳細については、https://apple.stackexchange.com/a/113168を参照してください。
このスレッドで与えられたAppleScriptの答えは機能しますが、たまたまアクティブになっているすべての端末ウィンドウをクリアするという厄介な副作用があります。あるウィンドウでスクリプトを実行していて、別のウィンドウで作業を実行しようとしている場合、これは驚くべきことです。
これを回避するには、AppleScriptを調整して画面が一番手前にある場合にのみ画面をクリアします(https://apple.stackexchange.com/a/31887から取得)。
osascript -e 'if application "Terminal" is frontmost then tell application "System Events" to keystroke "k" using command down'
...しかし、それが現在のウィンドウではない場合と同様に、出力が再び最新になるまで積み重ねられますが、これはおそらく望んでいるものではありません。
.bash_profile
、新しいターミナルウィンドウを開いたときにグリッチバッファが表示されなくなることがあるので、すばらしい方法です。
かわいい方法は printf '\33c\e[3J'
alias cls='printf "\33c\e[3J"'
\33c
同等のclear
コマンドを実行します。画面はクリアされますが、スクロールバックバッファはクリアされません(つまり、スクロールバーを使用して古い出力を表示できます)。を追加して\e[3J
、実際にスクロールバックバッファをクリアします。
function cls { printf '\33c\e[3J\33c' }
行を追加します~/.profile
(またはシステム全体/etc/profile
)。これは、macOS、FreeBSD、Linuxなどのデスクトップ環境で機能するはずです。extraは非macOSで\33c
追加の\e[3J
リテラルをクリアするためのものです(基本的にLinux / FreeBSDの場合、必要なのはだけですprintf '\33c'
)。
これを.bash_profileまたは.bashrcに入れてください
function cls {
osascript -e 'tell application "System Events" to keystroke "k" using command down'
}
Mac OS Xターミナルでは、この機能はすでにターミナルアプリケーションに組み込まれていますView->Clear Scrollback
(デフォルトはCMD+ K)。
そのため、Appleのキーボードショートカットを使用して、これを好きなように割り当て直すことができます。「Clear Scrollback」コマンドを使用して、ターミナルの新しいショートカットを追加するだけです。(バッファをクリアせずに現在の画面コンテンツをクリアするのは+ に似ているため、CMD+ を使用します。)LCTRLL
これをスクリプトでどのように使用するかはわかりません(おそらく他の人が指摘したようにAppleScript)。
View->Clear Scrollback
、ターミナルのメニューに表示されなくなりました。ただし、キーボードショートカットCMD
+はK
引き続き機能します。
Clear Scrollback
移動しView
ましEdit
た。
clear && printf '\e[3J'
すべてをクリアし、osXでも同様に機能します。とてもきちんと
正しいことをしてください、正しいことをしてください!
前のマークにクリア:Command-L
前のブックマークまでクリア:Option-Command-L
開始するにはクリア: Command-K
みんなを助けて!
上記のいずれも機能しません(macOS上)。
組み合わせは私のために働いた-
IO.write "\e[H\e[2J\e[3J"
これはバッファと画面をクリアします
IO.write
。同じように機能するはずですが、それらの文字を端末に出力することにしました。
端末で次のように入力すると、履歴が消去されます(つまり、上矢印を使用しても何も起こりません)-画面はクリアされません。
history -c