
커맨드 팔레트 65부: matched와 Invoking을 읽고 실제 화면으로 완료 확인하기
단축키 규칙 선택과 명령 호출을 구분하고, 실제 화면을 보며 완료 여부를 확인합니다.
이번 편의 핵심
같은 입력에 대해 matched의 명령 ID → Invoking의 명령 ID → 실제 화면 결과를 각각 대조하면 됩니다.
명령 이름이 로그에 나타났다는 이유만으로 원하는 창이 열렸다고 판단하지 마세요. 이번 실습에서는 키바인딩을 고치지 않고 Keyboard Shortcuts 화면이 열렸는지만 관찰합니다.
1. 시작하기 전에
64부에서 첫 조합과 두 번째 조합, 대기·완성을 구분했다면 이번에는 그다음인 호출과 화면 결과를 읽어 봅니다. 파일이나 설정을 편집하지 않는 관찰 실습입니다.
준비할 것
- Windows 11의 데스크톱 VS Code Stable. 이 글의 구현 근거는 1.140.0이며, 실제 설치 버전은 정보 화면에서 확인합니다.
- 명령 팔레트와 Keyboard Shortcuts 화면을 열 수 있어야 합니다. 키 조합과 명령 ID를 읽기 어려우면 64부부터 확인하세요.
- 현재 키보드 배열, UI 언어, 활성 프로필, 키맵 확장 유무를 확인합니다. 사용자 키바인딩과 When 조건이 기본값과 다를 수 있습니다.
- 진단을 켜기 전에 개인 정보 입력을 멈추고, 기존 파일과 설정을 바꾸지 않는다는 범위를 확인합니다.
적용 환경 Windows 11 · VS Code Stable 1.140.0 기준 · PowerShell 기본 맥락이지만 셸 명령은 실행하지 않습니다. 명령 팔레트에 입력하는 명령과 검색어만 사용하며 작업 디렉터리·관리자 권한·확장 설치는 필요하지 않습니다. UI 언어가 다르면 영문 이름과 명령 ID를 함께 대조하세요. [S1] [S2] [S6]
2. 알아둘 핵심 개념
matched: 어떤 규칙을 선택했는지 읽습니다
키바인딩 해결기는 입력한 키와 현재 조건에 맞는 규칙을 찾습니다. 해당 배포 소스의 matched 기록은 선택된 명령, When 조건과 출처를 설명합니다. 이 함수의 선택 결과를 곧바로 화면 완료로 해석하지 마세요. 후보 항목 수 역시 실행된 명령 개수가 아닙니다. [S1] [S3]
Invoking: 명령 호출 단계에 들어갔다는 기록입니다
1.140.0 배포 커밋에서 Invoking은 executeCommand 호출보다 먼저 기록됩니다. 명령 서비스는 그 이후 확장 활성화를 기다리거나, 명령이 없거나 핸들러가 실패하면 오류를 돌려줄 수 있습니다. 따라서 호출 이후 오류와 실제 결과를 확인해야 합니다. 이는 공식 소스의 처리 순서를 근거로 한 설명이며, 개별 PC의 성공 기록은 아닙니다. [S4] [S5]
명령 ID와 화면 결과를 연결합니다
workbench.action.openGlobalKeybindings는 이번에 볼 명령의 식별자입니다. 번역된 UI 이름이 달라도 같은 ID인지 대조하세요. PowerShell 명령이나 설정 키가 아니며 바꿔 넣을 플레이스홀더도 없습니다. 이 글에서의 완료 상태는 Keyboard Shortcuts의 검색 입력란과 목록을 실제로 확인하는 것입니다. [S1] [S2]
3. 순서대로 진행하기
각 단계의 정상 결과를 확인한 뒤 다음 단계로 이동합니다. 아래 명령 이름·명령 ID·검색어는 표시된 위치에서 그대로 사용하며 치환할 값이 없습니다.
1. 설치 버전과 환경을 확인합니다
목적 설명에 적용할 설치 환경을 분명히 합니다.
- VS Code의 정보 화면에서 설치된 제품과 버전을 확인합니다.
입력 위치 Windows 데스크톱 VS Code의 Help(도움말) → About(정보). 표시 언어에 따라 이름은 다를 수 있습니다.
관찰 기록: 제품 · 버전 · Windows 버전 · UI 언어 · 키보드 배열 · 활성 프로필정상 결과 어떤 설치에서 따라 하는지 설명할 수 있습니다. 이 글의 소스 기준은 VS Code Stable 1.140.0입니다.
확인 제품이 Stable 데스크톱판인지 확인하고, 다른 버전이면 UI·키바인딩 차이를 먼저 확인합니다. 확인 후 정보 화면의 닫기 컨트롤로 돌아옵니다.
실패 신호 버전·제품 종류가 불명확하거나 브라우저판/Insiders입니다.
복구·재합류 버전을 추정하지 마세요. 정보 화면에서 값을 확인한 뒤 S01부터 다시 시작합니다.
2. Keyboard Shortcuts 화면을 엽니다
목적 기본값 대신 내 환경의 키바인딩을 읽습니다.
- 명령 팔레트에서 Preferences: Open Keyboard Shortcuts를 실행합니다.
입력 위치 VS Code 명령 팔레트. 기본 Windows 진입 키는 Ctrl+Shift+P 또는 F1입니다. 한국어 UI에서는 명령 이름이 번역되어 보일 수 있습니다.
Preferences: Open Keyboard Shortcuts정상 결과 Keyboard Shortcuts의 검색 입력란과 키바인딩 목록이 보입니다.
확인 파일 내용 찾기나 전역 파일 검색 화면이 아닌지 확인합니다. 탭·대화 상자 모양 자체를 완료 기준으로 삼지 않습니다.
실패 신호 명령을 찾지 못하거나 다른 검색 화면이 열립니다.
복구·재합류 명령 이름을 다시 확인합니다. 메뉴의 File(파일) → Preferences(기본 설정) → Keyboard Shortcuts(바로 가기 키) 경로도 확인하고, 같은 화면에 도달하면 S03으로 이동합니다. 경로를 확인할 수 없으면 중단합니다.
3. 대상 명령의 키와 조건을 읽습니다
목적 이후 입력할 키 조합이 어떤 명령으로 해석되는지 확인합니다.
- Keyboard Shortcuts 검색 상자에 아래 검색어를 입력합니다.
입력 위치 Keyboard Shortcuts의 검색 입력란. PowerShell이나 편집기 본문에 입력하지 않습니다.
@command:workbench.action.openGlobalKeybindings정상 결과 해당 명령의 키바인딩, When 조건, 출처를 볼 수 있습니다.
확인 명령 ID와 Keybinding을 대조합니다. 공식 Windows 기본값은 Ctrl+K 다음 Ctrl+S입니다. 사용자 규칙이 다르면 그 차이를 기록하고, 적용 규칙이 명확할 때만 진행합니다.
실패 신호 결과가 없거나 여러 규칙 중 실제 적용 대상을 설명할 수 없습니다.
복구·재합류 검색어를 확인하고 키·When·출처를 읽습니다. 확인되지 않으면 새 바인딩을 만들지 말고 멈춥니다. 확인되면 S04로 이동합니다.
4. 목표 화면이 닫힌 기준 상태를 만듭니다
목적 원래 열려 있던 화면을 새 실행 결과로 잘못 세지 않습니다.
- Keyboard Shortcuts 화면의 보이는 닫기 컨트롤을 눌러 닫습니다.
입력 위치 VS Code 안의 해당 화면. 바깥 VS Code 창 전체의 종료 버튼과 구분합니다.
관찰할 기준 상태: Keyboard Shortcuts 화면이 닫혀 있음정상 결과 원래 VS Code 작업 화면으로 돌아옵니다.
확인 검색 입력란과 키바인딩 목록이 더 이상 보이지 않는지 확인합니다. 단축키 기록 모드나 편집 대화 상자가 남아 있지 않아야 합니다.
실패 신호 어느 화면을 닫는지 불명확하거나 저장·편집 대화 상자가 나타납니다.
복구·재합류 뜻밖의 대화 상자는 취소하고 바꾸지 않습니다. 기준 상태를 설명할 수 있을 때 S05로 이동합니다. 확인할 수 없으면 중단합니다.
5. 단축키 진단 로그를 켭니다
목적 다음 한 번의 입력에 대한 진단 기록을 만듭니다.
- 명령 팔레트에서 Developer: Toggle Keyboard Shortcuts Troubleshooting을 실행합니다.
입력 위치 VS Code 명령 팔레트. 터미널 명령이 아닙니다.
Developer: Toggle Keyboard Shortcuts Troubleshooting정상 결과 진단 로깅이 켜지고 Output에서 기록을 확인할 수 있습니다.
확인 로깅을 켰다는 상태와 Output을 확인한 뒤에만 S06으로 이동합니다. 이미 진단 중이었다면 토글 전후 상태부터 확인합니다.
실패 신호 명령 또는 Output을 찾을 수 없거나 진단이 켜졌는지 불명확합니다.
복구·재합류 제품·버전·명령 이름을 다시 확인합니다. 상태를 모른 채 토글을 반복하지 말고 중단합니다.
6. 확인한 키 조합을 한 번 입력합니다
목적 하나의 입력을 로그와 실제 결과에 연결합니다.
- S03에서 확인한 키 조합을 한 번 입력합니다. 기본값이면 Ctrl+K를 누른 뒤 Ctrl+S를 누릅니다.
입력 위치 VS Code 창 내부. 터미널·키바인딩 기록 모드·편집 팝업이 입력 대상이 되지 않도록 현재 초점을 확인합니다.
기본 키 순서: Ctrl+K → Ctrl+S정상 결과 Keyboard Shortcuts 화면이 나타납니다. 두 조합을 동시에 누르는 Ctrl+K+S 방식이 아닙니다.
확인 먼저 화면을 관찰합니다. 이어서 로그를 읽을 때 이 입력과 탐색을 위해 나중에 누른 키를 구분합니다.
실패 신호 대기만 이어지거나 다른 명령·저장 대화 상자가 나타나거나 목표 화면이 보이지 않습니다.
복구·재합류 뜻밖의 대화 상자는 취소하고 저장·편집하지 않습니다. 현재 상태와 입력을 기록한 뒤 S03의 키바인딩·조건 확인으로 돌아갑니다. 반복 입력으로 맞추지 않습니다.
7. 화면에서 완료 상태를 확인합니다
목적 호출 로그와 독립된 완료 증거를 확인합니다.
- 현재 화면에 Keyboard Shortcuts의 검색 입력란과 키바인딩 목록이 있는지 관찰합니다.
입력 위치 실제 VS Code 화면. Output 문자열을 화면 관찰의 대체물로 쓰지 않습니다.
관찰 기록: 검색 입력란 표시 여부 · 목록 표시 여부 · 오류 알림 여부정상 결과 목표 검색 UI와 목록을 직접 볼 수 있습니다.
확인 S04의 닫힌 상태와 비교합니다. 화면이 처음부터 열려 있었다면 이번 입력 때문에 열린 것인지 구분할 수 없다는 제한을 기록합니다.
실패 신호 Invoking을 봤다는 설명만 있고 실제 화면 결과를 확인할 수 없습니다.
복구·재합류 명령 ID·오류 알림·현재 초점을 기록합니다. 원인을 모르면 UNKNOWN으로 남기고 임의 설정 변경 없이 중단합니다. 목표 화면을 확인했으면 S08로 이동합니다.
8. 같은 입력의 matched와 Invoking을 대조합니다
목적 규칙 선택과 명령 호출을 같은 명령 ID에 연결합니다.
- S06 입력에 해당하는 최근 로그 묶음에서 matched와 Invoking의 명령 ID를 대조합니다.
입력 위치 Keyboard Shortcuts Troubleshooting의 Output. 목표 화면 관찰을 마친 뒤 보이는 UI로 로그에 돌아옵니다.
대조할 명령 ID: workbench.action.openGlobalKeybindings정상 결과 각 기록이 어떤 명령을 가리키는지 설명할 수 있습니다.
확인 선택 기록, 호출 기록, S07 화면 관찰을 따로 적습니다. 서로 다른 시도의 줄을 합치거나 후보 수를 실행 횟수로 해석하지 않습니다.
실패 신호 matched만 있거나, 명령 ID가 다르거나, 어느 입력의 기록인지 분명하지 않습니다.
복구·재합류 앞뒤 로그와 당시 초점을 보존합니다. 오류 원문은 고치지 않고, 원인이 확인되지 않으면 UNKNOWN으로 둡니다. S03의 규칙을 다시 확인한 뒤 재시도 여부를 판단합니다.
9. 진단을 종료하고 원래 상태로 돌아갑니다
목적 불필요한 진단 기록을 남기지 않습니다.
- 진단이 켜진 상태에서 Developer: Toggle Keyboard Shortcuts Troubleshooting을 한 번 더 실행해 끕니다.
입력 위치 VS Code 명령 팔레트.
Developer: Toggle Keyboard Shortcuts Troubleshooting정상 결과 진단을 종료한 뒤 원래 작업에 돌아갈 수 있습니다.
확인 파일 내용과 키바인딩을 편집하지 않았는지 확인합니다. 작업 파일을 저장하거나 초기화할 필요는 없습니다.
실패 신호 현재 진단 상태가 불분명하거나 뜻밖의 변경이 보입니다.
복구·재합류 추가 작업을 멈추고 상태를 먼저 확인합니다. 단축키·설정을 일괄 초기화하지 않습니다. 종료 상태를 확인하면 아래 완료 확인으로 이동합니다.
4. 완료 확인하기
입력한 키를 다시 읽는 것과 결과 화면을 보는 것을 분리하세요. 같은 시도에 대해 아래 세 가지를 각각 적으면 됩니다.
- 규칙 선택: matched의 명령 ID, 조건과 출처를 확인합니다.
- 명령 호출: Invoking의 명령 ID를 대조하고 오류 알림이 있다면 원문을 기록합니다.
- 실제 결과: S04의 닫힌 상태와 비교해 Keyboard Shortcuts 검색 입력란과 목록이 나타났는지 확인합니다.
메뉴나 명령 팔레트로 같은 화면을 여는 별도 경로는 목표 화면을 식별하는 데 도움이 됩니다. 다만 그 경로가 열렸다고 해서 원래 단축키까지 정상이라고 판단하면 안 됩니다. 원래 키 입력의 기록과 화면 관찰이 같은 시도여야 합니다.
완료 기준 선택된 명령, 호출된 명령, 화면에 나타난 결과를 서로 구분해 설명하고, 진단을 종료한 뒤 기존 파일과 키바인딩을 바꾸지 않았음을 확인하세요.
5. 문제가 생겼다면
matched만 보입니다
먼저 확인 같은 입력의 앞뒤 로그와 명령 ID를 확인합니다. 다른 시도의 줄을 합치지 않습니다.
복구 호출 여부는 미확인으로 남기세요. 선택 기록만으로 성공을 선언하지 않습니다. 당시 초점·로그를 보존하고 바인딩을 고치지 않습니다.
재합류 확인한 뒤 S03에서 다시 시작하고 원래 완료 기준을 재확인합니다.
Invoking은 있는데 화면이 기대와 다릅니다
먼저 확인 실제로 호출된 ID, 오류 알림, 화면이 이미 열려 있었는지 확인합니다.
복구 화면을 직접 확인할 수 없다면 완료로 적지 않습니다. 메뉴/명령 팔레트로 목표 화면을 비교하고, 원인이 불분명하면 UNKNOWN으로 두고 중단합니다.
재합류 확인한 뒤 S04에서 다시 시작하고 원래 완료 기준을 재확인합니다.
Ctrl+K 뒤에서 계속 기다립니다
먼저 확인 64부의 첫 조합·두 번째 조합 구분과 S03의 현재 키바인딩을 확인합니다.
복구 두 조합을 동시에 누른 것으로 처리하지 않습니다. 현재 UI에서 안전하게 취소할 수 있는 상태인지 먼저 확인하세요. 취소 여부를 모르거나 예상 밖 명령이 실행되면 중단합니다.
재합류 확인한 뒤 S03에서 다시 시작하고 원래 완료 기준을 재확인합니다.
명령 ID가 다르거나 조건이 맞지 않습니다
먼저 확인 키바인딩의 When 조건, 현재 초점, 출처를 읽습니다. 필요하면 Show Same Keybindings로 같은 키를 쓰는 항목을 조회만 합니다.
복구 확장 기능이나 운영체제를 원인으로 단정하지 않습니다. 규칙 삭제·초기화·확장 비활성화는 이 관찰 범위에 포함하지 않습니다.
재합류 확인한 뒤 S03에서 다시 시작하고 원래 완료 기준을 재확인합니다.
6. 핵심 정리와 공식 자료
- matched는 선택된 키바인딩 규칙을 읽는 단서입니다.
- Invoking은 호출 단계의 기록입니다. 이후 오류와 화면 결과는 따로 확인합니다.
- Keyboard Shortcuts의 실제 검색 UI를 관찰하고, 진단을 끈 뒤 원래 작업에 돌아오세요.
공식 자료
대상 기준 시점은 2026년 10월 3일 19:00 KST입니다. 공식 문서는 같은 날 19:00~19:03 KST에, 배포 커밋의 추가 구현은 19:15 KST에 확인했습니다. 소스 링크는 기준 시점 전에 공개된 1.140.0 배포 커밋에 고정했습니다. 문서 근거와 실제 설치 환경의 수행 결과는 구분하며, UI·키바인딩은 설치 버전과 프로필에서 다시 확인하세요.
- [S1] Keyboard shortcuts · Microsoft — 공식 UI·진단 안내. 문서의 기본 예제와 실제 설치 환경은 구분합니다.
- [S2] Default keyboard shortcuts · Microsoft — Windows 기본 키와 명령 ID. 사용자 설정과 키맵 확장에 따라 달라질 수 있습니다.
- [S3] VS Code 1.140.0의 KeybindingResolver · Microsoft — 규칙 선택의 구현. 해당 배포 커밋에 고정했습니다.
- [S4] VS Code 1.140.0의 AbstractKeybindingService · Microsoft — Invoking 기록과 명령 호출의 순서. 소스 확인이며 개별 PC의 실행 결과는 아닙니다.
- [S5] VS Code 1.140.0의 CommandService · Microsoft — 활성화 대기, 핸들러 호출, 오류 처리 경로.
- [S6] Visual Studio Code 1.140 release notes · Microsoft — 2026년 9월 30일 공개된 Stable 릴리스. 설치된 제품 버전은 별도로 확인합니다.
이전 편: 커맨드 팔레트 64부 · awaiting more chord(s) 읽기
'개발 > Visual Studio Code' 카테고리의 다른 글
| 커맨드 팔레트 67부: 검색어가 남아 있는 화면에서 현재 필터 확인하기 (0) | 2026.10.05 |
|---|---|
| 커맨드 팔레트 66부: 이미 열린 화면에서 초점 이동으로 결과 확인하기 (0) | 2026.10.04 |
| 커맨드 팔레트 64부: 단축키 로그에서 awaiting more chord(s) 읽기 (0) | 2026.10.03 |
| 커맨드 팔레트 63부: no keybinding entries를 등록되지 않은 키로 구분하기 (0) | 2026.10.01 |
| 커맨드 팔레트 62부: no when clauses matched를 Context Keys로 복구하기 (0) | 2026.09.30 |