VS 代码终端禁用以前的命令输出

VS 代码终端禁用以前的命令输出

是否可以禁用/删除以前的命令VS 代码终端默认终端的输出是电源外壳现在,如果我输入命令pwddir然后使用命令清除屏幕,cls现在,如果我dir再次输入命令,我将在终端中接收所有先前的命令输出,我该如何解决这个问题

第一个命令输出

PS C:\Users\sadam\Desktop> pwd

Path
----
C:\Users\sadam\Desktop

第二条命令输出

PS C:\Users\sadam\Desktop> whoami
root\sadam

第三条命令输出

PS C:\Users\sadam\Desktop> dir


    Directory: C:\Users\sadam\Desktop


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----         1/24/2022   8:53 PM            7.txt
d----        10/22/2021   9:46 PM            8
d----        11/16/2021   7:16 PM            del
d----        11/16/2021   8:52 PM            pcl
d----          1/9/2022  12:40 PM            ssssss
-a---         1/20/2022   6:41 PM         68 11.txt

使用 cls 命令

再次输入 dir 命令并接收先前命令的输出

PS C:\Users\sadam\Desktop>cls
PS C:\Users\sadam\Desktop>

PS C:\Users\sadam\Desktop> pwd

Path
----
C:\Users\sadam\Desktop

PS C:\Users\sadam\Desktop> whoami
root\sadam

PS C:\Users\sadam\Desktop> dir


    Directory: C:\Users\sadam\Desktop


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----         1/24/2022   8:53 PM            7.txt
d----        10/22/2021   9:46 PM            8
d----        11/16/2021   7:16 PM            del
...
...


PS C:\Users\sadam\Desktop> dir


    Directory: C:\Users\sadam\Desktop


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----         1/24/2022   8:53 PM            7.txt
d----        10/22/2021   9:46 PM            8
d----        11/16/2021   7:16 PM            del

答案1

此问题已在错误报告中描述
重新打开:vscode 终端不尊重 Windows 中的 cls 命令 #45137

这份错误报告的标题是“重新打开”,因为微软每次报告该错误时都会将其关闭。显然,微软没有修复该错误的意图。

该错误似乎是cls命令清除了屏幕,但没有清除终端的回滚缓冲区,过去的事件仍然存在并在完成任何滚动时被调用。

解决方案是使用 Ctrl+ K。这将清除 Visual Studio Code 控制台,而不是屏幕。

由于某些版本的 VSCode(1.29 及以上版本)缺少此快捷方式,因此需要按如下方式创建:

  • 导航至菜单文件 > 首选项 > 键盘快捷键
  • 寻找workbench.action.terminal.clear
  • 要更改其映射,请双击,然后在出现提示时按住 Ctrl并按下K。按Enter保存。
  • 右击该条目并选择“更改 when 表达式”。输入terminalFocus后按Enter
  • 现在Ctrl+K已定义。

另一个解决方案是按 Ctrl+ Shift+P 并选择Terminal:clear

还有另一个 解决方案 是:

在 keybindings.json 中一起使用两个命令: Ctrl+K然后Ctrl+L

 {
    "key": "ctrl+k",
    "command": "workbench.action.terminal.sendSequence",
    "args": { "text": "cls \u000D" },
    "when": "terminalFocus" 
},

{
    "key": "ctrl+l",
    "command": "workbench.action.terminal.clear",
    "when": "terminalFocus" 
}

相关内容