我有一个问题。在powershell中使用clear或cls命令仅清除终端的可见部分,我想知道如何清除整个终端?
顺便说一句,我使用 VSCode。
tl;dr
还要清除回滚缓冲区,不仅仅是可见部分终端的 in Visual Studio Code集成终端,使用以下方法之一:
{
"key": "ctrl+k",
"command": "workbench.action.terminal.clear",
"when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported"
}
Using a command您可以从 shell 调用在综合终端中:
注意:真正的跨平台解决方案需要执行 VSCode-internal workbench.action.terminal.clear
来自 shell 的命令,但我不知道该怎么做/如果可能的话 - 请告诉我们您是否知道。
-
Linux(至少在 Ubuntu 上观察到):
-
macOS:
-
不幸的是,两者都没有/usr/bin/clear
也不是 PowerShell 的Clear-Host
(cls
) 也不是 .NET 的[Console]::Clear()
清除回滚缓冲区 - 它们都清除了一屏.
-
打印以下 ANSI 控制序列:'\e[2J\e[3J\e[H'
(\e
代表 ESC 字符。 (0x1b
, 27
);例如,来自bash
: printf '\e[2J\e[3J\e[H'
;来自 PowerShell:"`e[2J`e[3J`e[H"
-
您可以轻松地将这个调用包装在 shell 脚本中,以便从任何 shell 中使用:创建一个名为的文件,例如cclear
,在系统中列出的目录中PATH
变量,然后使其可执行chmod a+x
;然后将以下内容保存到其中:
#!/bin/bash
# Clears the terminal screen *and the scrollback buffer*.
# (Needed only on macOS, where /usr/bin/clear doesn't do the latter.)
printf '\e[2J\e[3J\e[H'
-
Windows:
-
据我所知,没有解决方案:cmd.exe
的内部cls
命令和PowerShell的内部Clear-Host
仅清除命令一屏在集成终端中(也不是回滚缓冲区 - 尽管它们也执行后者在常规控制台窗口中 and in Windows 终端).
-
不幸的是,适用于 macOS 的转义序列("`e[2J`e[3J`e[H"
或者,对于 Windows PowerShell,"$([char]27)[2J$([char]27)[3J$([char]27)[H"
) is not有效:在 Windows 上它只是清除一屏.
-
(相比之下,所有这些方法do还清除回滚缓冲区常规控制台窗口 and Windows 终端.)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)