在VS Code中实现多行列复制粘贴

53

在多行编辑中是否可以进行粘贴(光标|):

text1 = [|]
text2 = [|]
text3 = [|]
text4 = [|]

假设我已经粘贴了以下内容:

val1
val2
val3
val4

我希望获得这个结果:

text1 = [val1]
text2 = [val2]
text3 = [val3]
text4 = [val4]
实际发生的是剪贴板内容被粘贴了四次,每个光标都粘贴一次。 类似于此答案所提到的内容,但不是输入而是粘贴:https://dev59.com/Yl0a5IYBdhLWcg3wsKi2#30039968

4
如果您给出负面评价,请随时分享您的想法,谢谢! - lukas_o
6个回答

55

使用列编辑模式代替多行编辑模式:

  1. 点击源文本的末尾。
  2. Shift Alt,点击开头。
  3. 复制。
  4. 点击目标文本的末尾。
  5. Shift Alt,点击开头。
  6. 粘贴。

10
到目前为止,这就是我尝试过的。它会将剪贴板中的四行复制粘贴四次。或许值得一提的是,我正在使用 Mac,所以对我来说是[Shift][Option]键。 - lukas_o
2
我也使用Mac,并经常使用列模式编辑。讨厌这种事情发生。我的Mac的Option键上也有“alt”字样-对于任何混淆感到抱歉。只是为了明确,我使用了你的文本。我在“val4”后面单击,然后按住[Shift] [alt]并单击“val1”的开头并复制。然后单击最后一个|之后,再次按住[Shift] [alt],单击第一个|左侧并粘贴。 - belwood
1
完美地工作了,谢谢。正是原作者想要的。 - Cameron Forward
43
使用该方法时,请仔细检查您在目标中选择的行数是否与您复制的行数相同(每次在右下角注明“## 选择”),否则它将每行粘贴整个选择。 - TylerW
1
我试图从另一个应用程序中粘贴相同数量的行,但出现了重复粘贴的行为。使用这个答案作为提示,我首先将文本粘贴到VS中,然后按照答案操作,结果如预期。 - rockariotphobia
当我尝试将多行的结尾复制到同一行时,发现目标选择需要有空格。在每行末尾添加空格(以使每行以我的目标选择结束)允许粘贴按预期工作。如果我选择超出某些行的长度,则会出现“重复粘贴”行为。 - JS.

18

在我理解这个问题之前,我遇到了一些麻烦。第二个选择(你想要粘贴的位置)必须与第一个选择具有相同的长度,否则它会在每个位置上都粘贴所有项目(而不是每行一个项目)。


1
那是 Tyler 在评论中说的话。 - Mark
1
也可以是多个。例如,如果将2行复制并粘贴到4个选择中,则会按顺序重复这些行。 - sam

2

1- 通过使用 alt+shift+鼠标选择框 选择要复制的数据列,并使用 ctrl+c 复制它。

2- 使用 alt+鼠标单击 选择要粘贴到的位置(注意:如果要粘贴到不同的行中,这很有帮助)。

3- 使用 ctrl+v 将内容粘贴到所选位置。


1

我不得不为数百行进行此操作,映射数据库列。 为了提高速度,我最终采取的方法是创建一个具有3列的Excel表格:

COL1          COL2   COL3
text1 = [     val1   ]
text2 = [     val2   ]
text3 = [     val3   ]
text4 = [     val4   ]

然后搜索并替换制表符。


发生的情况是,在一段时间之后,可能是重新启动了VS Code之后,这个功能又开始正常工作了。 - lukas_o

1

0
按住 ALT + SHIFT 键同时不放 选择您想要的列字段

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