ChatGPT解决这个技术问题 Extra ChatGPT

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

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

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

这回答了你的问题了吗? Duplicate line in Visual Studio Code
我还在这里发布了一个可能有帮助的答案: stackoverflow.com/a/67620196/9868445 。它向您展示了如何复制选择,但它还做了更多工作:转到下一行,并以活动文件的语言生成该选择的打印语句。

j
jonasfh

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

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

视窗:

Shift+Alt+向下和 Shift+Alt+向上

苹果电脑:

Shift+Option+Down 和 Shift+OptionUp

Linux:

Ctrl+Shift+Alt+向下和 Ctrl+Shift+Alt+向上

(对于 Linux,可能需要使用 numpad Down 和 Up)

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


Alt+UpAlt+Down 似乎上下移动了现有的行。好的
工具 |选项 |环境 | VS2015中的键盘
你知道如何“重复选择”吗?我找不到合适的命令:(
那是不一样的。在这种情况下,当您选择一行结尾 + 完整的下一行时,它将复制 2 行(整个第一行,而不仅仅是 \r\n)。这很烦人:(
在 Linux 上 ctrl+shift+alt+down/up 仅适用于数字键盘箭头键。
S
Sahan Serasinghe

您可以从以下位置找到键盘快捷键

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

默认键盘快捷键是,

向下复制行操作:shift+alt+down

复制行向上操作:shift+alt+up

向上移动线动作:alt+up

下移行动作:alt+down

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

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

并编辑 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"
    }
]

此外,如果您必须将一行移远,ctrl+C 和 ctrl+X 将轻松复制/剪切当前行,而无需选择它。 ctrl + L(命令 expandLineSelection)将选择一行。重复 ctrl + L 选择其他行,使块选择变得容易。或者您可以使用鼠标进行粗略的块选择,然后按 ctrl+L 以包括末端。
可悲的是,默认 PDF 中根本没有关于 Alt+Shift+up/down 的快捷键列表...不太正确,它提到了带有“在上方/下方插入光标”操作的“多光标和选择”部分!
我只是添加自己的 ctrl+D 并删除冲突的其他快捷方式。
A
Antoine Floury

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

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

https://i.stack.imgur.com/7wP0f.png

此扩展为 ctrl+d (Windows/Linux) 和 cmd+d (MacOS) 提供绑定。要自定义键盘快捷键首选项 -> 键盘快捷键:

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

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


我对“向下复制行”快捷方式感到沮丧,该快捷方式的行为与 Sublime Text/Intellij Ctrl+D 功能不完全相同(它复制了整行,而不仅仅是选择)。感谢您指出这个插件!
我正要放弃 vscode 并安装 atom,但这个扩展阻止了我。 vscode 的默认重复功能不达标。 atom 在这方面要好得多。
N
Nahid

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

从菜单中转到:

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

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

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

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

https://i.stack.imgur.com/b7akn.png


N
Nick De Beer

在 VSCode 中 Ctrl+CCtrl+V 复制下面的整行。

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

对于大多数人来说,公认的答案可能会这样做,但是 Down 位于键盘的另一侧。因此,您有两个选择,使用双手(左手:L Shift+L Alt+右手:上/下),或单手使用右 R Shift+R Alt+上/下。在我看来,第二个选项感觉很奇怪。我宁愿使用我的手自然放在键盘上的选项,如果是一只手,那就更好了。


主要问题是您丢失了剪贴板上的内容
S
Sahan Serasinghe

尝试 ALT+SHIFT+UP/DOWN

它对我有用!


S
Sumit Shukla

对于迁移到 VSCode 的 Jetbrains IDE 用户。

安装(任何人):

JetBrains IDE Keymap:扩展 vscode-intellij-idea-keybindings 扩展(首选)

使用这个 Intellij Darcula 主题:扩展

键盘映射覆盖了 VS Code 的大部分键盘快捷键,使 VS Code 更像 'JetBrains IDE'。

以上扩展将键绑定从 JetBrains 导入到 VS Code。安装扩展并重新启动 VS Code 后,您可以像 IntelliJ IDEA、Webstorm、PyCharm 等一样使用 VS Code。


只需要 JetBrains IDE Keymap 扩展。这为您提供了熟悉的 ctrl-D 快捷方式。
帮我很多。谢谢哥们。
S
Sabunkar Tejas Sahailesh

对于 Windows:

向上复制 - shift+alt+up

向下复制 - shift+alt+down

对于 mac:

向上复制 - shift+option+up

向下复制 - shift+option+down

对于 Linux:

向上复制 - ctrl+shift+alt+8

向下复制 - ctrl+shift+alt+2

注意:您可以通过按 ctrl+shift+p 更改 Visual Studio 代码的键盘快捷键键绑定,然后在托盘中键入 open 键盘快捷键,然后按 Enter,这样将打开新文件(键盘快捷键文件),您可以看到所有快捷键,可以通过在相应的键绑定上单击两次,然后输入您自己的键绑定,最后按 Enter 来更改键绑定。

希望这会对某人有所帮助!


这些建议均不适用于 VS Ccode 1.49.2Electron 9.2.1、Chrome 83.0.4103.122、Node.Js 12.14.1、Linux 5.11.0-36-generic)。我想知道 VS Code 有时是否可以成为移动目标。
M
Misha Akopov

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

对于使用 GNOME 的 Ubuntu 17.10+,根据其文档,似乎 GNOME does not use this keybinding in the same way,但如果有人在 17.10 上使用 vanilla 工作区可以确认这一点,它可能对未来的寻求答案的人有所帮助。


我在 Ubuntu 19.10 上,Ctrl+Alt+Down 仍在工作区之间移动。
J
Josh Correia

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


绝对是我现在的想法。我在 linux 上尝试了接受的答案,但它根本不起作用。编辑自己的快捷方式是一种很好的做法,也是一个更美好未来的新起点。 CTRL + D 是最直观、最简单的快捷命令。为什么......为什么...... CTRL + SHIFT + ALT + .. 请停止,我的电脑几乎关闭并在执行此操作后重置。
您需要在键盘快捷键列表中更改的命令称为:Duplicate Selection (editor.action.duplicateSelection)
n
nCardot

重复行:alt + shift + △/▽

上/下移动线:alt + △/▽


C
Community

如果您来自 Sublime Text 并且不想重新学习新的键绑定,则可以将此扩展用于 Visual Code Studio。

VS Code 的 Sublime Text 键盘映射 此扩展将最流行的 Sublime Text 键盘快捷键移植到 Visual Studio Code。安装扩展并重新启动 VS Code 后,您最喜欢的 Sublime Text 键盘快捷键现在可用。

https://marketplace.visualstudio.com/items?itemName=ms-vscode.sublime-keybindings


S
Seralto

如果未选择任何内容或复制所选单词,此键盘映射将复制当前行。

访问:文件/首选项/键盘快捷键 在右上角,单击打开键盘快捷键 (JSON)。插入此键盘映射: { "key": "shift+alt+d", "command": "editor.action.duplicateSelection" } 使用 alt+箭头向上/向下移动行(VS Code 的默认行为)。


感谢分享!来自崇高的文字,这是无价的!
C
CharlesB

Contextual Duplicate 扩展提出了直接行复制(没有剪贴板步骤)。

映射到 ctrl+KD


J
Josh Correia

问题

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

解决方法

但是,一个简单的解决方法是简单地 CTRL+C(复制整行)和 CTRL+V(将复制的行粘贴到新行上)...有效地为您提供相同的最终结果。


这应该是正确的答案,因为它在 vscode vanilla 中开箱即用
Y
Yatharth Tiwari

Ctrl + c + v 将这些键一起按下,Windows 不分开


N
Niket Pathak

对于从 WebStorm/PhpStorm 迁移的用户,

您可以安装 IntelliJ IDEA Keybindings 以继续使用几乎所有的键盘快捷键,就像在 Webstorm/Phpstorm 中一样。

所以,

重复行 => CTRL + D

向上/向下移动一行/选择代码 => Ctrl + Shift + UP/DOWN

此外,这里有一个 recommended VS Code extensions 列表,可以让您更轻松地从 WebStorm/Phpstorm 过渡。


c
christianbueno.1

对于 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

超级+Shift+PgDown/PgUp , Ctrl+Alt+Shift+DownArrow/UpArrow

它们可以很容易地重置为仅使用“设置”>“设备”>“仅键盘”中的一个快捷方式,再次键入 Super+PgUp 以“移至上面的工作区”作为示例。

https://i.stack.imgur.com/FQDm9.png

现在在 fedora29 中使用较少重复的快捷方式,所有 vscode shortcuts for linux 都必须正常工作


这在 Ubuntu 22.04 中对我有用,尽管我必须修改“向下移动到工作空间”和“向上移动到工作空间”才能使 VS 代码复制行向上/向下工作。令人讨厌的是,您似乎无法在 UI 中修改它们,但这个 CLI 似乎可以做到。非常感谢!
m
my-

对于 Linux 用户:我注意到在 Linux 上您经常需要使用 win 密钥。对于 Windows 组合是: ctrl + shift + alt + up

那么对于 Linux 也是一样的,只需添加 win 键: ctrl + shift + win + alt + up

我现在在几个组合中注意到了这一点。说 ctrl + alt + L 锁定 Linux,但 ctrl + win + alt + L 用于 Intellij 格式代码。在 Windows 下只是 ctrl + alt + L 来格式化代码。


我喜欢 ubuntu 用户的这个解决方案。我正在使用 ubuntu 20.04,但在使用其他方法时遇到了麻烦。
M
Misha Akopov

在我的上一个版本 Visual Studio Code 1.30.2 中,它将自动更改为

Ctrl + D


在 vscode 中,这会突出显示光标下的单词。也许 Notepad++ 使用了 ctrl+D 快捷键。只是从记忆中走出来。