Codex CLI 단축키 설정: /keymap으로 Toggle Vim Mode에 F6을 처음 연결하는 법
TL;DR
Codex CLI 입력창이 대기 상태일 때
/keymap
을 실행하면 TUI 단축키를 검색하고 바꾸는 Keymap 화면이 열립니다.
이번 첫 설정은 현재 unbound인
Global
의
Toggle Vim Mode
에
F6
을 연결합니다. 키를 누르는 순간 root override가 저장되므로 별도 저장 버튼을 찾지 말고 완료 메시지와
config.toml
을 확인해야 합니다.
마지막으로 일반 입력 화면에서
F6
을 두 번 눌러 Vim 모드가 켜졌다 꺼지는지 봅니다. 실제 작업 중인 설정 파일은 변경 전 사본과 diff를 확인한 뒤 사람이 승인합니다.
핵심 3줄 요약
핵심 1
Codex CLI의 idle composer에서
/keymap
을 실행합니다.
핵심 2
Global
→
Toggle Vim Mode
→
Set key
순서로 들어가
F6
을 누릅니다.
핵심 3
tui.keymap.global.toggle_vim_mode
저장값과 Vim 모드의 켜기·끄기를 함께 확인합니다.
이 글에서 다룰 내용
-
/keymap이 여는 설정 화면과 쓰기 좋은 때 -
Toggle Vim Mode에F6한 개를 연결하는 순서 - 완료 메시지,
tui.keymap저장값, 실제 동작을 나눠 확인하는 법 - 기존 단축키를 건드리지 않는 검토 프롬프트와 되돌리기 경계
Codex CLI
/keymap
은 무엇인가
터미널에서 Codex를 쓰다 보면 자주 여는 기능에 익숙한 키를 붙이고 싶을 때가 있습니다. 이때 설정 파일의 키 이름을 추측해 직접 편집하기보다 현재 설치본이 보여 주는 action과 context를 먼저 확인하는 편이 안전합니다.
/keymap
은 Codex CLI TUI의 키보드 단축키를 조회하고 바인딩을 저장하는 대화형 설정 기능입니다. 공식 문서에 따르면 변경한 키는 active keymap에 반영되고
config.toml
의
tui.keymap
에 저장됩니다.
공식 문서는 binding 이름의 예로
ctrl-a
,
shift-enter
,
page-down
을 제시합니다. context별 binding은
tui.keymap.global
보다 우선합니다. 빈 binding 목록은 해당 action을 unbind합니다.
언제 이 설정이 잘 맞는가
/keymap
은 Codex TUI에서 같은 동작을 자주 반복하고 기본 키가 없거나 손에 익지 않을 때 유용합니다. 이번 예시는 현재 설치본에서 unbound로 표시된
Global
의
Toggle Vim Mode
에
F6
을 붙입니다.
F6
은 공식 권장 키가 아니라 첫 실험을 위한 선택입니다. 실제 환경에서는 Keymap 화면에 표시되는 기존 binding과 충돌 여부를 먼저 확인해야 합니다.
Vim 입력 방식을 쓰지 않는다면 이 action을 억지로 설정할 필요가 없습니다. 같은 절차로 필요한 action을 찾되, 첫 변경은 비민감한 한 항목으로 제한하세요.
시작 전에 확인할 경계
/keymap
은 운영체제 셸 명령이 아닙니다. Codex CLI를 실행한 뒤 화면 아래 입력창에 넣는 slash action입니다.
현재 turn이나 startup 작업이 진행 중이면 설정 화면이 바로 열리지 않을 수 있습니다. 설치된
codex-cli 0.144.6
격리 실험에서는 completion에
/keymap remap TUI shortcuts
가 나타났지만 startup task 중에는 disabled 메시지가 표시됐습니다. 입력창이 대기 상태로 돌아온 뒤 base token
/keymap
을 다시 실행하자 Keymap 화면이 열렸습니다.
공식 문서는 이 기능의 요금제, 지역, 언어, 운영체제별 최소 조건을 따로 명시하지 않습니다.
/keymap
completion이나 Keymap 화면이 보이지 않으면 현재 설치 버전과 최신 공식 문서를 확인하세요. 확인되지 않은 업데이트·재시작·설정 경로를 임의로 적용하지 않습니다.
/keymap
으로 F6을 연결하는 순서
1. idle composer에서
/keymap
을 입력합니다
Codex CLI 아래 입력창이 대기 상태인지 확인합니다.
/keymap
을 입력하되 바로 Enter를 누르기 전에 completion row가 나타나는지 봅니다.
현재 설치본에서는
/keymap remap TUI shortcuts
가 표시됐습니다. 이 row가 없거나
no matches
가 보이면 평범한 모델 요청으로 전송하지 말고 입력을 지운 뒤 현재 버전의 지원 여부부터 확인하세요.
2.
Global
의
Toggle Vim Mode
를 고릅니다
Enter를 눌러 Keymap 화면을 엽니다. action 목록에서
Toggle Vim Mode
를 찾은 뒤 context가
Global
인지 확인합니다.
격리 실험에서 이 항목은 unbound로 표시됐습니다. 이미 custom key가 있거나 같은
F6
이 다른 action에 쓰이고 있다면 새 binding을 추가하기 전에 기존 상태를 기록합니다.
3.
Set key
를 선택하고
F6
을 누릅니다
Toggle Vim Mode · Global
의 편집 화면에서
Set key
를 선택합니다. 새 키를 capture하는 상태가 열리면
F6
을 한 번 누릅니다.
현재 설치본은 곧바로
Remapped global.toggle_vim_mode to f6.
메시지를 표시했습니다. 별도 저장 버튼이나 적용 버튼은 나타나지 않았습니다. Keymap 화면이 다르다면 현재 UI 안내를 우선하세요. 보이지 않는 저장 단계는 추측하지 않습니다.
4.
config.toml
의 root override를 확인합니다
설정 화면의 성공 메시지만으로 끝내지 않습니다. 기존
config.toml
의 사본을 내부 검토용으로 보존합니다. 변경 전후 diff에는 단축키 한 항목만 추가됐는지 확인하세요. 이 사본은 사용자가 만드는 안전 절차이며 Codex가 자동 생성하는 백업이 아닙니다.
codex-cli 0.144.6
격리 실험에서는 다음 값이 저장됐습니다.
[tui.keymap.global]
toggle_vim_mode = "f6"
공식 문서가 보장하는 핵심은 custom binding이
tui.keymap
에 기록된다는 점입니다. 수동 편집으로 다른 keymap 항목을 덮어쓰지 마세요. picker가 만든 현재 값을 기준으로 검토합니다.
5.
F6
으로 켜기와 끄기를 확인합니다
Keymap 화면을 닫고 일반 입력 화면으로 돌아옵니다. 민감하지 않은 테스트 문구만 둔 상태에서
F6
을 한 번 누릅니다.
격리 실험에서는
Vim mode enabled.
메시지와
Vim: Normal
상태가 나타났습니다.
F6
을 다시 누르자
Vim mode disabled.
가 표시됐습니다.
완료 기준은 binding 저장과 실제 토글을 모두 확인하는 것입니다. 이 실험에서는 model turn, 프로젝트 파일 생성, 실제 사용자 설정 변경이 없었습니다.
그대로 복사해 쓸 검토 프롬프트
목표: Codex CLI의 현재 keymap에서 Global > Toggle Vim Mode에 F6을 연결하기 전 검토안을 만들어 줘.
허용 입력: 현재 /keymap 화면의 action·context·binding, 내 config.toml의 tui.keymap 부분, Codex 공식 CLI command 문서.
제외 입력: 프로젝트 소스, 대화 transcript, 인증정보, .env, 다른 action의 기존 binding, 운영체제·터미널 설정 변경.
출력 형식: 1) 현재 binding 2) 제안 변경 한 항목 3) 기존 키와의 충돌 여부 4) 예상 config diff 5) 설정 후 확인 순서 6) 되돌리기 순서.
완료 기준: 기존 keymap을 보존할 것. Global의 toggle_vim_mode 한 항목만 F6으로 연결하고 저장값과 켜기·끄기 확인 지점을 제시할 것.
추정 금지: 보이지 않는 기존 binding, 지원 플랫폼, 저장 위치, 터미널 키 전달 방식, 재시작 필요 여부를 만들어 내지 말 것.
승인 지점: 실제 /keymap 변경 또는 config.toml 수정 전에 전체 diff와 되돌리기 대상을 보여 주고 사람의 승인을 기다릴 것.
이 프롬프트는 설정을 대신 실행시키려는 것이 아닙니다. 현재 상태를 한 항목으로 좁혀 검토합니다. 변경은 사람이 Keymap 화면에서 승인하기 위한 장치입니다.
실전 활용 팁
Keymap은 action 이름만 보지 말고 context까지 함께 읽어야 합니다. 공식 문서상 context별 binding은 global binding보다 우선하므로, 같은 물리 키라도 화면 상태에 따라 다른 action이 실행될 수 있습니다.
처음에는 unbound action 하나를 고르면 기존 동작을 덮어쓸 위험을 줄일 수 있습니다. 완료 뒤에는
Customized
그룹과 config diff를 함께 보면 내가 만든 override를 다시 찾기 쉽습니다.
Open Transcript
,
Copy
,
Clear Terminal
처럼 이미 키가 붙은 action은 첫 실험 대상으로 피하는 편이 낫습니다. 꼭 바꿔야 한다면 현재 키, 새 키, 되돌릴 키를 먼저 기록하세요.
주의할 점
-
/keymap은 Codex CLI 입력창에서 실행합니다. 셸에 입력하지 않습니다. - current turn이나 startup task가 끝나기 전에 Enter를 반복하지 않습니다.
-
F6은 이 글의 격리 실험용 선택이며 모든 환경의 권장 키라는 뜻이 아닙니다. - 기존 binding이 보이면 새 키를 덮어쓰기 전에 action과 context를 기록합니다.
- context별 binding은 global보다 우선할 수 있으므로 같은 키의 다른 context도 확인합니다.
- config 전체를 교체하지 말고
tui.keymap의 실제 diff만 검토합니다. - 삭제, 다른 action 변경, 운영체제·터미널 설정 수정은 첫 완료 범위에서 제외합니다.
자주 묻는 질문
/keymap
은 셸에서 실행하나요?
아닙니다. Codex CLI의 대화형 입력창에 넣는 slash action입니다. Enter 전 completion에서
/keymap remap TUI shortcuts
가 인식되는지 먼저 확인하세요.
F6
을 누른 뒤 별도 저장 버튼이 필요한가요?
codex-cli 0.144.6
격리 실험에서는
Set key
다음에
F6
을 누르자 즉시 remapped 메시지가 나오고
config.toml
에 root override가 기록됐습니다. UI가 다르면 현재 화면과 공식 문서를 우선하세요.
저장된 값은 어디에서 확인하나요?
공식 문서에 따르면 custom binding은
config.toml
의
tui.keymap
에 기록됩니다. 이번 설치본에서는
[tui.keymap.global]
아래
toggle_vim_mode = "f6"
으로 확인됐습니다.
원래대로 되돌리려면 어떻게 하나요?
/keymap
에서 같은
Toggle Vim Mode
action을 다시 열어 현재 설치본이 제공하는 custom binding 제거 항목을 확인합니다. 제거 전후
tui.keymap
diff를 비교한 뒤 다른 action이나 기존 binding이 그대로인지 사람이 승인합니다. 빈 binding 목록은 action을 unbind하는 의미이므로 직접 빈 값을 넣는 것과 root override 제거를 같은 동작으로 보지 마세요.
출처
마무리
Codex CLI 단축키 설정의 안전한 시작점은 idle composer의
/keymap
입니다.
Global
의
Toggle Vim Mode
를 열어
F6
한 키만 capture한 뒤, remapped 메시지와
tui.keymap
diff를 확인하세요.
마지막으로 실제 입력 화면에서 Vim 모드가 켜졌다 꺼지는지 확인하면 첫 설정이 끝납니다. picker에 없는 action이나 보이지 않는 저장 단계는 추측하지 마세요. 현재 설치본의 화면과 공식 문서를 기준으로 한 항목씩 바꾸는 것이 핵심입니다.
