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

735

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

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

Крис
источник
Отвечает ли это на ваш вопрос? Дублирующая строка в коде Visual Studio
Arash.Zandi

Ответы:

1330

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

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

Окна:

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в Linux.

Бенджамин Пасеро
источник
59
И кажется Alt+Upили Alt+Downперемещает существующую линию вверх и вниз. Ницца
Крис
2
Стоит отметить, что действия copyLines существуют не в полной версии Visual Studio, а только в коде Visual Studio.
user45623
4
Инструменты | Варианты | Окружающая среда | Клавиатура в VS2015
Майк Кескинов
15
Вы знаете, как «дублировать выделение»? Я не смог найти подходящую команду :(
nZeus
25
В Linux ctrl+shift+alt+down/upработает только для клавиш со стрелками num pad.
Джек Стим
174

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

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

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

Действие «Копировать линии вниз» : 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"
    }
]
manukn
источник
Кроме того, если вам нужно переместить строку далеко, Ctrl + C и Ctrl + X легко скопировать / вырезать текущую строку без необходимости ее выбора. И ctrl + L(команда expandLineSelection ) выберет строку. Повтор Ctrl + L выделяет дополнительные строки, облегчая выбор блока. Или вы можете сделать грубый выбор блока с помощью мыши, а затем Ctrl + L, чтобы включить концы.
aamarks
я использую vscode 1.4, он не работает, дорогой
Kamlesh
49

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

Установите плагин Duplicate selection или строку из VS Code Marketplace

Дубликат выделения или строка VS Code plugin

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

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

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

Antman Slaper Man
источник
Я был разочарован ярлыком «копировать строки вниз», который не совсем работал как функция Sublime Text / Intellij Ctrl + D (он копировал целые строки, а не только выделение). Спасибо за указание на этот плагин!
Тимоте Малахье
Я собирался отказаться от vscode и установить atom, но это расширение помешало мне. дублирующая функциональность vscode по умолчанию не на должном уровне. атом намного лучше в этом отношении.
Викрант
31

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

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

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

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

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

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

введите описание изображения здесь

Nahid
источник
24

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

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

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

Ник Де Бир
источник
7
Основная проблема в том, что вы теряете то, что было в вашем буфере обмена
Chris
20

Попробуйте ALT+ SHIFT+ UP/DOWN

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

eildiz
источник
Это должен быть принятый ответ!
Фатих Акташ
У меня это сработало только сейчас.
Мансурхан Черупужа
12

Обратите внимание, что для пользователей 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, может это подтвердить, это может быть полезно для будущих искателей ответов.

Дэвид Бодоу
источник
Я на Ubuntu 19.10 и Ctrl + Alt + Down по-прежнему перемещается между рабочими пространствами.
BeeOnRope
10
  • Для пользователей Jetbrains IDE, которые перешли на VSCode , нет проблем.

  • Установите:
    1) JetBrains IDE Keymap: расширение
    2) vscode-intellij-idea-keybindings Extension (Preferred)

  • Используйте это Intellij Darcula Theme: Расширение

  • Карта клавиш покрывает большинство сочетаний клавиш VS Code и делает VS Code более похожим на JetBrains IDE .

  • Вышеуказанные расширения импортируют привязки клавиш из JetBrains в VS Code. После установки расширения и перезапуска VS Code вы можете использовать VS Code так же, как IntelliJ IDEA, Webstorm, PyCharm и т. Д.

Сумит Шукла
источник
7

Для Windows :

Копировать вверх - shift+ alt+up

Копировать вниз - shift+alt +down

Для Mac :

Копировать вверх - shift+ option+up

Копировать вниз - shift+option +down

Для Linux :

Копировать вверх - ctrl+ shift+ alt+8

Копировать вниз - ctrl+ shift+ alt+2

Примечание . Вы можете изменить комбинацию клавиш для сочетания клавиш для кода Visual Studio, нажав ctrl+ shift+p , затем напечатайте сочетание клавиш на клавиатуре и нажмите «Ввод», чтобы открыть новый файл (файл сочетаний клавиш), чтобы увидеть все сочетания клавиш на их и можете изменять привязки клавиш, дважды щелкнув по соответствующей привязке клавиш, а затем, введя собственную привязку клавиш, наконец нажмите Enter.

Надеюсь, это кому-нибудь поможет!

Аман Кумар Гупта
источник
6

Если вы пришли из 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

cyberfly
источник
3

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

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

CharlesB
источник
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 "[]"

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

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

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

введите описание изображения здесь

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

christianbueno.1
источник
0

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


ctrl + D

Бушаиб Эннакр
источник
В vscode это подсвечивает слово под курсором. Возможно, Notepad ++ использовал сочетание клавиш ctrl + D. Просто собираюсь по памяти.
Плоский кот
0

Для пользователей 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для форматирования кода.

my-
источник
0

Просто зайдите в файл -> настройки -> сочетания клавиш. Там вы можете изменить любой ярлык, который вам нравится. найдите дубликат и замените его на то, что вы всегда используете в других редакторах. Я изменил на Ctrl + D

Амин Ноура
источник