Как предотвратить закрытие редактора в VScode при нажатии ctrl+w, если нет открытых вкладок?

Вопрос или проблема

Согласно комментарию здесь: https://github.com/Microsoft/vscode/issues/50671 можно изменить это поведение в клавиатурных комбинациях, но инструкции о том, как это сделать, не предоставлены.

Как я могу изменить сочетания клавиш в VScode так, чтобы, если я нажму CTRL+W без открытых вкладок, редактор не закрывался? Это очень раздражает, когда я пытаюсь закрыть несколько вкладок и случайно закрываю весь редактор.

Перейдите в Файл -> Настройки -> Горячие клавиши (или нажмите Ctrl+K Ctrl+S).

Найдите настройку “Закрыть окно” с Ctrl+W в качестве сочетания клавиш.

Щелкните правой кнопкой мыши и удалите сочетание клавиш или измените его на другое.

Это известная ошибка:
#54583 Закрытие последнего редактора с помощью Ctrl+W закрывает VS Code (регрессия),
которая, похоже, является возвратом к предыдущему поведению.

Решение найдено в другом отчете об ошибке:
#53730 Пользовательские сочетания клавиш ломаются, если условия по умолчанию меняются,
что заключается в редактировании файла ~/.config/Code/User/keybindings.json.

Где-то в файле вы должны найти следующий код:

{
  "key": "ctrl+w",
  "command": "-workbench.action.closeWindow",
  "when": "!editorIsOpen"
}

Измените условие “when” так, чтобы это выглядело как:

{
  "key": "ctrl+w",
  "command": "-workbench.action.closeWindow",
  "when": "!editorIsOpen && !multipleEditorGroups"
}

Обратите внимание, что это отмечено как исправленное, так что ошибка может быть исправлена в некоторой будущей версии VS Code.

У меня была такая же проблема. Добавление этого в файл keybindings.json помогает:

{
      "key": "cmd+w",
      "command": "-workbench.action.closeWindow",
      "when": "!editorIsOpen && !multipleEditorGroups"
}

Это закроет активный редактор с помощью cmd+w. Но не закроет окно vscode, когда ни один редактор не открыт.

Когда вы используете недавнюю версию, 1.43.1, в настройках пользователя keybindings.json:

  1. Нажмите Ctrl + K, Ctrl + S
  2. Введите: view close editor, чтобы отфильтровать сочетания клавиш
  3. Найдите элемент Просмотр: закрыть редактор с сочетанием клавиш Ctrl + W и щелкните правой кнопкой мыши по нему.
  4. Выберите элемент Изменить выражение when в контекстном меню
  5. Введите: !editorIsOpen и нажмите Enter
  6. Перезапустите VS Code

Я установил опцию Окно: Подтвердить перед закрытием на только с клавиатуры

Ответ или решение

Чтобы предотвратить закрытие Visual Studio Code (VSCode) при нажатии сочетания клавиш Ctrl + W в отсутствии открытых вкладок, вам необходимо изменить настройки привязок клавиш. Вот подробные инструкции по изменению данного поведения:

Шаги для изменения привязок клавиш в VSCode

  1. Открытие настроек привязок клавиш:

    • Перейдите в меню: Файл -> Предпочтения -> Клавиатурные сокращения или просто нажмите Ctrl + K, затем Ctrl + S.
  2. Нахождение команды для закрытия окна:

    • В строке поиска введите Закрыть окно или Close Window, чтобы найти соответствующую настройку.
    • Вы увидите элемент с привязкой, называемой Ctrl + W.
  3. Удаление или изменение привязки:

    • Щелкните правой кнопкой мыши по найденному элементу и выберите Удалить, чтобы убрать привязку Ctrl + W к закрытию окна.
    • Если вы не хотите полностью удалять привязку, вы можете изменить сочетание клавиш на другое.

Альтернативный способ через файл keybindings.json

Если вышеприведенные шаги вам не подошли, вы можете вручную отредактировать файл keybindings.json:

  1. Открытие файла keybindings.json:

    • Перейдите в меню: Файл -> Предпочтения -> Клавиатурные сокращения.
    • Нажмите на иконку документа, чтобы открыть файл keybindings.json.
  2. Добавление или изменение условия для сочетания клавиш:

    • Найдите следующий код в файле:
    {
     "key": "ctrl+w",
     "command": "-workbench.action.closeWindow",
     "when": "!editorIsOpen"
    }
    • Измените условие, чтобы оно выглядело следующим образом:
    {
     "key": "ctrl+w",
     "command": "-workbench.action.closeWindow",
     "when": "!editorIsOpen && !multipleEditorGroups"
    }
    • Это изменение предотвратит закрытие окна, если нет открытых редакторов и не используются несколько групп редакторов.
  3. Перезапустите VSCode:

    • Закройте и заново откройте VSCode, чтобы изменения вступили в силу.

Дополнительные настройки

Если вы хотите, чтобы VSCode запрашивал подтверждение перед закрытием окна с помощью клавиатуры, вы можете установить опцию Confirm Before Close в настройках:

  1. Откройте настройки (Ctrl + ,).
  2. Найдите Window: Confirm Before Close и установите его значение на keyboardOnly.

Эти изменения должны помочь вам предотвратить случайное закрытие редактора при нажатии Ctrl + W, когда нет открытых вкладок.

Оцените материал
Добавить комментарий

Капча загружается...