Повторяющаяся строка в коде Visual Studio


148

Я пытаюсь найти ярлык для дублирования строки в Visual Studio Code (я использую 1.3.1). Я пробовал очевидное CTRL+, Dно это, похоже, не работает.



Ctrl + D для дублирования строки не так очевиден: он работает, например, в Notepad ++, но удаляет текущую строку в Eclipse :)
kol

См. Расширение Contextual Duplicate
CharlesB

по умолчанию CTRL + Dпросто выберите следующее вхождение, которое было выбрано по сравнению с другими IDE.
Амир Киан,

Ответы:


257

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

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

Найдите copyLinesDownActionили используйте copyLinesUpActionсочетания клавиш

Обычно это SHIFT+ ALT+


Обновление для Ubuntu:

Похоже, что Ubuntu скрывает этот ярлык от просмотра VSCode (то есть, вероятно, использует его самостоятельно). На GitHub есть проблема по этому поводу .

Для работы в Ubuntu вам нужно будет определить свой собственный ярлык, например, чтобы скопировать строку с помощью ctrl+ shift+ alt+ jи CTRL+ 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 + стрелка вниз.
jarmod

2
Ответ @DAXaholic был правильным, если вам нужно даже простое решение, просто держите курсор в строке, которую вы хотите продублировать, и нажмите ctrl + c и ctrl + v. он отлично работает
Gopi P

1
В Ubuntu 16.04 по умолчанию ярлыки Ctrl+ Shift+ Up Arrow/ Down Arrowсопоставляются с перемещением окон в разные рабочие области. Вы можете изменить это, а Ubuntu -->System Settings --> Keyboard --> Shortcuts --> Navigationзатем нажать, Backspaceчтобы удалить ненужные ярлыки.
mowen

1
Мой привязан к Ctrl + Shift + Alt + DownArrow, но на самом деле ничего не делает, когда я нажимаю эти кнопки.
Аарон Франке

для ubuntu согласно ответу Mwiza Ctrl + Shift + Alt + ↓
yas17

105

Дубликат может быть получен с помощью CTRL+ Cи CTRL+ Vс курсором в строке без выбора ничего.


35
Я не голосовал против, но я предполагаю, что это неприемлемо для OP, поскольку это копирует строку в буфер обмена, что является одной очень хорошей причиной, по которой требуется команда «дублировать строку» вместо команды копирования / вставки.
Мэтт Делл

1
Это не работает, если для editor.emptySelectionClipboardпараметра установлено значение false(моя предпочтительная конфигурация).
Bill_Stewart

9
Это сдувает то, что у меня было в моем буфере обмена
Крис Килтон

1
Одна интересная вещь, которую я заметил в этом методе, заключается в том, что нет необходимости отпускать клавишу Ctrl после нажатия 'C' (отпускать только после отпускания V)
Арун,

Это разрушает всю цель мгновенного дублирования строк.
Арман Карими,

55

В зависимости от вашей ОС вы можете использовать следующее:

Окна:

Shift+ Alt+ или Shift+ Alt+

Mac:

Shift+ Option+ или Shift+ Option+

Linux:

Ctrl+ Shift+ Alt+ или Ctrl+ Shift+ Alt+

Примечание: для некоторых дистрибутивов Linux используйте стрелки цифровой клавиатуры


9

Найдите copyLinesDownActionили используйте copyLinesUpActionсочетания клавиш

Обычно это SHIFT+ ALT+


7

Ubuntu:

  • Повторяющаяся очередь: Ctrl+ Alt+ Shift+8
  • Повторяющаяся линия вниз: Ctrl+ Alt+ Shift+2

1
отлично работает для меня. Спасибо за ответ.
singhkumarhemant

1
На самом деле это хорошее решение (работающее на Ubuntu 20 и 19), которое не требует каких-либо изменений настроек по умолчанию. Может показаться не очень интуитивно понятным, но 8 и 2 на NumPad актуальны вверх и вниз
user273711



2

В v1.40 есть новая команда: не editor.action.duplicateSelectionпривязана к любой привязке клавиш.

Повторяющийся выбор

Мы добавили новое действие под названием Duplicate Selection. При выполнении текущий выбор будет продублирован, и будет выбран результат. Если нет выделения, текущая строка будет продублирована без записи в системный буфер обмена.

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

Некоторые могут счесть это полезным в определенных ситуациях.


0

Еще два очень полезных ярлыка - перемещать выделенные строки вверх и вниз, как это делает возвышенный текст ...

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

и

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

Неправильно. Вам не нужна selectстрока в ST, чтобы ее дублировать.
Грин

быстрые клавиши для перемещения выбранных "линий"
Нишант Баранвал

0

Версия кода VC: 1.22.2 Перейдите к: Код -> Настройки -> Сочетания клавиш (cmd + K; cms + S); Изменить (редактировать): «Добавить выделение к следующему совпадению поиска»: «cmd + what you want» // для меня это «cmd + D», и я использую cmd + F; Перейдите в «Копировать строку вниз»: «cmd + D» // отредактируйте это и установите, например, cmd + D. И для меня это все - я использую mac;



0

Можно создавать сочетания клавиш, которые будут активны только тогда, когда Vim для 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'"
      },
    ]

Теперь мы можем использовать эти дружественные к Vim команды в VSCode!

  • Alt+ Jпереместить строку вниз
  • Alt+ Kпереместить линию вверх
  • Shift+ Alt+ Jдля дублирования строки вниз
  • Shift + Alt+ Kдля дублирования очереди

0

Обновление, которое может помочь пользователям Ubuntu, если они все еще хотят использовать и вместо другого набора ключей.

Я только что установил новую версию VSCode на Ubuntu 18.04 LTS, и у меня были дублированные команды для Add Cursor AboveиAdd Cursor Below

Оригинальные сочетания клавиш

Я просто удалил использованные привязки Ctrlи добавил свои собственные со следующими

Copy Line Up

Ctrl+ Shift+

Copy Line Down

Ctrl+ Shift+

Новые сочетания клавиш


0

Есть разные способы.

  • Нажмите CNTRL + C и CNTRL + V.
  • Нажмите Shift + alt + стрелка вниз, чтобы продублировать строку вниз
  • Нажмите Shift + alt + стрелка вверх, чтобы продублировать линию вверх
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.