【问题标题】:Duplicate line in Visual Studio CodeVisual Studio Code 中的重复行
【发布时间】:2016-12-08 04:45:48
【问题描述】:

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

【问题讨论】:

  • Ctrl+D 用于行重复并不那么明显:例如,它在 Notepad++ 中工作,但它删除 Eclipse 中的当前行:)
  • 查看Contextual Duplicate 扩展
  • 默认情况下,CTRL + D 只需选择与其他 IDE 相比选择的下一个匹配项。
  • @kol 之前使用过 Visual Studio,并且 VSCode 是 MS 产品,我认为 VSCode 继承了很多东西。 CTRL+D 在 Visual Studio 2019 中运行良好。

标签: visual-studio-code


【解决方案1】:

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

在您的键盘快捷键中搜索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+向下箭头。
  • @DAXaholic 答案是正确的,如果您需要简单的解决方案,只需将光标保持在要复制的行上,然后按 ctrl+c 和 ctrl+v。它工作正常
  • 在 Ubuntu 16.04 上,默认情况下,Ctrl + Shift + Up Arrow / Down Arrow 快捷方式映射到将窗口移动到不同的工作区。您可以在Ubuntu -->System Settings --> Keyboard --> Shortcuts --> Navigation 中更改此设置,然后按Backspace 删除不需要的快捷方式。
  • 我的绑定到 Ctrl+Shift+Alt+DownArrow,但是当我点击这些按钮时它实际上并没有做任何事情。
  • 在 Ubuntu 20.04 上是 Ctrl + Alt + Shift + Numpad 2 / Numpad 8
【解决方案2】:

可以通过CTRL+CCTRL+V实现复制未选择任何内容。

【讨论】:

  • 我没有投反对票,但我想这对于 OP 来说是不可接受的,因为这会将行复制到剪贴板,这是想要一个“重复行”命令的一个很好的理由复制/粘贴命令。
  • 如果editor.emptySelectionClipboard 选项设置为false(我的首选配置),这将不起作用。
  • 这把我剪贴板里的东西吹走了
  • 我在这个方法中注意到的一个有趣的事情是,按下'C'后不需要释放Ctrl键(释放V后才释放)
  • 这破坏了即时行复制的整个目的。
【解决方案3】:

您可以根据您的操作系统使用以下内容:

Windows:

Shift+ Alt + Shift+ Alt +

苹果机:

Shift + Option + Shift +Option +

Linux:

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

注意:对于某些 linux 发行版,使用数字键盘箭头

【讨论】:

  • 注意小键盘箭头真的很有帮助!
【解决方案4】:

Ubuntu:

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

【讨论】:

  • 对我来说工作得很好。谢谢你的回答。
  • 这实际上是一个很好的解决方案(适用于 Ubuntu 20 和 19),不需要对默认设置进行任何更改。可能看起来不是很直观,但 8 和 2 是数字键盘中的实际上下
【解决方案5】:

苹果机:

重复行向下:shift + option +

重复排队:shift + option +

【讨论】:

    【解决方案6】:

    在键盘快捷键中搜索 copyLinesDownActioncopyLinesUpAction

    通常是SHIFT+ALT+

    【讨论】:

      【解决方案7】:

      使用以下命令:Shift + Alt+()

      【讨论】:

        【解决方案8】:

        v1.40 中有一个新命令:editor.action.duplicateSelection unbound to any keybinding。

        重复选择

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

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

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

        【讨论】:

          【解决方案9】:

          您可以根据您的操作系统使用以下内容:

          Windows:

          Shift + Alt + ↓ Shift+ Alt + ↑

          苹果机:

          Shift + Option + ↓ Shift +Option + ↑

          【讨论】:

            【解决方案10】:

            可以创建仅在 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 复制一行

            【讨论】:

              【解决方案11】:

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

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

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

              【讨论】:

              • 错了。你不需要select ST 中的一行来复制它。
              • 快捷方式是移动选中的“行”
              【解决方案12】:

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

              【讨论】:

                【解决方案13】:

                如果 Ubuntu 用户仍想使用 而不是另一组键,更新可能会对他们有所帮助。

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

                Original Keybindings

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

                Copy Line Up

                Ctrl + Shift +

                Copy Line Down

                Ctrl + Shift +

                New Keybindings

                【讨论】:

                  【解决方案14】:

                  Windows:

                  重复行向下:Ctrl + Shift + D

                  【讨论】:

                  • 对我来说,这会触发内置调试器。
                  • 你的回答是正确的,非常感谢,我在我的ubuntu中使用它。
                  猜你喜欢
                  • 2016-10-25
                  • 2021-05-19
                  • 1970-01-01
                  • 2021-09-11
                  • 2020-11-28
                  • 2021-11-19
                  • 1970-01-01
                  • 1970-01-01
                  • 2017-07-28
                  相关资源
                  最近更新 更多