개발/Visual Studio Code

커맨드 팔레트 63부: no keybinding entries를 등록되지 않은 키로 구분하기

반응형
VS CODE 초보자 시리즈 · 커맨드 팔레트 63부

커맨드 팔레트 63부: no keybinding entries를 등록되지 않은 키로 구분하기

단축키가 아무 반응이 없을 때, 키가 VS Code까지 도착했지만 등록 규칙 자체가 없는 경우를 로그와 검색 0건으로 구분합니다.

Received와 Resolving 뒤 No keybinding entries.가 나오면 후보의 When이 거짓인 것이 아니라 그 키에 대한 후보 자체가 없습니다.

완료되면 키 미수신, 등록 0건, When 불일치, 정상 매칭을 원문 로그로 나눌 수 있습니다.

1. 시작하기 전에

난이도는 초급입니다. 설정을 쓰지 않는 읽기 전용 진단이지만, 알 수 없는 키를 누르면 OS나 확장 기능이 반응할 수 있으므로 검색 0건 확인이 첫 Human Gate입니다.

준비할 것

  • Windows 11과 VS Code Stable 1.140.0 — 확인: Help > About 또는 code --version
  • 저장되지 않은 편집 0건 — 확인: 탭의 ● 표시와 Source Control 변경 목록
  • Keyboard Shortcuts 검색 0건인 시험 키 — 확인: STEP-03의 Showing 0 Keybindings

적용 환경 한국어 초보자 · Windows 11 · VS Code Stable 1.140.0 · PowerShell

안전하게 시작하기 이 글은 키 바인딩을 추가·삭제하지 않습니다. 예시 키는 extensions 비활성 격리 프로필에서 검증했습니다. 중단 조건: 검색 결과가 1건 이상이거나, 시험 키가 OS 전역 기능으로 알려졌거나, 누른 뒤 화면 상태가 바뀌면 즉시 중단합니다.

2. 알아둘 핵심 개념

Received

키보드 이벤트가 VS Code에 도착했다는 관찰입니다. 이 행이 없으면 VS Code 내부 규칙보다 OS·키보드 유틸리티·다른 앱의 가로채기를 먼저 의심합니다.

Resolving

VS Code가 현재 키 입력을 정규화해 Keybinding Resolver에 조회하는 단계입니다. 표시 순서는 검색 문자열과 다를 수 있으므로 modifier 구성 요소와 기본 키를 비교합니다.

No keybinding entries

Stable 1.140.0 소스에서 첫 chord의 후보 배열이 없을 때 출력되는 판정입니다. 후보는 있으나 Context가 모두 거짓인 no when clauses matched the context와 다릅니다.

표현 분류

FACT 공식 소스의 분기와 현재 Stable UI 관찰. PROCEDURE 아래 10개 단계. EXAMPLE Ctrl+Alt+Shift+F12. RECOMMENDATION 검색 0건을 Human Gate로 사용. UNCONFIRMED Received가 없을 때의 OS 가로채기 원인은 추가 증거 전까지 확정하지 않습니다.

3. 순서대로 진행하기

각 단계의 정상 결과를 확인한 뒤 다음 단계로 이동합니다.

1. 보호 대상과 중단 조건 확인

목적 진단 중 예상치 못한 명령 실행을 막는다.

  1. 열린 파일을 저장하고, Keyboard Shortcuts에서 시험할 키를 먼저 검색하기 전에는 그 키를 누르지 않기로 확인한다.

입력 위치 VS Code 제목 표시줄과 Keyboard Shortcuts

Human Gate: 검색 결과 0건일 때만 1회 입력
정상 결과 저장되지 않은 편집이 없고 시험 키의 검색을 시작할 준비가 된다.

확인 열린 탭의 변경 표시와 Source Control 변경 목록을 확인한다.

실패 신호 저장하지 않은 파일이 있거나 시험 키가 OS 전역 기능으로 알려져 있다.

주의 검색 0건을 확인하기 전에는 시험 키를 누르지 않고, 설정을 추가·삭제하지 않습니다. 되돌리기: 저장하거나 다른 격리 창으로 옮긴 뒤 STEP-01로 돌아간다.

2. Keyboard Shortcuts 열기

목적 VS Code에 등록된 규칙이 있는지 입력 전에 확인한다.

  1. Command Palette에서 Preferences: Open Keyboard Shortcuts를 실행한다.

입력 위치 Command Palette

Preferences: Open Keyboard Shortcuts
정상 결과 Keyboard Shortcuts 편집기가 열리고 검색 상자가 보인다.

확인 Command, Keybinding, When, Source 열을 확인한다.

실패 신호 JSON 편집기나 Settings 화면이 열렸다.

주의 검색 0건을 확인하기 전에는 시험 키를 누르지 않고, 설정을 추가·삭제하지 않습니다. 되돌리기: 탭을 닫고 정확한 명령으로 STEP-02를 반복한다.

3. 시험 키를 검색해 0건 확인

목적 등록 규칙이 없는 후보만 안전한 예제로 사용한다.

  1. 검색 상자에 ctrl+alt+shift+f12를 입력한다. 실제 문제 키를 진단한다면 그 직렬화 문자열로 바꾼다.

입력 위치 Keyboard Shortcuts 검색 상자

ctrl+alt+shift+f12
정상 결과 Showing 0 Keybindings가 표시된다.

확인 결과 표에 Command 행이 하나도 없는지 확인한다.

실패 신호 한 개 이상의 행이 보인다.

주의 검색 0건을 확인하기 전에는 시험 키를 누르지 않고, 설정을 추가·삭제하지 않습니다. 되돌리기: 키를 누르지 말고 행의 Command·When·Source를 조사한다. 이 글의 no-entry 경로가 아니라 등록 규칙 경로다.

4. Troubleshooting 로그 켜기

목적 키가 VS Code에 도착했는지 원문으로 확인한다.

  1. Command Palette에서 Developer: Toggle Keyboard Shortcuts Troubleshooting을 한 번 실행한다.

입력 위치 Command Palette

Developer: Toggle Keyboard Shortcuts Troubleshooting
정상 결과 Output 패널에 Keyboard Shortcuts Troubleshooting 로그가 열린다.

확인 Output 채널 이름과 새 KeybindingService 행을 확인한다.

실패 신호 다른 Output 채널이 열리거나 로그가 생기지 않는다.

주의 검색 0건을 확인하기 전에는 시험 키를 누르지 않고, 설정을 추가·삭제하지 않습니다. 되돌리기: 같은 명령을 다시 실행하지 말고 Output 채널을 먼저 확인한 뒤 STEP-04를 반복한다.

5. Human Gate 뒤 시험 키 1회 입력

목적 등록 규칙이 없는 실제 resolver 분기를 관찰한다.

  1. STEP-03의 0건을 다시 확인하고 Ctrl+Alt+Shift+F12를 한 번만 누른다.

입력 위치 VS Code 격리 창

Ctrl+Alt+Shift+F12
정상 결과 Received, Converted, Resolving 다음에 No keybinding entries.가 기록되고 VS Code 명령은 실행되지 않는다.

확인 같은 시각대의 연속 행 네 개를 확인한다.

실패 신호 화면이 바뀌거나 matched, no when, awaiting 로그가 나온다.

주의 검색 0건을 확인하기 전에는 시험 키를 누르지 않고, 설정을 추가·삭제하지 않습니다. 되돌리기: 추가 입력을 멈추고 원문을 보존한 뒤 해당 분기의 Recovery로 이동한다.

6. Received를 읽기

목적 운영체제 가로채기와 VS Code 내부 문제를 나눈다.

  1. Received 행의 modifiers, code, keyCode, key를 읽는다.

입력 위치 Output · Keyboard Shortcuts Troubleshooting

Received keydown event - modifiers: [ctrl,shift,alt], code: F12
정상 결과 키 이벤트가 VS Code에 도착했음을 확인한다.

확인 예상한 modifier와 F12가 같은 행에 있는지 확인한다.

실패 신호 Received 행 자체가 없다.

주의 검색 0건을 확인하기 전에는 시험 키를 누르지 않고, 설정을 추가·삭제하지 않습니다. 되돌리기: OS·키보드 유틸리티·다른 앱의 전역 단축키 가능성을 UNCONFIRMED로 기록하고 VS Code 밖부터 점검한다.

7. Resolving을 읽기

목적 VS Code가 어떤 정규화 키를 조회했는지 확인한다.

  1. Resolving 행의 직렬화된 키 조합을 읽는다.

입력 위치 Output · Keyboard Shortcuts Troubleshooting

Resolving ctrl+shift+alt+F12
정상 결과 원래 의도한 키와 resolver 입력이 일치한다.

확인 modifier 순서가 달라도 구성 요소가 같은지 비교한다.

실패 신호 다른 키 또는 다른 modifier가 Resolving에 표시된다.

주의 검색 0건을 확인하기 전에는 시험 키를 누르지 않고, 설정을 추가·삭제하지 않습니다. 되돌리기: 키보드 레이아웃과 실제 눌린 키를 확인하고 STEP-03의 검색 문자열을 관찰값에 맞춘다.

8. No keybinding entries 판정

목적 등록 0건과 When 불일치를 혼동하지 않는다.

  1. 마지막 resolver 행이 정확히 No keybinding entries.인지 확인한다.

입력 위치 Output · Keyboard Shortcuts Troubleshooting

No keybinding entries.
정상 결과 첫 chord에 대응하는 등록 후보 자체가 없었다고 판정한다.

확인 no when clauses matched 또는 matched와 문구를 나란히 비교한다.

실패 신호 From N keybinding entries가 표시된다.

주의 검색 0건을 확인하기 전에는 시험 키를 누르지 않고, 설정을 추가·삭제하지 않습니다. 되돌리기: N이 있으면 후보는 존재한다. no when이면 Context를, matched면 실행된 Command를 조사한다.

9. UI 검색과 로그 교차 검증

목적 로그 한 줄에만 의존하지 않고 현재 목록을 확인한다.

  1. Keyboard Shortcuts로 돌아가 같은 문자열을 다시 검색한다.

입력 위치 Keyboard Shortcuts 검색 상자

ctrl+alt+shift+f12
정상 결과 0 Keybindings와 No keybinding entries가 서로 일치한다.

확인 검색 문자열과 Resolving 문자열의 키 구성 요소를 비교한다.

실패 신호 검색에는 행이 있는데 로그는 No keybinding entries다.

주의 검색 0건을 확인하기 전에는 시험 키를 누르지 않고, 설정을 추가·삭제하지 않습니다. 되돌리기: 검색어 형식이나 프로필·확장 활성 상태가 바뀌지 않았는지 확인하고 원인을 UNKNOWN으로 보존한다.

10. Troubleshooting 끄고 변경 0건 확인

목적 진단 로그를 종료하고 설정이 보존됐음을 증명한다.

  1. Developer: Toggle Keyboard Shortcuts Troubleshooting을 다시 실행하고 keybindings.json을 확인한다.

입력 위치 Command Palette와 User keybindings.json

[]
정상 결과 상세 로그가 더 쌓이지 않고 User 규칙이 추가되지 않았다.

확인 Keyboard Shortcuts의 User 행 0건과 keybindings.json 원문 []를 확인한다.

실패 신호 새 User 행이 있거나 로그가 계속 쌓인다.

주의 검색 0건을 확인하기 전에는 시험 키를 누르지 않고, 설정을 추가·삭제하지 않습니다. 되돌리기: 추가된 행을 임의 삭제하지 말고 Evidence를 보존한 뒤 원인을 확인한다. 로그는 같은 toggle 명령으로 종료한다.

4. 완료 확인하기

입력 화면과 독립된 방법을 포함해 결과를 교차 확인합니다.

  • Output 원문 — Received와 Resolving 뒤 정확히 No keybinding entries.가 있다.
  • Keyboard Shortcuts UI — 같은 키 검색이 Showing 0 Keybindings다.
  • User 설정 — 새 User 행이 없고 격리 keybindings.json은 []다.
  • 행동 결과 — 시험 키로 VS Code 명령·파일 편집·설정 변경이 발생하지 않았다.
완료 기준 등록되지 않은 키를 키 미수신 또는 no-when 문제와 구분하고, 로그와 UI 검색이 모두 0개 후보를 가리키며, Troubleshooting을 끄고 변경 0건을 확인했습니다.

5. 문제가 생겼다면

Received가 없다

먼저 확인 VS Code 창 포커스, OS 전역 단축키, 키보드 유틸리티를 확인합니다. 원인은 아직 UNKNOWN입니다.

복구 추가 입력을 멈추고 다른 안전한 키로 이벤트 도착 여부를 비교합니다.

재합류 STEP-06

no when clauses matched가 나온다

먼저 확인 후보가 N개 있다는 뜻이므로 현재 Context와 When을 확인합니다.

복구 이 글의 0건 경로를 종료하고 직전 편의 Context Keys 절차로 이동합니다.

재합류 STEP-08

matched 또는 awaiting more chord(s)가 나온다

먼저 확인 matched는 명령 실행, awaiting은 chord 접두사 등록을 뜻합니다.

복구 원문과 Source를 보존하고 더 누르지 않습니다. awaiting은 다음 편 절차로 분리합니다.

재합류 STEP-09

검색 결과와 로그가 충돌한다

먼저 확인 검색 문자열, 프로필, extensions 활성 상태가 관찰 전후 동일한지 확인합니다.

복구 원인을 UNKNOWN으로 기록하고 새 규칙을 만들지 않은 채 격리 프로필에서 재검증합니다.

재합류 STEP-03

핵심 판단 원인을 확인하지 못하면 상태와 Evidence를 보존하고 임의 변경 없이 중단합니다.

6. 핵심 정리와 공식 자료

  • Received는 입력 도착, Resolving은 resolver 조회, No keybinding entries는 등록 후보 0건입니다.
  • 검색 0건을 입력 전 Human Gate와 입력 후 독립 검증으로 사용합니다.
  • From N entries가 보이면 no-entry가 아니며 no-when·matched·awaiting 분기로 나눕니다.
  • 이 절차는 키 바인딩을 추가·삭제하지 않습니다.

공식 자료

아래 자료는 2026-10-01 19시 KST에 확인했습니다. 공식 Stable 1.140.0과 commit 07f806f999227108933c2e30515b26eecc1fda74 기준이며, UI 문구는 언어 팩이나 후속 버전에서 달라질 수 있습니다.

다음 편 예고 커맨드 팔레트 64부 — 단축키 로그에서 awaiting more chord(s) 읽기: 첫 chord는 등록됐지만 실행 대신 awaiting more chord(s)가 나오는 경우를 2단계 입력과 시간 초과로 구분합니다.
반응형
이 글이 유용했다면 링크를 공유해 보세요.