Visual Studio Code 中的重复行

Posted

技术标签:

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

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

【问题讨论】:

How do I duplicate a line or selection within Visual Studio Code?的可能重复 Ctrl+D 用于行重复并不那么明显:例如,它在 Notepad++ 中工作,但它删除 Eclipse 中的当前行:) 查看Contextual Duplicate 扩展 默认情况下,CTRL + D 只需选择与其他 IDE 相比选择的下一个匹配项。 @kol 之前使用过 Visual Studio,并且 VSCode 是 MS 产品,我认为 VSCode 继承了很多东西。 CTRL+D 在 Visual Studio 2019 中运行良好。 【参考方案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中使用它。

以上是关于Visual Studio Code 中的重复行的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio CODE中的折叠和展开代码[重复]

如何在 Visual Studio Code 中格式化 PHP 文件中的 HTML [重复]

使用 Emmet 在 Visual Studio Code 中包装 HTML 元素 [重复]

如何将终端更改为 Visual Studio 代码中的当前目录? (热键)[重复]

Visual Studio Code - “错误:spawn jdb ENOENT”试图调试java应用程序[重复]

visual studio code主要用来写啥语言