Visual Studio代码中的重复行


146

我试图找到在Visual Studio Code中复制行的快捷方式(我正在使用1.3.1),我尝试了明显的CTRL+,D但似乎不起作用。



用于行复制的Ctrl + D并不是很明显:例如,它在Notepad ++中有效,但是它在Eclipse中删除了当前行:)
kol

参见上下文重复扩展
CharlesB

默认情况下,CTRL + D只需选择与其他IDE一起选择的下一个匹配项即可。
阿米尔·肯恩

Answers:


252

单击文件 > 首选项 > 键盘快捷键

在此处输入图片说明

搜索copyLinesDownActioncopyLinesUpAction在键盘快捷方式中

通常是SHIFT+ ALT+


Ubuntu更新:

看来,Ubuntu隐藏了VSCode看不到的快捷方式(即它可能是自己使用的)。在GitHub上存在一个问题。

为了在Ubuntu中工作,您必须定义自己的快捷方式,例如,使用ctrl+ shift+ alt+ jCTRL+ SHIFT+ ALT+ 复制该行,k您可以使用keybindings.json如下所示的代码:

[
    { "key": "ctrl+shift+alt+j", "command": "editor.action.copyLinesDownAction",
                                    "when": "editorTextFocus && !editorReadonly" },
    { "key": "ctrl+shift+alt+k", "command": "editor.action.copyLinesUpAction",
                                    "when": "editorTextFocus && !editorReadonly" }
]

在Mac上:代码>首选项>键盘快捷键。Shift + Option +向下键。
jarmod

2
@DAXaholic答案是正确的,如果您甚至需要简单的解决方案,只需将光标放在要复制的行上,然后按ctrl + c和ctrl + v。它工作正常
Gopi P

1
在Ubuntu 16.04上,默认情况下,Ctrl+ Shift+ Up Arrow/ Down Arrow快捷方式映射为将窗口移动到不同的工作区。您可以更改它,Ubuntu -->System Settings --> Keyboard --> Shortcuts --> Navigation然后按Backspace删除不需要的快捷方式。
mowen

1
我的绑定到Ctrl + Shift + Alt + DownArrow,但是当我单击这些按钮时,它实际上没有任何作用。
亚伦弗兰克

104

可以通过CTRL+ CCTRL+ V在行中没有任何选择的情况下使用光标来实现重复。


35
我没有投票,但是我想这对于OP是不可接受的,因为这会将行复制到剪贴板,这是一个很好的理由,它希望使用“重复行”命令而不是复制/粘贴命令。
马特·戴尔

1
如果editor.emptySelectionClipboard选项设置为false(我的首选配置),则此方法不起作用。
Bill_Stewart

7
这使我剪贴板中的内容
一气呵成

1
我在此方法中注意到的一件有趣的事情是,在按'C'后无需释放Ctrl键(仅在释放V之后才释放)
Arun

这破坏了即时行复制的全部目的。
Arman Karimi

52

您可以根据操作系统使用以下选项:

视窗:

Shift+ Alt+ Shift+ Alt+

苹果电脑:

Shift+ Option+ Shift+ Option+

Linux:

Ctrl+ Shift+ Alt+ Ctrl+ Shift+ Alt+

注意:对于某些Linux发行版,请使用Numpad箭头


9

搜索copyLinesDownActioncopyLinesUpAction在键盘快捷方式中

通常是SHIFT+ ALT+


7

Ubuntu的:

  • 重复排队:Ctrl+ Alt+ Shift+8
  • 重复下线:Ctrl+ Alt+ Shift+2

1
对我来说工作正常。感谢你的回答。
singhkumarhemant

1
这实际上是一个很好的解决方案(适用于Ubuntu 20和19),不需要对默认设置进行任何更改。可能看起来不是很直观,但是NumPad中的8和2实际上是向上和向下
user273711,



2

v1.40中有一个新命令:不editor.action.duplicateSelection绑定任何键绑定。

重复选择

我们添加了一个名为“重复选择”的新操作。执行后,当前选择将被复制并选择结果。当没有选择时,当前行将被复制,而无需写入系统剪贴板。

来自https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_40.md

有些人可能会发现它在某些情况下很有用。


0

另外2个非常有用的快捷方式是上下移动选定的行,就像崇高的文字一样...

{
  "key" : "ctrl+shift+down", "command" : "editor.action.moveLinesDownAction",
  "when" : "editorTextFocus && !editorReadonly"
},

{
  "key" : "ctrl+shift+up", "command" : "editor.action.moveLinesUpAction",
  "when" : "editorTextFocus && !editorReadonly"
}

错误。您无需select在ST中插入一行即可复制它。
绿色

快捷方式是移动选定的“行”
Nishant Baranwal

0

VC代码版本:1.22.2转到:代码->首选项->键盘快捷键(cmd + K; cms + S); 更改(编辑):“将选择添加到下一个查找匹配项”:“ cmd +您想要的内容” //对我来说,这是“ cmd + D”,我购买了cmd + F;转到“ Copy Line Down”:“ cmd + D” //编辑此示例并设置cmd + D例如,对我来说,这就是全部-我使用mac;



0

可以创建仅在Vim for VSCode处于打开状态且处于特定模式(即“正常”,“插入”或“可视”)时才有效的键绑定。

为此,请使用Ctrl+ Shift+ P打开VSCode的命令面板,然后搜索“首选项:打开键盘快捷键(JSON)”-选择此选项将打开keybindings.json。在这里,可以添加自定义绑定。

例如,这是经典的VSCode命令,用于移动/复制经过调整的行,以方便在Vim中使用。

    [
      {
        "key": "alt+j",
        "command": "editor.action.moveLinesDownAction",
        "when": "editorTextFocus && vim.active && vim.mode == 'Normal'"
      },
      {
        "key": "alt+shift+j",
        "command": "editor.action.copyLinesDownAction",
        "when": "editorTextFocus && vim.active && vim.mode == 'Normal'"
      },
      {
        "key": "alt+k",
        "command": "editor.action.moveLinesUpAction",
        "when": "editorTextFocus && vim.active && vim.mode == 'Normal'"
      },
      {
        "key": "alt+shift+k",
        "command": "editor.action.copyLinesUpAction",
        "when": "editorTextFocus && vim.active && vim.mode == 'Normal'"
      },
    ]

现在我们可以在VSCode中使用这些对Vim友好的命令了!

  • Alt+ J向下移动一行
  • Alt+ K向上移动一行
  • Shift+ Alt+ J复制下一行
  • Shift + Alt+ K复制一行

0

如果Ubuntu用户仍想使用而不是另一组密钥,则可能会有所帮助。

我刚刚在Ubuntu 18.04 LTS上安装了VSCode的新版本,并且有重复的命令用于Add Cursor AboveAdd Cursor Below

原始键绑定

我刚刚删除了使用的绑定,Ctrl并添加了以下内容

Copy Line Up

Ctrl+ Shift+

Copy Line Down

Ctrl+ Shift+

新的键绑定


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.