在Visual Studio Code中使用正确的缩进复制粘贴的设置


96

当我使用Visual Studio Code复制并粘贴一段代码时,按Enter创建新行后,将发生以下情况:

在此处输入图片说明

似乎保留了新行创建的缩进,将复制的代码段中的先前信息添加到其顶部。我希望代码在粘贴时自动美化。

可以通过设置更改此行为吗?

编辑:我不是指跨平台复制粘贴,而是指在Visual Studio Code中的同一文件内复制和粘贴。


a)不要复制源中第一行的空格,或b)粘贴时请确保光标位于行的开头。基本上,VSC只是“按原样”将其粘贴到那里。
newBee

因此,没有办法通过设置更改它吗?
Tiago

突出显示文本并与之一起移动ALT + Arrowkey将保留缩进。对于那些寻找替代设置的人。
丹尼尔·汤普森

Answers:


102

这已经集成在vscode中,并且具有"editor.formatOnPaste": true设置属性。


12
不幸的是,这也会格式化任何粘贴的代码,而这并非总是您想要的。
philraj

2
不,不一样。存在一个长期存在的问题github.com/Microsoft/vscode/issues/6392,该问题已关闭,但实际上并未解决,请参见注释。我们要做的只是保持/匹配目标行/目标行的缩进级别,而不是复制文本时从其复制"editor.formatOnPaste": true格式的初始级别,例如在使用PEP8进行python编程时。
ololobus

好吧,它可以按我的意愿工作。我希望它粘贴到粘贴时光标复制到的任何部分
Dave Pile

2
除VSCode之外,每个文本编辑器都允许用户单击三次并突出显示任何文本。CTRL C复制,然后CTRL V,CTRL V复制复制的文本。除了VS Code中的三键外,单击CTRL C CTRL V可以调整文本,然后第二个CTRL V会使文本更糟。CTRL C CTRL V是最常见的键盘快捷键,即使我的妈妈也知道这一点。
NZ Dev

3
尽管我同意您的其余发言,但对此没有观点。COPY和PASTE应该没有意见,是COPY和PASTE只能以一种方式工作。
NZ Dev

41

该插件可以帮助您:

粘贴缩进扩展

您只需要更改快捷方式即可使用。请记住,如果您使用的是Mac 'cmd''ctrl'则可能要使用而不是。像这样:

{
    "key": "ctrl+v",
    "command": "pasteAndIndent.action",
    "when": "editorTextFocus && !editorReadonly"
},
{
    "key": "ctrl+v",
    "command": "editor.action.clipboardPasteAction",
    "when": "!editorTextFocus"
},
{
    "key": "ctrl+shift+v",
    "command": "editor.action.clipboardPasteAction",
    "when": "editorTextFocus && !editorReadonly"
}

9
使用它来重新创建Sublime Text 3行为,即。cmd + shift + v粘贴缩进: { "key": "cmd+shift+v", "command": "pasteAndIndent.action", "when": "editorTextFocus && !editorReadonly" }

此解决方案仍然有效。每次复制/粘贴时,都无需再添加其他讨厌的制表符或代码了。
发光的

6
找到它,进入“键盘快捷键”,然后单击屏幕右上方的“打开键盘快捷键JSON”图标,我想很难找到它!
马特·弗莱彻

这个扩展有一个很大的缺点:粘贴时会格式化整个文件代码,而不仅仅是被粘贴的部分!我必须卸载。
sdlins

要找到keybindings.json需要添加JSON代码段的位置,请执行以下操作:在“命令面板”中搜索“首选项:打开键盘快捷键(JSON)
Cornelius Roemer,

14

Ctrl+V后跟Ctrl+Z似乎可以立即使用。


2
这出奇地起作用。有点讨厌这样做,但总比没有好
Nate Beers

您尝试过Cmd + V和Cmd + Z吗?
菲利普

留下它,使Microsoft产品无法处理复制和粘贴的功能... OMG,我很高兴我使用Linux笔记本电脑...感谢此替代方法的工作
Scott Stensland

-3

一个简单的解决方法是尝试Ctrl+ Shift+V复制代码之后。它将正确粘贴所有带有缩进的代码。


这是行不通的,完全一样。您可以尝试以下操作:突出显示段落-CTRL C,CTRL + SHFT + V,CTRL + SHFT + V。它变得丑陋!!!
NZ Dev

“尝试”听起来很奇怪。这到底是做什么的?如果用户更改了快捷方式怎么办?
Nico Haase
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.