it-swarm.com.ru

Как мне продублировать строку или выделение в коде Visual Studio?

Используя код Microsoft Visual Studio, как мне дублировать строку кода, а затем перемещать ее вверх и вниз? (Похож на Sublime's cmd+shift+d поведение)

Это функция, которой я пользуюсь постоянно, и я без труда использую код Visual Studio.

510
Chris

Команды, которые вы ищете, это editor.action.copyLinesDownAction и editor.action.copyLinesUpAction.

Вы можете увидеть связанные сочетания клавиш, выбрав: Файл> Настройки> Сочетания клавиш

Windows:

Shift+Alt+Down а также Shift+Alt+Up

Mac:

Shift+Option+Down а также Shift+OptionUp

Linux:

Ctrl+Shift+Alt+Down а также Ctrl+Shift+Alt+Up

(Возможно, нужно использовать Numpad Down а также Up для Linux)

Кроме того, команды editor.action.moveLinesUpAction и editor.action.moveLinesDownAction предназначены для перемещения строк, и они связаны с Alt+Down а также Alt+Up на Windows и Mac и Ctrl+Down а также Ctrl+Up в линуксе.

915
Benjamin Pasero

Вы можете найти сочетания клавиш от

Файл> Настройки> Сочетания клавиш

Сочетания клавиш по умолчанию:

Действие копирования строк внизshift+alt+down

Действие Копировать линии вверхshift+alt+up

Действие Move Lines Upalt+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"
    }
]
146
manukn

В VScode они называют это Copy Line Up и Copy Line Down

Из меню перейдите к:

Файл> Настройки> Сочетания клавиш

Проверьте уже назначенные сочетания клавиш для этого или настройте свой.

Иногда назначенный по умолчанию ярлык может не работать, в основном из-за ОС.

В моем Ubuntu я настроил это так: Ctrl+Shift+D

enter image description here

25
Nahid

Он пропускает ответ на этот вопрос, "Как дублировать выделение кода" Похож на Sublime's cmd/ctrl+shift+d или Jetbrains ' cmd/ctrl+d поведение.

Установите плагин Дублирующее выделение или строку из VS Code Marketplace

Duplicate selection or line VS Code plugin

Это расширение обеспечивает привязки для ctrl+d (Windows/Linux) и cmd+d (MacOS). Чтобы настроить сочетания клавиш Настройки -> Сочетания клавиш:

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

Примечание: Ярлык также дублирует строку, поэтому, если вы установите ее, удалите предыдущую ctrl+d ярлык на copyLinesDownAction (если вы делали это раньше), иначе дублирование выбора может привести к ошибке.

20
Antman Slaper Man

Пытаться ALT+SHIFT+UP/DOWN

Это сработало для меня!

15
erdemildiz

В VSCode Ctrl+CCtrl+V дублирует всю строку ниже.

Я предпочитаю это принятому ответу, потому что для этого требуется только одна рука, и он кажется более естественным.

Принятый ответ, вероятно, сделает это для большинства людей, однако Down сидит на другой стороне клавиатуры. Таким образом, у вас есть два варианта, используйте обе руки (Левая рука:L Shift+L Alt+ Правая рука:Up/Down), или с одной стороны, используйте право R Shift+R Alt+Up/Down, Второй вариант кажется странным, на мой взгляд. Я предпочел бы использовать вариант, когда моя рука естественно сидит на клавиатуре, и если это одна рука, даже лучше.

11
Nick De Beer

Обратите внимание, что для пользователей Ubuntu (<= 17.4) Unity использует CTRL + ALT + SHIFT + Arrow Key для перемещения программ по виртуальным рабочим областям, что противоречит сочетаниям клавиш VS Code. Вам нужно будет повторно привязать editor.action.copyLinesDownAction и editor.action.copyLinesUpAction, чтобы избежать конфликта (или изменить привязки клавиш рабочей области).

Для Ubuntu 17.10+, которая использует GNOME, кажется, что GNOME не использует эту привязку клавиш таким же образом в соответствии с ее документацией, хотя если кто-то, использующий рабочие пространства Vanilla 17.10, может это подтвердить, это может быть полезно для будущих ищущих ответов ,.

9
David Bodow

Если вы пришли из Sublime Text и не хотите переучиваться связывать новые ключи, вы можете использовать это расширение для Visual Code Studio.

Sublime Text Keymap для VS Code

Это расширение портирует наиболее популярные сочетания клавиш Sublime Text на код Visual Studio. После установки расширения и перезапуска кода VS ваши любимые сочетания клавиш из Sublime Text теперь доступны.

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

5
cyberfly

Прямое дублирование строки (без шага буфера обмена) предлагается расширением Contextual Duplicate .

Это отображается на ctrl+KD

2
CharlesB

Для рабочих станций 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 "[]"

Сброс дублирующихся ярлыков

  • Супер + Pgdown/PgUp, Ctrl + Alt + Стрелка вниз/Стрелка вверх
  • Супер + Shift + PgDown/PgUp, Ctrl + Alt + Shift + Стрелка вниз/Стрелка вверх

Их можно легко сбросить для работы только одним ярлыком в меню «Настройки»> «Устройства»> «Клавиатура».
Только снова введите Super + PgUp для «Переместить в рабочую область выше» в качестве примера.

 enter image description here

Теперь с меньшим количеством дублирующихся ярлыков в Fedora29 все сочетания клавиш vscode для linux должны работать нормально

1
christianbueno.1

в моей последней версии Visual Studio Code 1.30.2it будет автоматически изменен на 


ctrl + D
0
Bouchaib Ennakr