출력 포커스 단축키가 안 될 때 로그로 확인하기
Keyboard Shortcuts Troubleshooting 로그에서 감지된 키, 매칭 명령, when 조건, source를 읽어 단축키가 멈춘 지점을 구분합니다.
이번 편의 핵심
Developer: Toggle Keyboard Shortcuts Troubleshooting은 키보드 디스패치 로그를 켜고 해당 Output 로그를 엽니다.
Ctrl+Shift+Down과 Ctrl+Shift+Up을 눌러 matched, when, source를 확인하되 단축키는 편집하지 않습니다.
1. 시작하기 전에
난이도는 초급입니다. 로그를 읽는 진단만 수행하며 keybindings.json, Notebook 코드와 출력은 바꾸지 않습니다.
준비할 것
- Windows 11과 VS Code Stable 1.139.1 —
code --version으로 확인 - 출력이 저장된 격리 Notebook —
SAVED_OUTPUT_ONLY문구로 확인 - 격리 User 프로필 —
keybindings.json이[]인지 확인
적용 환경 Windows 11 · VS Code Stable 1.139.1 · PowerShell
2. 알아둘 핵심 개념
Received / Converted / Resolving
키가 VS Code에 도착했는지, 현재 키보드 레이아웃으로 어떤 조합이 되었는지, 어떤 규칙 목록을 찾는지 보여 주는 단계입니다.
matched · when · source
matched는 선택된 command, when은 그 순간 참이었던 조건, source는 built-in·user·extension 출처를 뜻합니다.
no when clauses matched the context
키 규칙 후보는 있지만 현재 Context에서 조건이 맞는 규칙이 없다는 판정입니다. 키 입력 자체가 VS Code에 도착하지 않은 경우와 다릅니다.
3. 순서대로 진행하기
각 단계의 정상 결과를 확인한 뒤 다음 단계로 이동합니다.
1. 격리 Notebook과 변경 금지 확인
목적 업무 파일과 현재 User 설정을 보호한다.
- 저장된 출력이 있는 격리 Notebook을 열고 실행·저장·출력 변경·단축키 편집을 하지 않기로 확인한다.
입력 위치 격리된 VS Code 창
outputs[0].text='SAVED_OUTPUT_ONLY'정상 결과 저장된 출력이 보이고 keybindings.json은 []다.
확인 Notebook JSON과 격리 User 파일을 읽기만 한다.
실패 신호 업무 파일이 열렸거나 출력이 없다.
2. 출력 포함 셀을 선택
목적 focusInOutput의 when 조건이 참이 될 출발 상태를 만든다.
- 출력이 있는 셀의 왼쪽 선택 막대를 한 번 클릭하고 코드 편집 커서가 없는지 확인한다.
입력 위치 Notebook 셀 컨테이너
notebookCellHasOutputs=true / notebookCellListFocused=true정상 결과 출력은 보이고 셀 선택 상태다.
확인 선택 테두리와 저장된 출력 문구를 확인한다.
실패 신호 코드 편집 커서가 보이거나 출력이 접혀 있다.
3. Keyboard Shortcuts Troubleshooting 켜기
목적 키 입력 해석을 Output 로그에 기록한다.
- Command Palette에서 Developer: Toggle Keyboard Shortcuts Troubleshooting을 한 번 실행한다.
입력 위치 Command Palette
Developer: Toggle Keyboard Shortcuts Troubleshooting정상 결과 Output 패널이 열리고 Keyboard Shortcuts Troubleshooting 로그가 활성화된다.
확인 Output 패널의 채널 이름과 새 KeybindingService 행을 확인한다.
실패 신호 Output 패널이 열리지 않거나 다른 채널이다.
4. Ctrl+Shift+Down 한 번 입력
목적 출력 진입 키가 무엇으로 감지되는지 확인한다.
- 선택된 출력 포함 셀에서 Ctrl+Shift+Down을 한 번 누른다.
입력 위치 Notebook 셀 선택 상태
Ctrl+Shift+Down정상 결과 로그에 Resolving ctrl+shift+[ArrowDown] 계열과 focusInOutput 매칭이 기록되고 출력에 포커스가 간다.
확인 Received/Converted/Resolving 행과 matched 행을 순서대로 읽는다.
실패 신호 ArrowDown이 감지되지 않거나 no when clauses matched가 나온다.
5. focusInOutput 매칭 행 읽기
목적 실행된 명령과 조건·출처를 분리해 진단한다.
- Ctrl+Shift+Down 직후 matched 행에서 command, when, source를 그대로 옮겨 적는다.
입력 위치 Output · Keyboard Shortcuts Troubleshooting
matched notebook.cell.focusInOutput, when: ..., source: built-in정상 결과 명령이 notebook.cell.focusInOutput이고 source가 built-in임을 확인한다.
확인 matched 행을 공식 Resolver 형식과 대조한다.
실패 신호 다른 command 또는 user/extension source가 보인다.
6. Ctrl+Shift+Up 한 번 입력
목적 출력에서 셀로 돌아오는 키의 감지와 매칭을 확인한다.
- 출력에 포커스가 있는 상태에서 Ctrl+Shift+Up을 한 번 누른다.
입력 위치 Notebook 출력 영역
Ctrl+Shift+Up정상 결과 로그에 focusOutOutput 매칭이 기록되고 같은 셀 선택으로 돌아온다.
확인 Resolving과 matched 행, 같은 셀 선택 상태를 함께 확인한다.
실패 신호 no when clauses matched 또는 다른 command가 나온다.
7. focusOutOutput 매칭 행 읽기
목적 복귀 명령의 when이 현재 출력 포커스를 요구하는지 확인한다.
- Ctrl+Shift+Up 직후 matched 행의 command, when, source를 기록한다.
입력 위치 Output · Keyboard Shortcuts Troubleshooting
matched notebook.cell.focusOutOutput, when: notebookEditorFocused && notebookOutputFocused, source: built-in정상 결과 출력 포커스 조건과 built-in 출처를 확인한다.
확인 when의 각 피연산자를 현재 상태와 대조한다.
실패 신호 notebookOutputFocused 조건이 없거나 다른 명령이 실행된다.
8. no when clauses matched 뜻 구분
목적 키 인식 실패와 Context 불일치를 혼동하지 않는다.
- 문제가 있는 로그에서 Received/Converted/Resolving 존재 여부와 마지막 판정 행을 구분한다.
입력 위치 Output 로그
Received+Resolving+no when clauses matched = 키는 도착했지만 조건 불일치정상 결과 키가 감지됐는지와 조건 매칭 여부를 각각 판정한다.
확인 Received·Resolving·최종 판정 세 구간을 원문에서 표시한다.
실패 신호 Received 자체가 없는데 when 문제로 결론 낸다.
9. Troubleshooting 끄기
목적 지속적인 상세 로그를 종료한다.
- Developer: Toggle Keyboard Shortcuts Troubleshooting을 다시 한 번 실행한다.
입력 위치 Command Palette
toggle off정상 결과 추가 키 입력이 같은 상세 로그로 계속 쌓이지 않는다.
확인 명령을 끈 뒤 새 테스트 키를 누르지 않고 상태만 확인한다.
실패 신호 로그가 계속 쌓이거나 Output 채널이 바뀌었다.
10. 로그 4열 요약 만들기
목적 초보자가 원인을 한 줄로 설명할 수 있게 한다.
- 두 단축키마다 detected key, matched command, when, source를 한 행에 정리한다.
입력 위치 Run Evidence
Down→focusInOutput / Up→focusOutOutput / source=built-in정상 결과 두 행 모두 실제 로그 원문에서 추적된다.
확인 요약의 네 열을 원문 로그와 한 칸씩 대조한다.
실패 신호 추정한 명령명이나 생략된 when을 적었다.
11. 변경 0건 독립 확인
목적 진단이 설정이나 Notebook을 바꾸지 않았음을 증명한다.
- 전후 Notebook SHA-256과 격리 keybindings.json 원문을 비교한다.
입력 위치 PowerShell · Run 폴더
Get-FileHash .\_qa\notebook-fixture\keybinding-log-context.ipynb -Algorithm SHA256정상 결과 Notebook 해시는 같고 keybindings.json은 []다.
확인 전후 해시와 파일 원문을 확인한다.
실패 신호 해시가 달라지거나 설정 항목이 생겼다.
4. 완료 확인하기
입력 화면과 독립된 방법을 포함해 결과를 교차 확인합니다.
- Ctrl+Shift+Down — detected key와
notebook.cell.focusInOutputmatched 행이 있다. - Ctrl+Shift+Up — detected key와
notebook.cell.focusOutOutputmatched 행이 있다. - 각 matched 행에서 실제
when과source: built-in을 읽을 수 있다. - Notebook SHA-256은 동일하고 격리
keybindings.json은[]다.
완료 기준 두 단축키가 어떤 키로 감지되고 어떤 built-in 명령·when 조건으로 매칭됐는지 실제 Output 로그로 설명하며 파일과 설정 변경은 0건입니다.
5. 문제가 생겼다면
Received 행이 없다
먼저 확인 로그 토글이 켜졌고 올바른 Output 채널인지 확인합니다.
복구 토글을 다시 켜고 한 번만 입력합니다. 그래도 없으면 OS·드라이버·다른 앱이 키를 가로챘는지 UNCONFIRMED로 남깁니다.
재합류 STEP-03
no when clauses matched가 나온다
먼저 확인 키는 도착했으므로 셀에 출력이 있고 현재 포커스가 요구되는 Context인지 확인합니다.
복구 셀 선택 상태를 다시 만들고 같은 키를 한 번만 재현합니다.
재합류 STEP-02
다른 명령이나 source가 매칭된다
먼저 확인 실제 command, when, source 원문을 보존합니다.
복구 이 글에서는 편집하지 않습니다. Show Same Keybindings와 @source 필터로 별도 진단합니다.
재합류 STEP-10
로그를 끄지 못했다
먼저 확인 같은 Toggle 명령은 켜기와 끄기를 번갈아 수행합니다.
복구 Command Palette에서 같은 명령을 정확히 한 번 실행합니다.
재합류 STEP-09
6. 핵심 정리와 공식 자료
- Troubleshooting 로그는 키 감지와 규칙 매칭을 한 흐름으로 보여 줍니다.
matched행의 command·when·source가 실제 진단 근거입니다.no when clauses matched는 키 미수신이 아니라 현재 Context 조건 불일치입니다.
공식 자료
아래 자료는 2026-09-29 KST에 확인했습니다. Stable 1.139.1의 Windows 기본 키와 Built-in Notebook 기준이며 사용자 키맵·확장·다른 OS는 다를 수 있습니다.
- Keyboard shortcuts for Visual Studio Code · Microsoft
- Visual Studio Code 1.139 · Microsoft
- Default Keyboard Shortcuts · Microsoft vscode-docs
- Keybinding Resolver · Microsoft vscode Stable 1.139.1
no when clauses matched the context가 나온 경우 Inspect Context Keys로 실패한 when 피연산자를 찾아 포커스를 복구한 뒤 재실행합니다.'개발 > Visual Studio Code' 카테고리의 다른 글
| 커맨드 팔레트 63부: no keybinding entries를 등록되지 않은 키로 구분하기 (0) | 2026.10.01 |
|---|---|
| 커맨드 팔레트 62부: no when clauses matched를 Context Keys로 복구하기 (0) | 2026.09.30 |
| 커맨드 팔레트 60부: 키보드로 Notebook 출력 영역에 들어갔다 나오기 (0) | 2026.09.28 |
| 커맨드 팔레트 59부: Notebook 출력 포커스에서 셀 선택으로 돌아오기 (0) | 2026.09.27 |
| 커맨드 팔레트 58부: Notebook 입력 모드에서 출력 접기 단축키가 멈추는 이유 (0) | 2026.09.27 |