如何在Visual Studio Code中复制行或选择?

使用Microsoft的Visual Studio Code,如何复制一行代码,然后上下移动它?(类似于Sublime的cmd+转变+d行为)

这是我经常使用的功能,并且在没有它的情况下使用Visual Studio Code时遇到了困难。

676327 次浏览

您要查找的命令是editor.action.copyLinesDownActioneditor.action.copyLinesUpAction

您可以通过选择查看关联的键绑定:文件>首选项>键盘快捷键

windows:

Shift+Alt+下来Shift+Alt+向上

Mac:

Shift+选项+下来Shift+选项向上

Linux:

Ctrl+Shift+Alt+下来Ctrl+Shift+Alt+向上

(可能需要使用numpad下来向上进行Linux)

此外,命令editor.action.moveLinesUpActioneditor.action.moveLinesDownAction是移动行的命令,它们在Windows和Mac上绑定到Alt+下来Alt+向上,在Linux上绑定到Ctrl+下来Ctrl+向上

您可以找到键盘快捷键从

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

默认键盘快捷键是,

复制线条向下动作转变+alt+

复制线条行动转变+alt+向上

向上移动线条动作alt+向上

向下移动线条动作alt+

或者您可以覆盖键盘快捷键从

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

编辑keybindings.json

示例:

[{"key": "ctrl+d","command": "editor.action.copyLinesDownAction","when": "editorTextFocus"},{"key": "ctrl+shift+up","command": "editor.action.moveLinesUpAction","when": "editorTextFocus"},{"key": "ctrl+shift+down","command": "editor.action.moveLinesDownAction","when": "editorTextFocus"}]

尝试ALT+SHIFT+UP/

它映射在+

在VScode中,他们称之为Copy Line UpCopy Line Down

从菜单中,转到:

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

为此检查已分配的键盘快捷键,或调整您的快捷键。

有时默认分配的快捷方式可能无法工作,主要是因为操作系统。

在我的Ubuntu中,我将其调整为:Ctrl+Shift+D

在此处输入图片描述

请注意,对于Ubuntu用户(<=17.4),Unity使用CTRL+ALT+SHIFT+箭头键在虚拟工作区之间移动程序,这与VS Code快捷方式冲突。您需要重新绑定editor.action.copyLinesDownActioneditor.action.copyLinesUpAction以避免冲突(或更改您的工作区键绑定)。

对于使用GNOME的Ubuntu 17.10+,似乎GNOME不会以相同的方式使用此键绑定根据其留档,但如果有人在17.10上使用vanilla工作区可以确认这一点,这可能对未来的答案寻求者有所帮助。

VSCodeCtrl+CCtrl+V中,重复下面的整行。

我更喜欢这个公认的答案,因为它只需要一只手就可以做到这一点,感觉更自然。

接受的答案可能对大多数人来说都是这样,但是下来位于键盘的另一边。所以你有两个选择,用两只手(左手:L Shift+lalt+右手:上/下),或者单手使用右手rShift+ralt+上/下。第二个选项在我看来感觉很奇怪。我宁愿使用我的手自然坐在键盘上的选项,如果是一只手,那就更好了。

它错过了这个问题的答案,“如何重复选择代码”类似于Sublime的cmd/ctrl+转变+d或JetBrain的cmd/ctrl+d行为。

从VS Code Marketplace安装插件重复选择或行

重复选择或行VS代码插件

此扩展提供ctrl+d(Windows/Linux)和cmd+d(MacOS)的绑定。要自定义键盘快捷键

{"mac": "cmd+d","key": "ctrl+d","command": "geeebe.duplicateText","when": "editorTextFocus"}

备注:快捷方式也会重复行,因此如果您安装它,请删除之前在copyLinesDownAction上的ctrl+d快捷方式(如果您之前做过),否则重复选择可能会bug。

在我的最后一个版本Visual Studio Code 1.30.2中它会自动变成


ctrl+D

适用于Fedora 29工作站(Gnome 3.30.2)和Ubuntu用户。

取消绑定不必要的左/右工作区键盘组合,按终端列出它们

$ gsettings list-recursively | grep -E "org.gnome.desktop.wm.keybindings move-to-workspace-|org.gnome.desktop.wm.keybindings switch-to-workspace-"

解开他们

$ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-left "[]"$ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-right "[]"$ gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-left "[]"$ gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-right "[]"

重置重复快捷键

  • Super+Pgdown/PgUp,Ctrl+Alt+DownArrow/UpArrow
  • Super+Shift+PgDown/PgUp,Ctrl+Alt+Shift+向下箭头/向上箭头

他们可以很容易地重置工作,只有一个快捷方式在设置>设备>键盘
仅再次键入Super+PgUp以“移动到上面的工作区”为例。

在此处输入图片描述

现在在fedora29中减少了重复的快捷方式,所有linux的vscode快捷方式都必须正常工作

对于windows

复制-转变+alt+向上

向下复制-转变+alt+

对于mac

复制-转变+选项+向上

向下复制-转变+选项+

对于linux

复制-ctrl+转变+alt+8

向下复制-ctrl+转变+alt+2

说明:您可以更改Visual Studio代码的键盘快捷键键绑定按ctrl+Shift+p,然后按托盘中的键入打开键盘快捷键,然后按回车键所以新文件将被打开(键盘快捷键文件)您可以看到他们的所有快捷方式,并可以通过单击两次相应的键绑定来更改键绑定,然后通过输入自己的键绑定,最后按回车键。

希望这能帮助到别人!

  • 对于迁移到VSCodeJetBrain IDE用户

  • 安装(任何人):

  1. JetBrains IDE Keymap:扩展
  2. vscode-intellij-ide-keybindings扩展(Preferred)
  • 使用这个Intellij Darcula Theme扩展

  • keymap覆盖了VS Code的大部分键盘快捷键,并使VS Code更加“JetBrains IDE喜欢”。

  • 上述扩展将键绑定从JetBrains导入VS Code。安装扩展并重新启动VS Code后,您可以像IntelliJ IDEA,网络风暴, PyCharm等一样使用VS Code。

对于Linux用户:我注意到Linux你经常需要使用赢得键。对于Windows组合是:
ctrl+转变+alt+向上

如果Linux相同,只需添加赢得键:
ctrl+转变+赢得+alt+向上

我注意到现在在一些组合中。说ctrl+alt+L锁定Linux,但是ctrl+赢得+alt+L用于Intellij格式化代码。在Windows下只有ctrl+alt+L来格式化代码。

只需转到文件->首选项->键盘快捷键在那里您可以更改任何您喜欢的快捷方式。搜索重复并将其更改为您在其他编辑器中始终使用的任何内容。我更改为Ctrl+D

问题

Ubuntu上原来的“重复行向下”快捷方式似乎存在问题,主要是由于与操作系统上已经存在的与工作区相关的快捷方式发生冲突。

解决方法

然而,一个简单的解决方法是简单地CTRL+C(复制整行)和CTRL+V(将复制的行粘贴到新的行上)……有效地,给你相同的最终结果。

对于那些从WebStorm/PhpStorm迁移的人,

您可以安装IntelliJ IDEA键绑定来继续使用几乎所有的键盘快捷键,就像您在WebStorm/PhpStorm中所做的那样。

所以,

  • 重复行=>CTRL+D
  • 移动一行/选择的代码向上/向下=>Ctrl+Shift+UP/

此外,这里有一个推荐的VS Code扩展列表,它将使您从WebStorm/PhpStorm的过渡更加容易。

如果没有选择任何内容,此键映射将复制当前行复制选中的单词

  1. 访问:

    文件/首选项/键盘快捷键

  2. 在右上角,单击打开键盘快捷键(JSON)

  3. 插入这个键图:

     {"key": "shift+alt+d","command": "editor.action.duplicateSelection"}
  4. 使用alt+向上/向下箭头移动行(VS Code的默认行为)。

重复行:alt+转变+/

上移/下移:alt+/

Ctrl+c+v按这些键在一起,而不是分开的窗口

cmd+Shift+d现在在vs代码中使用相同的结果。

在MacOS中,我通常使用:

  • 复制shift+option+上方的行
  • 复制波纹线shift+option+