홍드로이드의 야매코딩

Claude Code 단축키 설정 — Cmd·윈도우 키는 대부분의 터미널이 안 보내고, 네 개는 아예 못 바꿉니다 본문

AI & Vibe Coding

Claude Code 단축키 설정 — Cmd·윈도우 키는 대부분의 터미널이 안 보내고, 네 개는 아예 못 바꿉니다

홍드로이드 2026. 8. 17. 07:08
반응형

쓰다 보면 손에 안 맞는 키가 하나씩 생깁니다. 공식 문서에 설정 파일로 단축키를 바꾸는 방법이 정리돼 있어서 읽어 봤는데, 정작 눈에 들어온 건 "적어놨는데 왜 안 먹지"의 원인 목록이었습니다. 그리고 그 원인 대부분이 도구가 아니라 터미널 쪽에 있습니다. 바꾸는 법보다 안 바뀌는 이유를 먼저 아는 게 시간을 아껴줄 것 같아 그쪽 위주로 정리했습니다.

📌 30초 요약

  • 파일 하나로 바꿉니다. 저장하면 재시작 없이 바로 적용됩니다.
  • Cmd·윈도우 키 계열은 대부분의 터미널이 안 보냅니다. 문서가 어디서나 되게 하려면 다른 키를 쓰라고 직접 안내합니다.
  • 대문자 규칙이 자리에 따라 반대입니다. 혼자 쓴 대문자는 Shift를 뜻하는데, 수정자가 붙으면 대문자가 아무 뜻도 없습니다.
  • 네 개는 아예 못 바꿉니다. 그중 둘은 도구 사정이 아니라 터미널 사정입니다.
  • 두 키 조합의 앞 글자를 되찾으려면 흩어진 것을 전부 풀어야 합니다. 하나라도 남으면 그 키는 계속 잠깁니다.
  • 경고는 뜨는데 자세한 내용은 안 보입니다. 진단 옵션을 켜고 실행해야 이유가 나옵니다.

파일 하나로 바꿉니다

전용 명령을 치면 설정 폴더 안에 단축키 파일이 만들어지고 열립니다. 구조는 단순한데, 어느 화면에서 쓸지를 정하는 맥락과 키를 동작에 연결하는 표가 짝을 이룹니다. 동작 이름은 영역과 동작을 콜론으로 잇는 형식이라 읽으면 대충 뜻이 보입니다.

// 채팅 화면에서 Ctrl+E 를 외부 편집기 열기로, Ctrl+U 는 해제
{
  "bindings": [
    {
      "context": "Chat",
      "bindings": {
        "ctrl+e": "chat:externalEditor",
        "ctrl+u": null
      }
    }
  ]
}

좋은 점 하나 — 파일 변경을 알아서 감지해 적용하므로 껐다 켤 필요가 없습니다. 스키마 주소를 적어두면 에디터가 자동완성을 붙여주고요. 맥락은 열아홉 가지가 있는데, 전체에 적용되는 것부터 자동완성 메뉴가 열렸을 때·권한 확인 창일 때·백그라운드 작업이 돌 때처럼 상황별로 잘게 나뉩니다. 같은 키를 상황마다 다른 동작에 걸 수 있다는 뜻이죠. 어떤 파일이 어디에 있는지 헷갈린다면 설정 파일 지도를 그려둔 글을 같이 보시면 됩니다.

적어놨는데 안 먹는 첫 번째 이유

⌘ Cmd·윈도우 키는 애초에 도착하지 않습니다

수정자로 쓸 수 있는 이름이 네 묶음인데, 그중 맥의 Command·윈도우의 윈도우 키·리눅스의 Super를 가리키는 묶음에만 조건이 붙습니다. 문서 요지는 이렇습니다 — 이 묶음은 Super 수정자를 보고하는 터미널에서만 감지되고, 대부분의 터미널은 그걸 보내지 않는다. 특정 키보드 프로토콜을 지원하거나 확장 키 모드를 켠 터미널에서만 온다는 거죠. 그래서 문서가 곧바로 대안을 답니다 — 어디서나 되게 하려면 Ctrl이나 Alt 계열로 걸어라. 이게 중요한 이유는 실패가 조용하기 때문입니다. 설정 파일에는 아무 문제가 없고 경고도 안 뜨는데 키를 눌러도 그냥 아무 일이 없습니다. "내가 뭘 잘못 적었나" 하고 파일만 들여다보게 되는 자리죠. 참고로 Alt 계열은 맥에서 Option, 윈도우·리눅스에서 Alt로 각각 매핑됩니다.

두 번째 이유는 대문자입니다. 규칙이 자리에 따라 정반대라 헷갈리기 딱 좋습니다. 혼자 쓴 대문자는 Shift를 함께 누른 것으로 칩니다. 그런데 수정자와 같이 쓴 대문자는 그냥 보기 좋으라고 쓴 것으로 취급돼 Shift를 뜻하지 않습니다. 즉 수정자와 함께 대문자로 적었다면 소문자로 적은 것과 똑같이 동작합니다. Shift를 정말 넣고 싶으면 Shift를 명시적으로 적어야 합니다. 대소문자로 다른 동작을 구분하는 방식에 익숙한 분일수록 이 자리에서 한 번 걸립니다.

# 혼자 쓴 대문자 — Shift 를 뜻함
K              → shift+k 와 같음

# 수정자와 함께 쓴 대문자 — Shift 를 뜻하지 않음
ctrl+K         → ctrl+k 와 같음 (Shift 안 들어감)
ctrl+shift+k   → 이렇게 적어야 Shift 가 들어감

# 두 키를 이어 누르는 조합은 공백으로 구분
ctrl+k ctrl+s  → Ctrl+K 를 뗀 다음 Ctrl+S

특수 키는 이름으로 적습니다 — Esc·Enter·Tab·Space·방향키 넷·백스페이스·Delete가 목록에 있습니다. Esc와 Enter는 줄인 이름과 풀어 쓴 이름 둘 다 받습니다.

앞 글자를 되찾으려면 전부 풀어야 합니다

기본 단축키를 없애는 건 쉽습니다 — 동작 자리에 빈 값을 적으면 해제됩니다. 문제는 두 키를 이어 누르는 조합입니다. 어떤 키가 그런 조합의 앞 글자로 쓰이고 있으면, 그 키를 단독으로는 쓸 수 없습니다. 눌러도 "다음 키를 기다리는" 상태로 들어가 버리니까요.

그래서 되찾으려면 그 앞 글자를 쓰는 조합을 하나도 남김없이 풀어야 합니다. 문서가 실제 사례로 드는 게 어떤 키 하나를 앞 글자로 쓰는 기본 조합이 세 개인 경우인데, 여기서 함정이 나옵니다 — 그 셋이 한 맥락에 모여 있지 않고 두 맥락에 흩어져 있습니다. 채팅 화면에 둘, 백그라운드 작업 화면에 하나요. 채팅 쪽만 보고 두 개를 풀면 여전히 안 됩니다. 문서가 못 박습니다 — 일부만 풀면 남은 것들 때문에 여전히 대기 상태로 들어간다. 조합은 그것을 정의한 맥락에서 각각 풀어야 한다는 규칙이고요. 한 화면만 들여다봐서는 원인을 못 찾는 구조입니다.

못 바꾸는 넷, 부딪히는 셋

문서에 다시 걸 수 없는 키가 표로 정리돼 있습니다. 흥미로운 건 이유가 두 종류로 갈린다는 점입니다. 둘은 도구가 고정해 둔 것이고, 나머지 둘은 터미널이라는 환경 자체의 성질입니다.

못 바꾸는 키 이유 누가 정한 것
Ctrl+C 중단·취소로 고정 도구
Ctrl+D 종료로 고정 도구
Ctrl+M 터미널에서 Enter와 똑같은 신호를 보냄 터미널
Caps Lock 터미널 프로그램까지 전달되지 않음 터미널

Ctrl+M이 못 바뀌는 이유가 특히 재밌습니다. 터미널 세계에서 그 조합과 Enter가 같은 문자를 보내기 때문이라, 도구 입장에서는 둘을 구분할 방법이 없습니다. 무언가를 막아둔 게 아니라 애초에 서로 다른 두 입력으로 도착하지 않는 것이죠. Caps Lock도 같은 결입니다. "왜 이건 안 되게 해놨지"가 아니라 "여기까지 오지도 않는다"가 답인 셈입니다.

부딪히는 키 누가 먼저 가져가나 실제 증상
Ctrl+B tmux의 앞 글자 키 두 번 눌러야 안쪽으로 전달됨
Ctrl+A GNU screen의 앞 글자 키 화면 관리 도구가 먼저 먹음
Ctrl+Z 운영체제의 프로세스 일시정지 세션이 뒤로 밀려남

이 셋은 금지가 아니라 경고입니다. 걸 수는 있지만 터미널 환경에 따라 도달하지 않을 수 있다는 뜻이죠. 화면 관리 도구를 쓰지 않는 분이라면 앞의 둘은 그냥 써도 됩니다. 다른 사람과 설정을 공유할 때만 조심하면 되는 항목입니다.

vim 모드와 경고 메시지

vim 방식 입력을 켜 두었다면 두 체계가 층을 나눠 따로 돕니다. vim 쪽은 글자 입력 층에서 커서 이동과 모드를 담당하고, 단축키 쪽은 화면 요소 층에서 동작을 담당합니다. 그래서 Esc는 입력 모드를 바꾸는 데만 쓰이고 취소 동작을 부르지 않습니다. 대부분의 Ctrl 조합은 vim 층을 통과해 단축키 쪽으로 넘어가고요.

경계도 분명합니다 — vim 키 자체는 이 파일로 리맵할 수 없습니다. 입력 모드에서 두 글자를 눌러 빠져나오는 흔한 설정은 다른 항목으로 따로 잡아야 합니다. 그리고 일반 모드에서는 물음표가 도움말, 빗금이 기록 검색인데, 빗금이 여는 것은 표준 모드의 기록 검색과 같은 화면입니다. 즉 같은 기능으로 가는 문이 모드마다 다르게 나 있는 구조입니다.

마지막으로 검증입니다. 파일을 읽을 때 다섯 가지를 확인해 경고를 냅니다 — 문법이 깨졌는지, 맥락 이름이 실제로 있는지, 못 바꾸는 키를 건드렸는지, 화면 관리 도구와 부딪히는지, 같은 맥락 안에서 중복인지. 그런데 여기에 단서가 붙습니다 — 경고는 뜨지만 각각의 자세한 내용은 진단 로그에만 기록되고, 진단 옵션을 켜고 실행해야 그 내용을 볼 수 있습니다. "뭔가 잘못됐다"는 알려주는데 "무엇이 잘못됐는지"는 한 단계 더 들어가야 나오는 셈이죠. 설정을 여러 줄 고친 뒤라면 이 옵션을 켜고 한 번 띄워보는 게 빠릅니다.

🙋 정직하게 밝혀둘 것

  • 여러 터미널에서 직접 걸어 보지 않았습니다. 어느 터미널이 Super 수정자를 보내는지 제가 재본 값이 없습니다.
  • "Cmd 키를 못 쓴다"는 뜻이 아닙니다. 지원하는 터미널을 쓰면 됩니다. 문서가 말하는 건 대부분이 안 보낸다는 것이고, 그래서 공유할 설정에는 쓰지 말라는 조언입니다.
  • 동작 목록 전체는 옮기지 않았습니다. 스무 개 넘는 영역에 걸쳐 있어서, 실제로 걸 때는 문서의 표를 직접 보시는 게 맞습니다.
  • 맥락 구성은 버전에 따라 바뀝니다. 문서가 특정 버전 이전에는 진단 화면용 맥락이 따로 있었다고 적어둔 걸 보면, 앞으로도 늘거나 줄 수 있습니다.

🗺️ AI 지출 전체 지도

단축키는 돈 얘기가 아닌 것 같지만, 잘못 눌러 다시 시키는 횟수는 그대로 비용입니다. 취소를 늦게 눌러 끝까지 돌아버린 요청도 마찬가지고요. 구독과 종량제 선택부터 캐시, 모델 조합, 상한 걸기까지 지금까지 확인한 것들을 일곱 단계 지도 한 장으로 묶어뒀습니다.

자주 묻는 것

Q. 눌러도 아무 일이 없으면 무엇부터 보나요?

순서를 정해두면 편합니다. ①Cmd·윈도우 키 계열을 썼는지 — 썼다면 그것부터 Ctrl이나 Alt로 바꿔 보세요. ②수정자와 함께 대문자를 적어놓고 Shift가 들어갈 거라 기대했는지. ③그 키가 두 키 조합의 앞 글자로 이미 쓰이고 있는지 — 이땐 눌렀을 때 다음 키를 기다리는 상태가 됩니다. ④화면 관리 도구를 쓰고 있는지. ⑤그래도 모르겠으면 진단 옵션을 켜고 실행해 경고 내용을 확인하는 겁니다. ①과 ③은 경고 없이 조용히 안 되는 쪽이라 순서를 앞에 뒀습니다.

Q. 에디터를 바꾸는 것과 비교하면 어떤가요?

결이 다릅니다. 에디터 쪽은 창 관리와 표시까지 통째로 바뀌고, 이건 같은 도구를 쓰면서 손만 맞추는 조정이죠. 다만 이번에 본 제약들이 터미널 기반 도구가 에디터 기반 도구와 조작감이 다른 이유를 어느 정도 설명해 줍니다 — 애초에 키가 도착하지 않는 경우가 있다는 것이니까요. 도구 자체를 바꿀지 고민 중이라면 코딩 에디터를 유형별로 비교한 글이 참고가 될 겁니다.

Q. 설정 파일이 또 늘어나는 건가요?

네, 별도 파일 하나가 더 생깁니다. 다만 성격이 조금 다릅니다 — 다른 설정과 달리 고치면 재시작 없이 바로 반영되고, 동작에만 관여할 뿐 권한이나 비용에는 손대지 않습니다. 이름과 개념이 헷갈리기 시작했다면 용어를 한 번 정리해 둔 글부터 보시는 걸 권합니다. 같은 단어가 여러 뜻으로 쓰이는 경우가 있어서, 그걸 먼저 갈라두면 설정 문서가 훨씬 잘 읽힙니다.

🖥️ 에디터 쪽에서도 같은 일이 벌어집니다 (8월 17일 추가)

이 글의 결론 하나가 못 바꾸는 키 넷 중 둘은 도구가 아니라 터미널 사정이라는 것이었습니다. 같은 구조가 에디터 확장에서도 그대로 반복됩니다. 문서에 맥에서 특정 단축키가 아무 반응이 없는 경우가 따로 적혀 있는데, 원인이 최신 맥의 시스템 게임 오버레이 단축키가 같은 조합을 기본으로 선점해 에디터에 닿기 전에 가로채는 것입니다. 확장을 아무리 손봐도 안 되는 게 당연한 자리죠. 해법도 두 갈래로 같습니다 — 시스템 설정에서 그 항목을 끄거나, 에디터 단축키 편집기에서 다른 키로 다시 걸거나. 다만 차이도 있습니다 — 터미널 쪽은 구분해서 보낼 방법이 아예 없어 포기해야 했지만, 여기는 시스템 설정을 끄면 되돌릴 수 있습니다. 자세한 건 에디터 확장을 정리한 글에 적었습니다.

✨ 오늘 확인한 것 정리

단축키는 파일 하나로 바꾸고 저장하면 바로 적용됩니다. 안 먹는 원인은 대개 셋인데 — Cmd·윈도우 키 계열은 대부분의 터미널이 보내지 않고, 수정자와 함께 쓴 대문자는 Shift를 뜻하지 않으며, 두 키 조합의 앞 글자는 흩어진 것을 전부 풀어야 되찾습니다. 셋 다 경고 없이 조용히 안 되는 쪽이라 먼저 의심할 값어치가 있습니다. 그리고 못 바꾸는 네 개 중 둘은 도구가 아니라 터미널 사정입니다.

※ 확인 경로(2026년 8월 17일 기준): code.claude.com/docs/en/keybindings. 설정 항목과 동작 이름, 화면 이름은 제가 우리말로 옮긴 것입니다.

※ 맥락 목록과 동작 목록은 버전에 따라 달라집니다. 실제로 걸 때는 문서의 표를 열어 이름을 그대로 복사해 쓰시는 편이 안전합니다.

반응형
Comments