개발/Visual Studio Code

커맨드 팔레트 64부: 단축키 로그에서 awaiting more chord(s) 읽기

반응형
짙은 남색 배경에 ‘다음 키를 기다리는 중’과 ‘커맨드 팔레트 64부’ 문구가 있고, 파란 키캡 두 개 사이에 대기를 나타내는 점 세 개가 빛나는 표지
VS CODE 초보자 시리즈 · 커맨드 팔레트 64부

커맨드 팔레트 64부: 단축키 로그에서 awaiting more chord(s) 읽기

첫 조합을 누른 뒤 기다리는 상태와, 두 번째 조합까지 맞아 명령이 실행되는 상태를 로그와 화면으로 구분합니다.

awaiting 1 more chord(s)는 다음 입력 한 단계가 더 필요하다는 뜻입니다. 이어지는 명령 ID와 실제 화면을 함께 확인하면 대기와 완료를 구분할 수 있습니다.

이번 편에서는 키를 새로 지정하지 않고 현재 등록 내용을 읽습니다. 시간 경과로 대기가 끝난 경우와 후속 입력이 맞지 않은 경우도 나눠 살펴봅니다.

연재 대상일: 2026년 10월 2일 · 자료 재확인일: 2026년 10월 3일(한국 시간)

1. 시작하기 전에

이 글은 63부의 등록되지 않은 첫 키 읽기 다음 편입니다. 명령 팔레트와 Output(출력) 패널을 열어 본 초보자를 대상으로 합니다. 설정을 수정하지 않아 변경 위험은 낮지만, 키 입력 순서와 포커스를 나눠 관찰해야 합니다.

준비할 것

  • Windows 11의 VS Code Stable: Help(도움말) > About(정보)에서 설치 버전을 먼저 확인합니다.
  • 작업 보호: 열려 있는 파일과 저장되지 않은 내용을 확인합니다. 이 실습을 위해 파일을 저장·수정·닫을 필요는 없습니다.
  • 현재 키 배정: 사용자 단축키나 키맵 확장이 기본 조합을 바꾸지 않았는지 절차의 첫 세 단계에서 확인합니다.
  • 로그의 위치: 입력창이 아닌 읽기 전용 Output 본문에서 관찰합니다.

적용 환경 Windows 11 · VS Code Stable 1.140.0의 공식 구현을 기준으로 합니다. UI 언어와 키보드 배열, 현재 프로필·확장에 따라 표시가 달라질 수 있어 영문 명령 이름을 함께 적었습니다. 기본 셸이 PowerShell이어도 이 글에서 셸 명령은 실행하지 않습니다. 특정 작업 폴더나 관리자 권한도 요구하지 않습니다.

안전하게 시작하기 보호 대상은 기존 파일, 단축키와 설정입니다. 변경·설치·권한 상승·외부 전송을 하지 않으므로 새 백업이나 설정 복원이 필요한 절차는 없습니다. 진단을 켠 동안 암호·토큰·개인정보를 입력하거나 로그를 그대로 공유하지 마세요. 중단 조건: 예상과 다른 키 배정, 편집 가능한 입력 위치, 파일 변경 또는 권한 요청이 보이면 키 시험을 멈추고 현재 상태를 보존합니다.

2. 알아둘 핵심 개념

조합 하나와 두 단계 시퀀스

Ctrl+K Ctrl+S는 Ctrl·K·S를 한꺼번에 누르는 뜻이 아닙니다. Ctrl+K를 누르고 놓은 뒤 Ctrl+S를 누릅니다. 앞의 조합은 이어질 입력 후보를 찾는 접두부(prefix)입니다.

awaiting은 후속 입력 대기

현재 문맥에서 후보가 있지만 전체 시퀀스가 아직 완성되지 않으면 남은 입력 단계를 표시합니다. awaiting 1 more chord(s)의 1은 남은 시간이나 충돌 개수가 아닙니다. 이 순간에는 명령의 완료를 판단할 수 없습니다.

등록 목록, 호출 기록, 화면 결과

Keyboard Shortcuts 검색은 현재 등록 목록을 보여 줍니다. 로그의 matched와 Invoking은 후보 선택과 호출을 읽는 단서입니다. 실제 목표 화면이 열렸는지는 별도로 확인해야 합니다. 세 가지를 함께 보면 같은 키인데 결과가 다른 상황을 좁혀 갈 수 있습니다.

3. 순서대로 진행하기

각 단계의 정상 결과를 확인한 뒤 다음 단계로 이동합니다. 아래 필터와 명령 이름에는 사용자 경로·비밀값·치환할 플레이스홀더가 없습니다.

1. 메뉴로 단축키 목록 열기

목적 시험할 키를 누르기 전에 현재 등록 내용을 확인할 화면으로 이동합니다.

  1. File(파일) > Preferences(기본 설정) > Keyboard Shortcuts(바로 가기 키)를 선택합니다.

입력 위치 VS Code 상단 메뉴. 터미널·소스 파일에 입력하지 않습니다.

Preferences: Open Keyboard Shortcuts
정상 결과 Keyboard Shortcuts 화면이 열립니다. 버전에 따라 탭 또는 겹쳐 열린 화면으로 보일 수 있습니다.

확인 화면의 검색창과 명령 목록을 확인합니다.

실패 신호 메뉴가 없거나 다른 설정 화면이 열렸습니다.

복구와 재합류 현재 창이 VS Code인지, 도움말의 버전과 UI 언어가 무엇인지 확인합니다. 다른 명령으로 추측해서 대체하지 말고 S01부터 다시 시작합니다.

주의 목록 보기만 합니다. 연필·삭제·초기화 버튼을 누르지 않습니다. 되돌리기: 열린 단축키 화면만 닫으면 됩니다. 기존 작업 탭은 닫지 않습니다.

2. 명령 ID로 검색하기

목적 표시 언어가 달라도 단축키 화면을 여는 정확한 명령을 찾습니다.

  1. Keyboard Shortcuts 검색창에 아래 필터를 그대로 입력합니다.

입력 위치 Keyboard Shortcuts 검색창. 명령 팔레트나 PowerShell이 아닙니다.

@command:workbench.action.openGlobalKeybindings
정상 결과 단축키 화면을 여는 명령에 해당하는 행이 나타납니다.

확인 명령 ID가 workbench.action.openGlobalKeybindings인지 확인합니다. 이 문자열에는 바꿔 넣을 값이 없습니다.

실패 신호 검색 결과가 없거나 다른 명령만 표시됩니다.

복구와 재합류 필터 앞뒤의 공백과 기존 검색 조건을 지우고 S02를 다시 확인합니다. 여전히 없으면 버전·확장 차이를 기록하고 실습을 중단합니다.

주의 검색 문자열은 목록을 좁히는 필터입니다. 명령을 실행하거나 설정을 바꾸는 코드가 아닙니다. 되돌리기: 검색 문자열을 지우면 전체 목록으로 돌아갑니다.

3. 현재 키 배정 확인하기

목적 사용자 지정이나 키맵 확장으로 바뀐 키를 무심코 시험하지 않도록 합니다.

  1. 찾은 행의 Keybinding(키 바인딩), When(조건), Source(출처)를 읽습니다.

입력 위치 Keyboard Shortcuts의 해당 명령 행.

기본 예시: Ctrl+K Ctrl+S
정상 결과 기본 배정 환경에서는 Ctrl+K Ctrl+S가 표시됩니다. 실제 등록 내용이 우선합니다.

확인 표시된 키와 출처를 메모합니다. 같은 키가 의심되면 행의 문맥 메뉴에서 Show Same Keybindings로 관련 항목을 확인할 수 있습니다.

실패 신호 키가 다르거나 동일한 키에 다른 명령·조건이 나타납니다.

복구와 재합류 기본값으로 바꾸지 않습니다. 키 시험을 멈추고 현재 배정만 기록합니다. 기본 배정과 안전한 동작을 확인한 뒤 S03에 재합류합니다.

주의 현재 배정이 확인되지 않은 조합은 누르지 않습니다. 사용자·작업 영역 단축키는 수정하지 않습니다. 되돌리기: 조회만 했다면 되돌릴 설정은 없습니다. 원래 화면으로 돌아갑니다.

4. 문제 해결 로그 켜기

목적 VS Code가 받은 키와 명령 선택 과정을 관찰합니다.

  1. 단축키 화면에서 나와 명령 팔레트를 열고 아래 명령을 실행합니다.

입력 위치 View(보기) > Command Palette(명령 팔레트). 소스 파일·터미널에 명령 이름을 쓰지 않습니다.

Developer: Toggle Keyboard Shortcuts Troubleshooting
정상 결과 Output(출력) 패널에 단축키 진단 로그가 열립니다.

확인 Output 채널과 로그가 실제로 표시되는지 확인합니다. 이미 기록 중이었다면 토글이 기록을 끌 수 있으므로 상태부터 확인합니다.

실패 신호 명령을 찾지 못하거나 로그가 보이지 않습니다.

복구와 재합류 명령 이름과 버전을 다시 확인합니다. 다른 개발자 명령은 실행하지 말고, 진단이 켜졌음을 확인한 뒤 S04에서 이어갑니다.

주의 진단을 켠 동안 암호·토큰·개인정보를 입력하지 않습니다. 화면·로그를 외부에 공유하지 않습니다. 되돌리기: 같은 토글 명령으로 진단 기록을 끕니다.

5. 읽기 전용 출력 영역 선택하기

목적 키 입력이 소스 편집이나 터미널 실행으로 흘러가지 않도록 관찰 위치를 고정합니다.

  1. Output의 로그 본문을 클릭해 포커스를 둡니다.

입력 위치 Output 패널의 읽기 전용 로그 본문. 검색창·터미널 입력줄·소스 편집창은 제외합니다.

Output / 단축키 진단 로그
정상 결과 로그 본문을 볼 수 있고 텍스트 입력용 편집 커서는 없습니다.

확인 현재 선택한 패널이 Terminal이 아닌 Output인지 확인합니다.

실패 신호 터미널 프롬프트나 편집 가능한 파일에 포커스가 있습니다.

복구와 재합류 키 시험을 하지 않고 Output 로그 본문을 다시 선택합니다. 올바른 위치를 확인한 뒤 S05에 재합류합니다.

주의 원래 열린 파일을 저장·수정·닫지 않습니다. 되돌리기: 필요하면 마우스로 이전 패널을 다시 선택합니다.

6. 두 단계 단축키 누르기

목적 첫 조합의 대기가 두 번째 조합을 통해 명령으로 이어지는지 관찰합니다.

  1. S03에서 기본 배정을 확인했다면 Ctrl+K를 누르고 놓은 뒤, 곧바로 Ctrl+S를 누릅니다.

입력 위치 S05에서 확인한 Output 로그 본문에 포커스가 있는 VS Code 창.

Ctrl+K → 놓기 → Ctrl+S
정상 결과 첫 조합 뒤 대기 단계가 생기고, 두 번째 조합이 맞으면 단축키 화면을 여는 명령이 선택됩니다.

확인 Keyboard Shortcuts 화면이 실제로 열렸는지 먼저 봅니다. 입력 사이에 다른 창으로 이동하지 않습니다.

실패 신호 다른 명령이 동작하거나 대기 표시만 남습니다.

복구와 재합류 추가 키를 누르지 않고 대기가 끝나도록 둡니다. 로그를 보존하고 현재 배정을 확인하는 S03으로 돌아갑니다.

주의 Ctrl·K·S 세 키를 한꺼번에 누르지 않습니다. 대기 시간이 지난 뒤 Ctrl+S만 뒤늦게 누르지 않습니다. 되돌리기: 열린 단축키 화면만 닫습니다. 예상 밖 파일 변경이 생겼다면 자동 저장·되돌리기를 추측 실행하지 말고 현 상태를 보존해 중단합니다.

7. 로그와 실제 화면 교차 확인하기

목적 대기·명령 호출·목표 달성을 서로 다른 증거로 확인합니다.

  1. 방금 입력한 로그에서 대기 문구와 이어지는 명령 ID를 읽고, 실제 열린 화면과 대조합니다.

입력 위치 Output의 최근 입력 구간과 Keyboard Shortcuts 화면.

awaiting 1 more chord(s)
workbench.action.openGlobalKeybindings
정상 결과 대기 문구 뒤에 의도한 명령 ID가 나타나고 실제 단축키 화면도 확인됩니다.

확인 첫 문구의 1은 남은 입력 단계 수입니다. 후보 수·몇 초 남았다는 뜻으로 읽지 않습니다. 호출 기록만 있고 화면을 확인하지 못했다면 완료로 판단하지 않습니다.

실패 신호 이전 입력 로그를 읽고 있거나 명령 ID·화면 결과가 일치하지 않습니다.

복구와 재합류 해당 입력 구간을 다시 찾습니다. 불명확하면 임의 설정 변경 없이 S03부터 재확인합니다.

주의 로그 전체를 공개하지 않습니다. 필요한 문구만 개인정보 없이 기록합니다. 되돌리기: 조회 단계이므로 되돌릴 파일 변경은 없습니다.

8. 첫 조합만 누르고 기다리기

목적 새 입력 없이 대기가 끝나는 경우를 후속 키 불일치와 구분합니다.

  1. 단축키 화면만 닫고 Output 본문으로 돌아온 뒤, Ctrl+K만 누르고 다른 키를 누르지 않은 채 기다립니다.

입력 위치 같은 VS Code 창의 읽기 전용 Output 본문.

Ctrl+K → 추가 입력 없이 대기
정상 결과 대기 상태 표시가 나타난 뒤 사라집니다. 1.140.0 구현은 0.5초마다 경과 시간을 검사하고 5초가 초과되면 대기를 끝냅니다.

확인 그동안 키를 추가로 누르거나 창 포커스를 바꾸지 않았는지 확인합니다. 정확히 5.000초나 전용 timeout 로그를 기대하지 않습니다.

실패 신호 입력이 추가됐거나 다른 창으로 이동해 종료 원인을 구분할 수 없습니다.

복구와 재합류 원인을 미확인으로 남깁니다. 다시 관찰하려면 같은 위치에서 첫 조합부터 시작합니다.

주의 대기 종료 후 두 번째 조합만 누르면 독립 명령이 될 수 있습니다. Ctrl+S를 뒤늦게 덧붙이지 않습니다. 되돌리기: 아무 입력 없이 대기가 끝나면 조합 상태가 해제됩니다. 초기화나 설정 편집은 필요하지 않습니다.

9. 진단 기록 끄기

목적 관찰 뒤에 키 입력 기록이 계속되지 않도록 정리합니다.

  1. 명령 팔레트에서 단축키 문제 해결 토글 명령을 다시 실행합니다.

입력 위치 명령 팔레트. 파일·터미널이 아닙니다.

Developer: Toggle Keyboard Shortcuts Troubleshooting
정상 결과 새 키 입력에 대한 단축키 진단 기록이 중단됩니다.

확인 비민감한 UI 탐색 뒤 새 진단 줄이 계속 쌓이지 않는지 확인합니다. 원래 파일·키 배정·설정을 바꾸지 않았는지도 확인합니다.

실패 신호 새 진단 로그가 계속 추가되거나 기록 상태가 불명확합니다.

복구와 재합류 민감한 입력을 멈추고 토글 상태를 확인합니다. 기록 중단이 확인될 때까지 작업을 재개하지 않습니다.

주의 문제 해결을 위해 프로필 삭제·설정 초기화·확장 재설치를 하지 않습니다. 되돌리기: 원래 진단이 꺼져 있던 상태로 돌아갑니다. 기존에 켜져 있던 환경이면 시작 상태를 별도로 확인합니다.

4. 완료 확인하기

입력한 순서만 되짚는 데서 끝내지 말고 아래 관찰을 교차 확인합니다.

  • 대기 로그를 읽고 필요한 후속 입력 수를 설명할 수 있습니다.
  • 최근 입력 구간의 명령 ID가 workbench.action.openGlobalKeybindings인지 보고, 실제 Keyboard Shortcuts 화면도 확인하세요.
  • 첫 조합만 누르고 기다린 경우에는 추가 입력과 포커스 이동 여부를 함께 기록하세요. 증거가 부족하면 종료 원인을 미확인으로 남기세요.
  • 진단 기록을 끄고 기존 파일·설정·키 배정을 바꾸지 않았음을 확인하세요.
완료 기준 “첫 키를 받아 대기 중인지, 시퀀스가 완성돼 의도한 화면이 열렸는지, 대기가 종료됐다면 어떤 증거로 원인을 설명할 수 있는지”를 구분할 수 있으면 됩니다.

5. 문제가 생겼다면

대기 표시가 사라졌는데 timeout 로그가 없습니다

먼저 확인 1.140.0 소스의 대기 종료 경로는 5초 초과 여부를 0.5초 간격으로 검사합니다. 창 포커스를 잃어도 대기를 끝냅니다. 이 경로에 별도의 timeout 문구가 반드시 남는 것은 아닙니다.

복구 새로운 키 입력이나 창 이동이 있었는지 먼저 확인합니다. 상태 표시만 사라졌다면 시간 초과라고 단정하지 않습니다.

재합류 S05의 읽기 전용 위치를 확인하고 S08의 첫 조합부터 다시 관찰합니다. 두 번째 키만 뒤늦게 누르지 않습니다.

후속 조합이 맞지 않았다는 로그가 보입니다

먼저 확인 시간 경과는 새 키 없이 끝나는 경로입니다. 불일치는 누적된 키 시퀀스로 명령을 찾지 못한 경로입니다. 공식 소스의 Nothing bound to 문구는 이런 종료를 구분하는 단서입니다. 실제 입력 구간·키 시퀀스·후보 수를 함께 읽습니다.

복구 불일치를 만들려고 무작위 키를 누르지 않습니다. 사용자 단축키나 확장이 예상 밖 동작을 연결했을 수 있습니다. 오류 원문에서 민감한 내용만 가리고 현재 배정과 대조합니다.

재합류 S03에서 키 배정과 조건을 재확인한 뒤 정상 경로인 S05부터 다시 시작합니다.

no when clauses matched the context만 보고 조건 오류로 결론 내렸습니다

먼저 확인 1.140.0의 resolver는 누적 시퀀스 후보가 0개인 경우에도 이 표현을 출력할 수 있습니다. 이미 존재하는 규칙의 When 조건이 거짓이었다고 단정하면 안 됩니다.

복구 바로 앞의 Resolving 구간과 후보 수, 현재 등록 목록을 확인합니다. 원인이 확정되기 전에는 keybindings.json을 수정하거나 초기화하지 않습니다.

재합류 S02의 명령 검색으로 돌아가 등록 목록부터 확인합니다.

핵심 판단 원인을 확인하지 못하면 로그의 해당 구간과 환경 차이를 보존하고 임의 변경 없이 중단합니다. 문제가 사라진 뒤에도 원래 화면이 열리는지와 보호 대상이 그대로인지 다시 확인합니다.

6. 핵심 정리와 공식 자료

  • 첫 조합 뒤의 awaiting은 후속 입력 대기입니다.
  • 의도한 명령 ID와 실제 화면을 함께 확인합니다.
  • 대기 종료는 시간·후속 입력·포커스 증거로 구분합니다.
  • 다시 시도할 때는 첫 조합부터 시작하고, 관찰 뒤 진단을 끕니다.

공식 자료

이 글은 2026년 10월 2일 대상 연재를 이어 작성했으며, 자료는 10월 3일(한국 시간)에 다시 확인했습니다. 구현 설명은 9월 30일 공개된 Stable 1.140.0의 고정 릴리스 소스를 기준으로 합니다. 계속 갱신되는 문서의 과거 화면을 복원한 것은 아닙니다.

다음 편 예고 커맨드 팔레트 65부에서는 단축키 로그의 matched와 Invoking을 나누어 읽고, 호출 이후 실제 화면 결과로 완료를 확인하는 방법을 살펴봅니다. 이번 편의 대기·완성 구분과 명령 ID 검색을 알고 있으면 이어갈 수 있습니다.
반응형
이 글이 유용했다면 링크를 공유해 보세요.