WT:如何在Windows Terminal中粘贴多行文本而不执行

13
在原始的PowerShell控制台中,可以在执行命令之前粘贴和编辑多行命令。例如,下面是一个多行脚本:
Write-Host "===== 1 ====="
Write-Host "===== 2 ====="
Write-Host "===== 3 ====="
Write-Host "===== 4 ====="

运行结果如下所示

显示powershell 7控制台带有多行粘贴

不幸的是,在Windows Terminal中黏贴相同脚本会导致非常不同的输出

输入图像描述

有什么方法可以“修复”Windows Terminal中的多行黏贴问题吗?


https://github.com/microsoft/terminal/issues/7482 - dashesy
1
@dashesy,你的GitHub问题是关于警告的。我的问题是关于警告之后发生了什么以及如何处理这些行的。 - honzajscz
4个回答

10
我的解决方法是在终端 setting.json 中屏蔽掉一行代码:{ "command": "paste", "keys": "ctrl+v" }

enter image description here

然后就可以正常工作了,下面是期望的输出结果:

working output

编辑:

如果在settings.json中取消注释Ctrl + V快捷键,则粘贴功能将通过PSReadLine模块实现(请参见Get-PSReadLineKeyHandler-Chord ctrl+v),但是这将使其他Shell中的Ctrl + V停止工作,请改用Shift+Ctr+V


很棒的解决方案 - 感觉有点违反直觉,将设置中的ctl+v行注释掉意味着ctl+v现在可以使用...但它确实可以使用,所以我很高兴!当你提到“settings.json中的Ctrl+V和弦”时,你是指什么? - whytheq
1
它意味着红色框中的文本。 - honzajscz

0

同时,使用右键粘贴可以立即运行每一行。 同时,使用Ctrl + V可以更轻松地粘贴Unicode字符(至少在cmd / powershell控制台中)。 请注意,Ctrl + V会被psreadline的Emacs编辑模式选项重新映射。


-4

我知道这不是理想的,但你可以将换行符转换为分号

Write-Host "===== 1 =====";Write-Host "===== 2 =====";Write-Host "===== 3 =====";Write-Host "===== 4 ====="

在线转换工具这里


-7

只需勾选突出显示的设置复选框即可

enter image description here


1
问题是关于“Windows 终端”应用程序,而不是控制台可执行文件。 - mmseng

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接