我知道“清除”当前屏幕的清除命令,但它只是通过打印大量换行来做到这一点-清除的内容只是向上滚动。
是否有一种方法可以完全擦除终端之前的所有输出,以至于我即使向上滚动也无法到达它?
我知道“清除”当前屏幕的清除命令,但它只是通过打印大量换行来做到这一点-清除的内容只是向上滚动。
是否有一种方法可以完全擦除终端之前的所有输出,以至于我即使向上滚动也无法到达它?
当前回答
CMD + K适用于macOS。它清除整个终端输出,但环境仍然存在。
其他回答
CMD + K适用于macOS。它清除整个终端输出,但环境仍然存在。
将以下内容添加到配置文件中将获得执行此操作的新命令。
alias clearwipe='printf "\33c\e[3J"'
重新加载后,clearwipe将是一个新命令,它将完全擦除终端上的所有先前输出,这样即使向上滚动也无法到达它。
删除最后一个输出:
⌘ + L
清空终端:
⌘ + K
从脚本中清除屏幕的更好方法…
如果你正在使用OS X终端应用程序(正如OP所述),一个更好的方法(感谢Chris Page对如何通过shell命令重置终端中的屏幕的回答?)就是:
clear && printf '\e[3J'
或者更简单地说(向用户qiyi致敬):
printf '\33c\e[3J'
它会清除屏幕上的滚动缓冲区。还有其他的选择。参见Chris Page对如何通过shell命令重置终端中的屏幕的回答?获取更多信息。
原来的答案
AppleScript在这个线程中给出的答案是有效的,但它有一个讨厌的副作用,即清除任何恰好处于活动状态的终端窗口。如果您在一个窗口中运行脚本,而试图在另一个窗口中完成工作,这是令人惊讶的!
你可以通过细化AppleScript来避免这种情况,只清除屏幕如果它是最前面的,通过这样做(从MattiSG的回答如何通过shell命令重置终端中的屏幕?):
osascript -e 'if application "Terminal" is frontmost then tell application "System Events" to keystroke "k" using command down'
... 但是,当它不是当前窗口时,输出将堆叠起来,直到它再次成为当前窗口,这可能不是您想要的。
手动清除终端。
⌘+K
Command+K用于较新的键盘
从shell脚本中清除终端;
/usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down'