Вопрос или проблема
Согласно комментарию здесь: 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
:
- Нажмите Ctrl + K, Ctrl + S
- Введите:
view close editor
, чтобы отфильтровать сочетания клавиш - Найдите элемент Просмотр: закрыть редактор с сочетанием клавиш Ctrl + W и щелкните правой кнопкой мыши по нему.
- Выберите элемент Изменить выражение when в контекстном меню
- Введите:
!editorIsOpen
и нажмите Enter - Перезапустите VS Code
Я установил опцию Окно: Подтвердить перед закрытием
на только с клавиатуры
Ответ или решение
Чтобы предотвратить закрытие Visual Studio Code (VSCode) при нажатии сочетания клавиш Ctrl + W в отсутствии открытых вкладок, вам необходимо изменить настройки привязок клавиш. Вот подробные инструкции по изменению данного поведения:
Шаги для изменения привязок клавиш в VSCode
-
Открытие настроек привязок клавиш:
- Перейдите в меню:
Файл
->Предпочтения
->Клавиатурные сокращения
или просто нажмитеCtrl + K
, затемCtrl + S
.
- Перейдите в меню:
-
Нахождение команды для закрытия окна:
- В строке поиска введите
Закрыть окно
илиClose Window
, чтобы найти соответствующую настройку. - Вы увидите элемент с привязкой, называемой
Ctrl + W
.
- В строке поиска введите
-
Удаление или изменение привязки:
- Щелкните правой кнопкой мыши по найденному элементу и выберите
Удалить
, чтобы убрать привязкуCtrl + W
к закрытию окна. - Если вы не хотите полностью удалять привязку, вы можете изменить сочетание клавиш на другое.
- Щелкните правой кнопкой мыши по найденному элементу и выберите
Альтернативный способ через файл keybindings.json
Если вышеприведенные шаги вам не подошли, вы можете вручную отредактировать файл keybindings.json
:
-
Открытие файла keybindings.json:
- Перейдите в меню:
Файл
->Предпочтения
->Клавиатурные сокращения
. - Нажмите на иконку документа, чтобы открыть файл
keybindings.json
.
- Перейдите в меню:
-
Добавление или изменение условия для сочетания клавиш:
- Найдите следующий код в файле:
{ "key": "ctrl+w", "command": "-workbench.action.closeWindow", "when": "!editorIsOpen" }
- Измените условие, чтобы оно выглядело следующим образом:
{ "key": "ctrl+w", "command": "-workbench.action.closeWindow", "when": "!editorIsOpen && !multipleEditorGroups" }
- Это изменение предотвратит закрытие окна, если нет открытых редакторов и не используются несколько групп редакторов.
-
Перезапустите VSCode:
- Закройте и заново откройте VSCode, чтобы изменения вступили в силу.
Дополнительные настройки
Если вы хотите, чтобы VSCode запрашивал подтверждение перед закрытием окна с помощью клавиатуры, вы можете установить опцию Confirm Before Close
в настройках:
- Откройте настройки (
Ctrl + ,
). - Найдите
Window: Confirm Before Close
и установите его значение наkeyboardOnly
.
Эти изменения должны помочь вам предотвратить случайное закрытие редактора при нажатии Ctrl + W, когда нет открытых вкладок.