TOC
들어가며
저는 Cursor를 사용하고 있는데요, Cursor 등 VSCode 기반 에디터는 Cmd+W
단축키로 열려 있는 파일 에디터 창을 끌 수 있습니다. 그런데 여러 파일 창을 우다다 끄다가 더이상 끌 수 없는 파일창이 없으면 에디터 윈도우 자체를 꺼버리는 일이 자주 있었는데요, 저는 이게 너무 불편했습니다. 제가 왜 이것 때문에 조심스럽게 파일창들을 세어가며 꺼야 하나요!
이런 현상을 방지하기 위해 파일창까지만 끄고, 에디터는 안 끄는, 단축키 설정 방법을 소개합니다.
결론
- Command Palette 열기
Cmd + Shift + P
→Open Keyboard Shortcuts (JSON)
- 아래 내용을 추가
{
"key": "cmd+w",
"command": "-workbench.action.closeWindow",
"when": "!editorIsOpen && !multipleEditorGroups"
}
과정
용어 정리
일단 설명 전에 용어부터 정리하겠습니다.
Editor
: 파일별로 코드를 편집하는 '파일창'을 의미합니다.Window
: VSCode, Cursor 등 에디터 프로그램 자체를 의미합니다. 우리가 커맨드로부터 지키고자 하는 대상이죠.
기본 상태
맨 처음 Keyboard Shortcuts
에 진입하고, Cmd+W
커맨드에 매핑된 단축키 동작들을 살펴보면 이렇습니다.

여러 command들이 기본적으로 정의되어 있는데, 여러 상황들에 적용되는 action들이 매우 많음을 알 수 있습니다.
keybindings.json 편집하기
Keyboard Shortcuts
의 커맨드들을 개발적으로 쉽게 등록하거나 삭제하려면 keybindings.json
을 열어서 직접 수정할 수 있습니다.
Cmd+Shift+P
를 통해 Command Palette
를 열고 Open Keyboard Shortcuts (JSON)
를 검색해서 열면 keybindings.json
이 열립니다. 여기에 아래 코드를 추가해주시면 됩니다.
{
"key": "cmd+w",
"command": "-workbench.action.closeWindow",
"when": "!editorIsOpen && !multipleEditorGroups"
}
코드를 추가한 상황에서 Cmd+W
에 바인딩된 액션들은 이렇습니다.


끝입니다. 이미 됐습니다. 이제 열려 있는 Editor들이 모두 꺼져도 Window는 꺼지지 않습니다.
비교
그렇다면 이 코드가 뭐길래 이렇게 된 걸까요? 어떤 Shortcuts의 차이가 있는 걸까요? 다시 코드를 없는 셈 쳐보겠습니다.


차이가 보이시나요? Close Window
커맨드가 생겼습니다. 이 커맨드는 에디터 프로그램 자체(Window)를 끄는 액션입니다. 언제요? 열려 있는 파일 창(Editor)이 없고, 다중 에디터 그룹이 없을 때요. 즉, 우리가 모든 파일창을 끈 상태에서 Cmd+W
를 누르면 이 커맨드가 실행되고, Window를 끄는 것이죠.
그리고 JSON 코드로 이 액션을 없앴습니다. 어떻게요?
코드를 없애는 코드
처음에는 Keyboard Shortcuts
GUI에서 커맨드를 찾아 우클릭+삭제(Cmd+Backspace
)를 시도했습니다. 그리고 삭제된 것처럼 보였죠. 그런데 이렇게 하면 Window를 재시동했을 때 커맨드가 다시 부활해서 떡하니 있습니다. 기본 커맨드이기 때문으로 보입니다.
그래서 기본 코드를 제거하는 JSON 코드로 기본 코드를 덮어씌운 것입니다.
주의사항
- "command"의
-
prefix는 명령어 자체를 제거하는 것이 아니라, 특정 단축키와의 매핑을 제거하는 것입니다. - 즉, "key": "cmd+w"로 명시된 키 조합에서 해당 command만 제거되는 것입니다.
- 만약 해당 명령어가 여러 키 조합에 바인딩돼 있다면, 그중 지정한 키만 제거됩니다.
마치며
불편을 참지 마세요. 불편에 적응하지 마세요. 내가 불편하면 먼저 불편한 사람이 벌써 있고, 그 사람들은 답을 찾아냈을 겁니다.
간만에 짧은 글이었네요. 혹시 같은 불편을 겪고 계신 분들께 도움이 됐길 바랍니다. 감사합니다.