現在の画面を「クリア」するclear
コマンドを知っていますが、これは多くの改行を表示することによってこれを行います - クリアされた内容はスクロールアップされるだけです。
上にスクロールしても到達できないように、端末からの以前の出力をすべて完全に消去する方法はありますか?
⌘+K
Command+K 新しいキーボード用
/usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down'
あなたがOSXターミナルアプリを使っているならば(OPによって述べられているように)、もっと良いアプローチ( https://Apple.stackexchange.com/a/113168 のおかげで)これだけです:
clear && printf '\e[3J'
スクロールバックバッファをクリアします。そしてそれはAppleScriptを実行するよりも速いです。他のオプションもあります。詳細については、 https://Apple.stackexchange.com/a/113168 を参照してください。
このスレッドで示されている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'
...しかし、それが現在のウィンドウではないときのように、出力はそれが再び現在になるまで積み重なります。
かわいい方法はprintf '\33c\e[3J'
です
これをあなたの.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」コマンドでTerminalの新しいショートカットを追加するだけです。 (私が使う CMD+Lに似ているので CTRL+L バッファをクリアせずに現在の画面の内容をクリアします。)
スクリプト内でこれをどのように使用するかわからない(おそらく他の人が指摘しているようにAppleScript)。
Mac OS X Yosemite(10.10)では、Terminal.appでスクロールバックを解除するためにOption + Command + K
を使用してください。
またはを押して、 改ページ (ASCIIフォームフィード)を送信することもできます。
CTRL+L
これは技術的には新しいページを開始するだけですが、他のすべての方法と同じ効果がありますが、はるかに高速です(もちろん、Apple + Kソリューションを除く)。
これはASCII制御コマンドなので、すべてのシェルで機能します。
clear && printf '\e[3J'
すべてをクリアし、osXでもうまく機能します。とてもきれい
次のように端末に入力すると、あなたの履歴は消去されます(上矢印を押すと意味がなくなります) - しかし、画面はクリアされません。
history -c
正しいことをする、正しいことをする!
前のマークをクリア:Command-L
前のブックマークをクリア:Option-Command-L
クリアしてください:Command-K
あなたのみんなを助けて!
私は上のどれも動くことができなかった(macOS上で)。
組み合わせは私のために働いた -
IO.write "\e[H\e[2J\e[3J"
これでバッファと画面がクリアされます
⌘+L
⌘+K