VS Code 集成终端在粘贴时弄乱了剪贴板 python 代码

Posted

技术标签:

【中文标题】VS Code 集成终端在粘贴时弄乱了剪贴板 python 代码【英文标题】:VS Code integrated terminal is messing up the clipboard python code when pasting 【发布时间】:2021-10-27 19:15:47 【问题描述】:

在 VS Code (1.59.1) 的全新安装中,粘贴在集成终端中的代码与编辑器中可用的缩进不同。我尝试更改参数"editor.formatOnPaste": true 并没有改善。当我复制相同的内容并将其粘贴到 powershell 或命令提示符中时,不存在此问题。关于如何解决这个问题的任何想法?

【问题讨论】:

我尝试了很多,但我无法重现您的问题。您可以尝试创建一些其他 python 文件并添加一些其他代码然后将其复制到 IPython 吗? 【参考方案1】:

考虑到没有人可以重现该问题,我怀疑您的空格/制表符(或其他)字符可能与文件本身不一致。

要检查是否是这种情况,请尝试在 VS Code 中创建一个新的 python 文件并重写其中的原始代码(不要复制粘贴)。如果它有效,这只是文件中某些字符的问题:this answer 可能有助于无法重写的较大文件。

如果这不起作用,现在尝试在不同的文本编辑器中创建另一个 新的 python 文件并重写其中的原始代码(同样,不要复制粘贴)。通过 CMD 或 powershell 运行它。如果这不起作用,则不是 VS Code 的错(可能是您的 python/ipython 配置/安装有问题)。

如果它仍然不起作用,您可能想尝试通过 VS Code 运行最新文件(在另一个文本编辑器中创建),或者通过 CMD/powershell 运行您拥有的原始文件(不是复制粘贴),并从那里进行诊断。

【讨论】:

【参考方案2】:

我自己无法重现您的问题,但这里有一些我认为它们可能有效的解决方案。

我相信这个问题的根源可能与使用您正在使用的 vscode 版本时 Ipython 的自动缩进有关。您可以使用 Ipython 的内置魔法命令%autoindent 来关闭自动缩进。

只需运行魔法命令:%autoindent,您将在提示符中看到消息:

Automatic indentation is: OFF(如果需要,您可以再次运行它以重新打开它)

之后你应该可以复制和粘贴你的代码(保留原来的缩进)并且 Ipython 不会添加新的缩进。

另一个解决方案是使用 ma​​gic 命令%paste 此命令从剪贴板粘贴并执行代码(here 您可以找到有关此命令的更多信息)。

如果您想在执行前编辑提示中的代码,请记住您可以使用:%cpaste

【讨论】:

【参考方案3】:

我认为你必须导入并初始化 ipython 或者你给了一个额外的空间。

【讨论】:

我试图重新创建它,但它没有发生。 请添加更多详细信息以扩展您的答案,例如工作代码或文档引用。【参考方案4】:

我只是尝试在 Linux(bash、tmux、zsh 等)和 Windows(PowerShell、命令提示符等)上重现您的问题,但没有取得多大成功。

我敢打赌,这是您在 PS 中运行的“ipython”的问题。

您是否尝试过安装不同的 Python 版本来查看是否存在问题?

【讨论】:

以上是关于VS Code 集成终端在粘贴时弄乱了剪贴板 python 代码的主要内容,如果未能解决你的问题,请参考以下文章

ckeditor在保存时弄乱了代码

RecyclerView在滚动时弄乱了数据

UIImagePickerController 关闭时弄乱标签栏框架

.NET 3.5 的代码合同弄乱了 VS10 的调试器

VS Code 中的多行列复制粘贴

VS Code 集成终端的颜色主题