Налаштування для копіювання вставки з правильним відступом у коді Visual Studio


96

Коли я копіюю та вставляю фрагмент коду за допомогою Visual Studio Code, після натискання клавіші Enter для створення нового рядка трапляється таке:

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

Здається, він зберігає відступ, створений новим рядком, додаючи поверх нього попередню інформацію зі скопійованого фрагмента. Я волів би, щоб код був автоматично прикрашений на пасту.

Чи можна цю поведінку змінити за допомогою налаштувань?

EDIT: Я не маю на увазі міжплатформене копіювання, я маю на увазі копіювання та вставлення в той самий файл у Visual Studio Code.


а) не копіюйте пробіли першого рядка з джерела або б) при вставці переконайтеся, що курсор знаходиться на початку рядка. В основному VSC просто вставляє його там "як є".
newBee

Тож чи неможливо це змінити за допомогою налаштувань?
Тіаго

Виділення тексту та переміщення його за допомогою ALT + Arrowkeyзбереже відступ. Для тих, хто шукає альтернативу зміні налаштувань.
Даніель Томпсон,

Відповіді:


102

Це вже інтегровано у vscode із "editor.formatOnPaste": trueвластивістю в налаштуваннях.


12
На жаль, це також форматує будь-який вставлений код, що не завжди є тим, що ви хочете.
philraj

2
Ні, це не те саме. Існує довгоживуча проблема github.com/Microsoft/vscode/issues/6392 , яка закрита, але насправді не вирішена, див. Коментарі. Все, що ми хочемо, це просто зберегти / зрівняти рівень відступу цільового / цільового рядка, а не початковий рівень, звідки було скопійовано текст, а "editor.formatOnPaste": trueвиконується формат, наприклад PEP8 для python.
ололобус

Ну це працює, як я хочу. Я хочу, щоб він минув розділ, який я скопіював, куди б не
Dave Pile

2
Кожен текстовий редактор, крім VSCode, дозволяє користувачеві потроїти клацання та виділити будь-який текст. CTRL C для копіювання, а потім CTRL V, CTRL V для копіювання скопійованого тексту. За винятком коду VS, потрійне натискання CTRL C CTRL V регулює текст, а потім 2-й CTRL V робить його ще гіршим. CTRL C CTRL V - найпоширеніша з комбінацій клавіш, навіть моя мама це знає.
NZ Dev

3
Це не викликає сумнівів, наскільки я погоджуюся з рештою вашого твердження. КОПІЮВАННЯ І ВСТАВЛЕННЯ НЕ ПОВИННІ БУТИ БУДЬ-якої думки, це КОПІЮВАННЯ І ВСТАВЛЕННЯ вони повинні працювати лише 1 спосіб.
NZ Dev

41

Цей плагін може допомогти вам:

розширення вставлення та відступ

Вам просто потрібно змінити ярлик, і він працює. Пам'ятайте, що ви, мабуть, хочете використовувати 'cmd'замість того, 'ctrl'якщо ви на Mac. Подобається це:

{
    "key": "ctrl+v",
    "command": "pasteAndIndent.action",
    "when": "editorTextFocus && !editorReadonly"
},
{
    "key": "ctrl+v",
    "command": "editor.action.clipboardPasteAction",
    "when": "!editorTextFocus"
},
{
    "key": "ctrl+shift+v",
    "command": "editor.action.clipboardPasteAction",
    "when": "editorTextFocus && !editorReadonly"
}

9
Використовуйте це, щоб відтворити поведінку Sublime Text 3, тобто. cmd + shift + v для вставки-відступу: { "key": "cmd+shift+v", "command": "pasteAndIndent.action", "when": "editorTextFocus && !editorReadonly" }
дзвонить

Це рішення все ще працює. Більше неприємної додаткової вкладки проти коду не подобається вставляти кожного разу, коли я копіюю / вставляю.
Світящий

6
Знайшов, перейдіть до "Комбінації клавіш", а потім натисніть на піктограму "Відкрити комбінації клавіш JSON" у верхньому правому куті екрану, важко знайти, я думаю!
Метт Флетчер,

У цього розширення є великий мінус: воно форматує весь код файлу при вставці, а не лише фрагмент, що вставляється! Мені довелося видалити.
sdlins

Щоб знайти те місце, keybindings.jsonкуди потрібно додати фрагмент JSON: Знайдіть "Налаштування: Відкрити комбінації клавіш (JSON) у Палітрі команд
Корнеліус Ремер,

14

Ctrl+ Vза яким слідує Ctrl+, Zздається, працює нестандартно.


2
Це напрочуд працює. Набридливо це робити, але це краще, ніж нічого
Нейт Бірс,

Ви пробували Cmd + V та Cmd + Z?
Філіпп

залиште так, щоб продукт Microsoft не впорався зі здатністю копіювати та вставляти ... OMG такий щасливий, що я використовую ноутбук Linux ... дякую, цей обхідний спосіб працює
Скотт Стенсленд,

-3

Просте виправлення - спробувати Ctrl+ Shift+ Vпісля копіювання коду. Він правильно вставить усі коди з відступами.


Це не працює, точно так само. Ви спробуєте це: виділіть абзац - CTRL C, CTRL + SHFT + V, CTRL + SHFT + V. Це стає потворним !!!!
NZ Dev

«Спробувати» звучить дивно. Що саме це робить? Що робити, якщо користувач змінив ярлики?
Ніко Хаасе,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.