239
votes

I am trying to find the shortcut for duplicating a line in Visual Studio Code (I am using 1.3.1) I tried the obvious CTRL + D but that doesn't seem to work.

13
Ctrl+D for line duplication is not that obvious: it works in Notepad++ for example, but it deletes the current line in Eclipse :)kol
See the Contextual Duplicate extensionCharlesB
by default ,CTRL + D just select the next occurrence that was selected vs other IDEs .Amir Kian
@kol Having used Visual Studio previously, and VSCode being MS product I would assume that VSCode inherits a lot of things from it. CTRL+D works fine in Visual Studio 2019.Sahil Singh

13 Answers

410
votes

Click File > Preferences > Keyboard Shortcuts:

enter image description here

Search for copyLinesDownAction or copyLinesUpAction in your keyboard shortcuts

Usually it is SHIFT+ALT +


Update for Ubuntu:

It seems that Ubuntu is hiding that shortcut from being seen by VSCode (i.e. it uses it probably by its own). There is an issue about that on GitHub.

In order to work in Ubuntu you will have to define your own shortcut, e.g. to copy the line using ctrl+shift+alt+j and CTRL +SHIFT + ALT + k you could use a keybindings.json like this:

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

The duplicate can be achieved by CTRL+C and CTRL+V with cursor in the line without nothing selected.

86
votes

You can use the following depending on your OS:

Windows:

Shift+ Alt + or Shift+ Alt +

Mac:

Shift + Option + or Shift +Option +

Linux:

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

Note: For some linux distros use Numpad arrows

15
votes

Ubuntu :

  • Duplicate Line Up : Ctrl + Alt + Shift + 8
  • Duplicate Line Down : Ctrl + Alt + Shift + 2
12
votes

Search for copyLinesDownAction or copyLinesUpAction in your keyboard shortcuts

Usually, it is SHIFT+ALT+

8
votes

Mac:

Duplicate Line Down :shift + option +

Duplicate Line Up:shift + option +

6
votes

Use the following: Shift + Alt+( or )

6
votes

There is a new command in v1.40: editor.action.duplicateSelection unbound to any keybinding.

Duplicate selection

We have added a new action named Duplicate Selection. When executed, the current selection will be duplicated and the result will be selected. When there is no selection, the current line will be duplicated, all without writing to the system clipboard.

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

Some may find it helpful in certain situations.

0
votes

Another 2 very usefull shortcuts are to move lines selected up and down, like sublime text does...

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

and

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

VC Code Version: 1.22.2 Go to: Code -> Preferences -> Keyboard Shortcuts (cmd + K; cms + S); Change (edit): "Add Selection To Next Find Match": "cmd + what you want" // for me this is "cmd + D" and I pur cmd + F; Go to "Copy Line Down": "cmd + D" //edit this and set cmd + D for example And for me that's all - I use mac;

0
votes

Windows:

Duplicate Line Down : Ctrl + Shift + D

0
votes

It's possible to create keybindings that are only active when Vim for VSCode is on and in a certain mode (i.e., "Normal", "Insert", or "Visual").

To do so, use Ctrl + Shift + P to open up VSCode's Command Palette, then search for "Preferences: Open Keyboard Shortcuts (JSON)"--selecting this option will open up keybindings.json. Here, custom bindings can be added.

For example, here are the classic VSCode commands to move/duplicate lines tweaked for ease of use in 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'"
      },
    ]

Now we can use these Vim-friendly commands in VSCode!

  • Alt + J to move a line down
  • Alt + K to move a line up
  • Shift + Alt + J to duplicate a line down
  • Shift + Alt + K to duplicate a line up
0
votes

Update that may help Ubuntu users if they still want to use the and instead of another set of keys.

I just installed a fresh version of VSCode on Ubuntu 18.04 LTS and I had duplicate commands for Add Cursor Above and Add Cursor Below

Original Keybindings

I just removed the bindings that used Ctrl and added my own with the following

Copy Line Up

Ctrl + Shift +

Copy Line Down

Ctrl + Shift +

New Keybindings