VSCode скопируйте и вставьте 1 строку без добавления символа новой строки

В VScode, когда вы копируете строку текста, а затем помещаете курсор в середину кавычек и нажимаете Ctrl+V, он вставляет новую строку выше того места, куда вы намеревались его поместить.

В IntelliJ и PyCharm, когда вы копируете строку кода с помощью Ctrl+C без выделения текста, они разумно удаляют символ \n в конце строки, пока она находится в памяти. Поэтому, когда вы вставляете его в кавычки, вы получаете желаемое поведение.

Поскольку команда VS вряд ли исправит это в ближайшее время, мне было интересно, есть ли у кого-нибудь макрос для этого.

https://github.com/Microsoft/vscode/issues/61840

3 ответа

Решение

Комбинация клавиш поможет вам:

  1. Главная
  2. Shift + End
  3. Ctrl + C

Но так как вы хотите сделать это только с помощью Ctrl + C, вы можете установить расширение, называемое макросами, для создания макроса, записанного с несколькими комбинациями клавиш.

Создайте свои собственные макросы, добавив их в свой settings.json:

"macros": {
    "copyWithoutNewLine": [
        "cursorHome",
        "cursorEndSelect",
        "editor.action.clipboardCopyAction",
        "cancelSelection"
    ]
}

Созданный макрос может иметь произвольное имя, в данном примере это copyWithoutNewLine. И этот макрос выполняет все вышеуказанные команды для копирования строки.

После создания макроса его необходимо добавить в keybindings.json запустить его:

{
    "key": "ctrl+alt+c",
    "command": "macros.copyWithoutNewLine"
}

Когда нажата комбинация клавиш Ctrl + Alt + C, она скопирует ее без новой строки, и вы можете вставить ее куда угодно.

Я тоже долго боролся с этим, и наконец наткнулся на решение. Добавьте эти строки в keybindings.json:

      {
    "key": "cmd+alt+ctrl+v", // insert your desired shortcut here
    "command": "editor.action.insertSnippet",
        "args": {
            "snippet": "$CLIPBOARD"},
    "when": "inputFocus"
},

Теперь нажатие cmd+option+ctrl+v (или любого другого сочетания клавиш, которое вы определяете) должно вставляться без новой строки, независимо от того, как оно было скопировано.

Для получения пояснений и других интересных вещей, которые вы можете сделать с фрагментами, см . 20Включить%20это%20с%20%22редактором .

Еще проще: перейдите в VS Code > Настройки. Найдите «Редактор: Копировать с помощью выделения синтаксиса» и снимите флажок.

Теперь всякий раз, когда вы копируете и вставляете, он копирует простой текст. Он не добавит дополнительных строк и сохранит отступы.

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

Другие вопросы по тегам