Sesuaikan pintasan keyboard
Sesuaikan pintasan keyboard di Claude Code dengan file konfigurasi keybindings.
Claude Code mendukung pintasan keyboard yang dapat disesuaikan. Jalankan /keybindings untuk membuat atau membuka file konfigurasi Anda di ~/.claude/keybindings.json.
File konfigurasi
File konfigurasi pintasan keyboard adalah objek dengan array bindings. Setiap blok menentukan konteks dan peta dari keystroke ke tindakan.
Perubahan pada file pintasan keyboard secara otomatis terdeteksi dan diterapkan tanpa perlu memulai ulang Claude Code.
| Field | Deskripsi |
|---|---|
$schema |
URL JSON Schema opsional untuk penyelesaian otomatis editor |
$docs |
URL dokumentasi opsional |
bindings |
Array blok binding berdasarkan konteks |
Contoh ini mengikat Ctrl+E untuk membuka editor eksternal dalam konteks chat, dan membatalkan ikatan Ctrl+U:
{
"$schema": "https://www.schemastore.org/claude-code-keybindings.json",
"$docs": "https://code.claude.com/docs/id/keybindings",
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+e": "chat:externalEditor",
"ctrl+u": null
}
}
]
}
Konteks
Setiap blok binding menentukan konteks di mana binding berlaku:
| Konteks | Deskripsi |
|---|---|
Global |
Berlaku di mana saja dalam aplikasi |
Chat |
Area input chat utama |
Autocomplete |
Menu penyelesaian otomatis terbuka |
Settings |
Menu pengaturan |
Confirmation |
Dialog izin dan konfirmasi |
Tabs |
Komponen navigasi tab |
Help |
Menu bantuan terlihat |
Transcript |
Penampil transkrip |
HistorySearch |
Mode pencarian riwayat (Ctrl+R) |
Task |
Tugas latar belakang sedang berjalan |
ThemePicker |
Dialog pemilih tema |
Attachments |
Navigasi lampiran gambar dalam dialog pilih |
Footer |
Navigasi indikator footer (tugas, tim, diff, artefak) |
MessageSelector |
Pemilihan pesan dialog rewind dan ringkasan |
DiffDialog |
Navigasi penampil diff |
DiffPanel |
Panel diff terbuka |
ModelPicker |
Tingkat upaya pemilih model |
EffortSlider |
Effort slider dibuka oleh /effort |
Select |
Komponen select/list generik |
Plugin |
Dialog plugin (jelajahi, temukan, kelola) |
Agents |
Tampilan Agent (claude agents) |
Scroll |
Pengguliran percakapan dan pemilihan teks dalam mode fullscreen |
Sebelum v2.1.205, konteks Doctor dan tindakan doctor:fix ada untuk layar diagnostik /doctor.
Tindakan yang tersedia
Tindakan mengikuti format namespace:action, seperti chat:submit untuk mengirim pesan atau app:toggleTodos untuk menampilkan daftar tugas. Setiap konteks memiliki tindakan spesifik yang tersedia.
Tindakan aplikasi
Tindakan yang tersedia dalam konteks Global:
| Tindakan | Default | Deskripsi |
|---|---|---|
app:interrupt |
Ctrl+C | Batalkan operasi saat ini |
app:exit |
Ctrl+D | Keluar dari Claude Code. Tekan dua kali dalam 800ms untuk mengonfirmasi |
app:redraw |
(unbound) | Paksa terminal untuk digambar ulang |
app:toggleTodos |
Ctrl+T | Alihkan visibilitas daftar tugas Claude. Ini bukan tampilan background-task /tasks |
app:toggleTranscript |
Ctrl+O | Alihkan transkrip verbose |
Tindakan riwayat
Tindakan untuk menavigasi riwayat perintah:
| Tindakan | Default | Deskripsi |
|---|---|---|
history:search |
Ctrl+R | Buka pencarian riwayat |
history:previous |
Up | Item riwayat sebelumnya |
history:next |
Down | Item riwayat berikutnya |
Tindakan chat
Tindakan yang tersedia dalam konteks Chat:
| Tindakan | Default | Deskripsi |
|---|---|---|
chat:cancel |
Escape | Batalkan input saat ini |
chat:clearInput |
Ctrl+L | Paksa gambar ulang layar penuh, mempertahankan input dan percakapan |
chat:clearScreen |
Cmd+K | Sama dengan chat:clearInput. Lihat Hapus percakapan untuk cara Cmd+K berperilaku di iTerm2 dan Terminal.app |
chat:killAgents |
Ctrl+X Ctrl+K | Hentikan semua subagen latar belakang dalam sesi ini dan matikan balasan otomatis artefak untuk sisanya |
chat:cycleMode |
Shift+Tab* | Mode izin siklus |
chat:modelPicker |
Meta+P | Buka pemilih model |
chat:fastMode |
Meta+O | Alihkan mode cepat |
chat:thinkingToggle |
Meta+T | Alihkan pemikiran yang diperluas |
chat:submit |
Enter | Kirim pesan |
chat:queueSubmit |
Ctrl+X Enter | Kirim pesan, ditandai untuk menunggu giliran: saat Claude sedang bekerja, Claude Code antri dan tidak pernah mengganggu giliran. Tidak seperti chat:submit, ini mengirimkan draf bahkan saat saran pelengkapan otomatis terbuka. Memerlukan v2.1.247 atau lebih baru |
chat:sendNow |
Ctrl+Enter, Ctrl+X Ctrl+S | Ganggu giliran yang sedang berjalan sehingga pesan antri Anda, dan draf Anda bersama mereka, keluar segera. Ketika tidak ada yang berjalan, ini mengirimkan draf, dan dalam shell mode ini antri perintah tanpa mengganggu. Terminal yang tidak melaporkan kunci yang diperluas memberikan Ctrl+Enter sebagai Enter biasa, jadi Ctrl+X Ctrl+S adalah pengikatan yang berfungsi di terminal apa pun. Memerlukan v2.1.275 atau lebih baru |
chat:newline |
Ctrl+J | Sisipkan baris baru tanpa mengirim |
chat:undo |
Ctrl+_, Ctrl+Shift+- | Batalkan tindakan terakhir |
chat:externalEditor |
Ctrl+G, Ctrl+X Ctrl+E | Buka di editor eksternal. Pengiriman input tampilan agen juga mengikuti pengikatan pintasan keyboard tunggal tindakan ini |
chat:stash |
Ctrl+S | Simpan prompt saat ini |
chat:imagePaste |
Ctrl+V (Alt+V di Windows dan WSL) | Tempel gambar dari clipboard. Di WSL, kedua pintasan keyboard terikat secara default |
*Di Windows tanpa mode VT (Node <24.2.0/<22.17.0, Bun <1.2.23), default ke Meta+M.
Tindakan penyelesaian otomatis
Tindakan yang tersedia dalam konteks Autocomplete:
| Tindakan | Default | Deskripsi |
|---|---|---|
autocomplete:accept |
Tab | Terima saran |
autocomplete:dismiss |
Escape | Tutup menu |
autocomplete:previous |
Up | Saran sebelumnya |
autocomplete:next |
Down | Saran berikutnya |
Tindakan konfirmasi
Tindakan yang tersedia dalam konteks Confirmation:
| Tindakan | Default | Deskripsi |
|---|---|---|
confirm:yes |
Enter | Konfirmasi tindakan |
confirm:no |
Escape | Tolak tindakan |
confirm:previous |
Up | Opsi sebelumnya |
confirm:next |
Down | Opsi berikutnya |
confirm:nextField |
Tab | Bidang berikutnya |
confirm:previousField |
(unbound) | Bidang sebelumnya |
confirm:toggle |
Space | Alihkan pilihan |
confirm:cycleMode |
Shift+Tab* | Mode izin siklus. Pada prompt izin file, menutup bidang komentar yang terbuka; tanpa bidang terbuka, memilih opsi yang memungkinkan tindakan untuk sisa sesi, ketika prompt menawarkan opsi itu |
*Di Windows tanpa mode VT (Node <24.2.0/<22.17.0, Bun <1.2.23), default ke Meta+M.
Sebelum v2.1.257, tindakan confirm:toggleExplanation, terikat ke Ctrl+E secara default, menampilkan penjelasan perintah yang dihasilkan model pada prompt izin Bash dan PowerShell.
Dialog menggunakan confirm:yes dan confirm:no untuk menerima dan membatalkan bahkan ketika mereka tidak mengajukan pertanyaan ya-atau-tidak. Jika Anda mengikat huruf telanjang seperti y atau n dalam konteks ini, huruf juga bertindak pada dialog yang tidak pernah menampilkannya sebagai kunci. Dialog yang menampilkan y dan n sebagai kuncinya membaca huruf-huruf itu sendiri dan tidak memerlukan pengikatan.
Contoh ini mengikat y ke confirm:yes dan n ke confirm:no:
{
"bindings": [
{
"context": "Confirmation",
"bindings": {
"y": "confirm:yes",
"n": "confirm:no"
}
}
]
}
Sebelum v2.1.280, y juga terikat ke confirm:yes dan n ke confirm:no secara default. Jika Anda membuat keybindings.json Anda dengan /keybindings sebelum v2.1.280, file mencantumkan kedua pengikatan dan mereka tetap berlaku sampai Anda menghapus kedua baris itu.
Tindakan izin
Tindakan yang tersedia dalam konteks Confirmation untuk dialog izin:
| Tindakan | Default | Deskripsi |
|---|---|---|
permission:toggleDebug |
(unbound) | Alihkan info debug izin. Default sebelumnya dari Ctrl+D dihapus dalam v2.1.146 karena mengaburkan app:exit |
Tindakan transkrip
Tindakan yang tersedia dalam konteks Transcript:
| Tindakan | Default | Deskripsi |
|---|---|---|
transcript:toggleShowAll |
Ctrl+E | Alihkan tampilkan semua konten |
transcript:exit |
q, Ctrl+C, Escape | Keluar dari tampilan transkrip |
transcript:toggleShowAll berlaku dalam renderer klasik saja; dalam rendering fullscreen, penampil transkrip tidak menawarkan toggle tampilkan semua.
Tindakan pencarian riwayat
Tindakan yang tersedia dalam konteks HistorySearch:
| Tindakan | Default | Deskripsi |
|---|---|---|
historySearch:next |
Ctrl+R | Kecocokan berikutnya |
historySearch:accept |
Escape, Tab | Terima pilihan |
historySearch:cancel |
Ctrl+C | Batalkan pencarian |
historySearch:execute |
Enter | Jalankan perintah yang dipilih |
historySearch:cycleScope |
Ctrl+S | Siklus cakupan: sesi, proyek, di mana saja |
Default historySearch:next, historySearch:accept, historySearch:cancel, dan historySearch:execute berlaku untuk pencarian riwayat inline dalam renderer klasik, yang selalu mencari prompt dari semua proyek. historySearch:cycleScope hanya berlaku dalam rendering fullscreen, di mana Ctrl+R membuka dialog pencarian sebagai gantinya dan Ctrl+S mengubah cakupannya. Kunci lain dialog diperbaiki dan tidak dapat diubah: Enter atau Tab menempatkan kecocokan yang disorot dalam input prompt dan Esc membatalkan.
Tindakan tugas
Tindakan yang tersedia dalam konteks Task:
| Tindakan | Default | Deskripsi |
|---|---|---|
task:background |
Ctrl+B, Ctrl+X Ctrl+B | Tugas latar belakang saat ini. Akord Ctrl+X Ctrl+B menghindari konflik awalan tmux |
Tindakan tema
Tindakan yang tersedia dalam konteks ThemePicker:
| Tindakan | Default | Deskripsi |
|---|---|---|
theme:toggleSyntaxHighlighting |
Ctrl+T | Alihkan penyorotan sintaks |
Tindakan bantuan
Tindakan yang tersedia dalam konteks Help:
| Tindakan | Default | Deskripsi |
|---|---|---|
help:dismiss |
Escape | Tutup menu bantuan |
Tindakan tab
Tindakan yang tersedia dalam konteks Tabs:
| Tindakan | Default | Deskripsi |
|---|---|---|
tabs:next |
Tab, Right | Tab berikutnya |
tabs:previous |
Shift+Tab, Left | Tab sebelumnya |
Tindakan lampiran
Tindakan yang tersedia dalam konteks Attachments:
| Tindakan | Default | Deskripsi |
|---|---|---|
attachments:next |
Right | Lampiran berikutnya |
attachments:previous |
Left | Lampiran sebelumnya |
attachments:remove |
Backspace, Delete | Hapus lampiran yang dipilih |
attachments:exit |
Down, Escape | Keluar dari navigasi lampiran |
Tindakan footer
Tindakan yang tersedia dalam konteks Footer:
| Tindakan | Default | Deskripsi |
|---|---|---|
footer:next |
Right | Item footer berikutnya |
footer:previous |
Left | Item footer sebelumnya |
footer:up |
Up | Navigasi ke atas dalam footer (batalkan pilihan di atas) |
footer:down |
Down | Navigasi ke bawah dalam footer |
footer:openSelected |
Enter | Buka item footer yang dipilih |
footer:clearSelection |
Escape | Hapus pilihan footer |
footer:dismiss |
Backspace, Delete | Hapus tautan artefak yang dipilih dari footer; artefak yang dipublikasikan itu sendiri tidak terpengaruh. Pada baris footer lainnya, kunci ini tidak memiliki efek. Memerlukan v2.1.217 atau lebih baru |
Saat item footer dipilih, seperti baris dalam panel agen di bawah prompt, Enter membukanya bahkan ketika Anda mengikat ulang Enter dalam konteks Chat ke chat:queueSubmit atau chat:newline.
Pengikatan Chat pada kunci yang konteks Footer tidak ikat, seperti Shift+Tab untuk chat:cycleMode, terus bekerja saat item dipilih.
Tindakan pemilih pesan
Tindakan yang tersedia dalam konteks MessageSelector:
| Tindakan | Default | Deskripsi |
|---|---|---|
messageSelector:up |
Up, K, Ctrl+P | Naik dalam daftar |
messageSelector:down |
Down, J, Ctrl+N | Turun dalam daftar |
messageSelector:top |
Ctrl+Up, Shift+Up, Meta+Up, Shift+K | Lompat ke atas |
messageSelector:bottom |
Ctrl+Down, Shift+Down, Meta+Down, Shift+J | Lompat ke bawah |
messageSelector:select |
Enter | Pilih pesan |
Tindakan diff
Tindakan yang tersedia dalam konteks DiffDialog:
| Tindakan | Default | Deskripsi |
|---|---|---|
diff:dismiss |
Escape | Tutup penampil diff; dari tampilan detail, kembali ke daftar file sebagai gantinya |
diff:previousSource |
Left | Sumber diff sebelumnya |
diff:nextSource |
Right | Sumber diff berikutnya |
diff:previousFile |
Up, K | File sebelumnya dalam daftar file; gulir ke atas satu baris dalam tampilan detail |
diff:nextFile |
Down, J | File berikutnya dalam daftar file; gulir ke bawah satu baris dalam tampilan detail |
diff:viewDetails |
Enter | Lihat detail diff |
diff:back |
(unbound) | Kembali dalam penampil diff. Escape melakukan tindakan kembali melalui diff:dismiss. Default sebelumnya dari Left dalam tampilan detail dihapus dalam v2.1.203 |
Tampilan detail diff juga mengikat kunci gaya pager ke tindakan scroll standar. Pengikatan ini adalah bagian dari konteks DiffDialog dan hanya berlaku dalam tampilan detail; default konteks Scroll yang tercantum di bawah Tindakan scroll tidak berubah.
| Tindakan | Default | Deskripsi |
|---|---|---|
scroll:pageUp |
PageUp | Gulir ke atas setengah viewport |
scroll:pageDown |
PageDown | Gulir ke bawah setengah viewport |
scroll:fullPageUp |
Shift+Space, B | Gulir ke atas viewport penuh |
scroll:fullPageDown |
Space | Gulir ke bawah viewport penuh |
scroll:top |
G, Home | Lompat ke atas |
scroll:bottom |
Shift+G, End | Lompat ke bawah |
Tindakan panel diff
Tindakan untuk panel diff yang /diff buka dalam rendering fullscreen. app:cycleDiffBase berada dalam konteks DiffPanel, yang aktif saat panel terbuka; yang lainnya adalah Global. Panel memerlukan Claude Code v2.1.260 atau lebih baru.
| Tindakan | Default | Deskripsi |
|---|---|---|
app:toggleReplTab |
(unbound) | Buka atau tutup panel diff, sama dengan menjalankan /diff |
app:cycleDiffBase |
Ctrl+X B | Siklus basis perbandingan panel: sesi ini, tidak berkomitmen, kemudian cabang |
app:diffFileListUp |
Ctrl+Up, Meta+Up | Gulir daftar file panel ke atas saat meluap |
app:diffFileListDown |
Ctrl+Down, Meta+Down | Gulir daftar file panel ke bawah saat meluap |
app:toggleDiffNoiseFilter |
(unbound) | Tampilkan atau sembunyikan file uji dan yang dihasilkan dalam panel |
app:toggleDiffPreSession |
(unbound) | Perluas atau tutup perubahan dari sebelum sesi ini |
Tindakan pemilih model
Tindakan yang tersedia dalam konteks ModelPicker:
| Tindakan | Default | Deskripsi |
|---|---|---|
modelPicker:decreaseEffort |
Left | Kurangi tingkat upaya |
modelPicker:increaseEffort |
Right | Tingkatkan tingkat upaya |
modelPicker:thisSessionOnly |
s | Terapkan model yang disorot ke sesi ini saja |
Tindakan effort slider
Tindakan yang tersedia dalam konteks EffortSlider, slider yang terbuka saat Anda menjalankan /effort tanpa argumen. Kunci Left, Right, Enter, dan Escape slider tidak dapat diubah.
| Tindakan | Default | Deskripsi |
|---|---|---|
effortSlider:thisSessionOnly |
s | Terapkan tingkat upaya yang difokuskan ke sesi ini saja. Memerlukan v2.1.257 atau lebih baru |
Tindakan pilih
Tindakan yang tersedia dalam konteks Select:
| Tindakan | Default | Deskripsi |
|---|---|---|
select:next |
Down, J, Ctrl+N | Opsi berikutnya |
select:previous |
Up, K, Ctrl+P | Opsi sebelumnya |
select:pageUp |
PageUp | Naik satu halaman opsi |
select:pageDown |
PageDown | Turun satu halaman opsi |
select:first |
Home | Opsi pertama |
select:last |
End | Opsi terakhir |
select:accept |
Enter | Terima pilihan |
select:cancel |
Escape | Batalkan pilihan |
Claude Code menerapkan pengikatan select:pageUp, select:pageDown, select:first, dan select:last Anda dalam menu /skills. Dalam sebagian besar daftar lainnya, seperti pemilih /model, pengikatan select:first dan select:last Anda berlaku. PageUp dan PageDown halaman melalui opsi dalam daftar-daftar itu terlepas dari pengikatan Anda.
Sebelum v2.1.280, daftar-daftar lain itu mengabaikan Home, End, dan pengikatan select:first dan select:last Anda.
Tindakan plugin
Tindakan yang tersedia dalam konteks Plugin:
| Tindakan | Default | Deskripsi |
|---|---|---|
plugin:toggle |
Space | Alihkan pemilihan plugin |
plugin:install |
I | Instal plugin yang dipilih |
plugin:favorite |
F | Tandai plugin yang dipilih sebagai favorit sehingga diurutkan di dekat bagian atas tab Installed |
Tindakan pengaturan
Tindakan yang tersedia dalam konteks Settings. Tindakan select:accept dan confirm:no digunakan kembali dari konteks Select dan Confirmation dengan perilaku khusus Settings: perubahan diterapkan ke setiap pengaturan segera setelah Anda mengubahnya, jadi Escape menutup panel dengan perubahan Anda yang sudah disimpan daripada menolak.
| Tindakan | Default | Deskripsi |
|---|---|---|
settings:search |
/ | Masuk mode pencarian |
settings:retry |
R | Coba muat ulang data penggunaan saat terjadi kesalahan |
select:accept |
Enter, Space | Ubah pengaturan yang dipilih atau buka submenu-nya |
confirm:no |
Escape | Tutup panel. Perubahan sudah disimpan |
Tindakan agen
Tindakan yang tersedia dalam konteks Agents, yang berlaku dalam tampilan agen, dibuka dengan claude agents. Memerlukan v2.1.257 atau lebih baru.
| Tindakan | Default | Deskripsi |
|---|---|---|
agents:switchView |
Ctrl+S | Alihkan pengelompokan sesi antara state dan direktori |
agents:togglePin |
Ctrl+T | Pin atau unpin sesi yang dipilih |
Saat tampilan agen terbuka, Claude Code menggunakan pengikatan Agents untuk kunci apa pun yang konteks Agents ikat, dan mengabaikan pengikatan Chat atau Global pada kunci yang sama. Misalnya, menekan Ctrl+S dalam tampilan agen mengalihkan pengelompokan sesi daripada memicu chat:stash default.
Pintasan editor eksternal pengiriman input bukan tindakan Agents. Tampilan agen mengikuti pengikatan chat:externalEditor konteks Chat, Ctrl+G secara default.
Pengikatan dipecat pada keystroke tunggal dalam tampilan agen, jadi akord Ctrl+X Ctrl+E yang terikat ke chat:externalEditor tidak membuka editor di sana.
Tindakan suara
Tindakan yang tersedia dalam konteks Chat ketika dikte suara diaktifkan:
| Tindakan | Default | Deskripsi |
|---|---|---|
voice:pushToTalk |
Space | Tahan atau ketuk tergantung pada mode /voice |
Tindakan scroll
Tindakan yang tersedia dalam konteks Scroll ketika rendering fullscreen diaktifkan:
| Tindakan | Default | Deskripsi |
|---|---|---|
scroll:lineUp |
wheelup |
Gulir ke atas satu baris. Pengguliran roda mouse memicu tindakan ini |
scroll:lineDown |
wheeldown |
Gulir ke bawah satu baris. Pengguliran roda mouse memicu tindakan ini |
scroll:pageUp |
PageUp | Gulir ke atas setengah tinggi viewport |
scroll:pageDown |
PageDown | Gulir ke bawah setengah tinggi viewport |
scroll:top |
Ctrl+Home | Lompat ke awal percakapan |
scroll:bottom |
Ctrl+End | Lompat ke pesan terbaru dan aktifkan kembali auto-follow |
scroll:halfPageUp |
(unbound) | Gulir ke atas setengah tinggi viewport. Perilaku yang sama dengan scroll:pageUp, disediakan untuk rebind gaya vi |
scroll:halfPageDown |
(unbound) | Gulir ke bawah setengah tinggi viewport. Perilaku yang sama dengan scroll:pageDown, disediakan untuk rebind gaya vi |
scroll:fullPageUp |
(unbound) | Gulir ke atas tinggi viewport penuh |
scroll:fullPageDown |
(unbound) | Gulir ke bawah tinggi viewport penuh |
selection:copy |
Ctrl+Shift+C / Cmd+C | Salin teks yang dipilih ke clipboard |
selection:clear |
(unbound) | Hapus pemilihan teks aktif. Memerlukan v2.1.234 atau lebih baru |
selection:extendLeft |
Shift+Left | Perluas pemilihan aktif satu kolom ke kiri |
selection:extendRight |
Shift+Right | Perluas pemilihan aktif satu kolom ke kanan |
selection:extendUp |
Shift+Up | Perluas pemilihan aktif satu baris ke atas. Menggulir viewport ketika pemilihan mencapai tepi atas |
selection:extendDown |
Shift+Down | Perluas pemilihan aktif satu baris ke bawah. Menggulir viewport ketika pemilihan mencapai tepi bawah |
selection:extendLineStart |
Shift+Home | Perluas pemilihan aktif ke awal baris |
selection:extendLineEnd |
Shift+End | Perluas pemilihan aktif ke akhir baris |
Sintaks keystroke
Pengubah
Gunakan tombol pengubah dengan pemisah +:
ctrlataucontrol- Tombol Controlshift- Tombol Shiftalt,opt,option, ataumeta- Tombol Alt pada Windows dan Linux, tombol Option pada macOScmd,command,super, atauwin- Tombol Command pada macOS, tombol Windows pada Windows, tombol Super pada Linux
Grup cmd hanya terdeteksi di terminal yang melaporkan pengubah Super, seperti yang mendukung protokol keyboard Kitty atau mode modifyOtherKeys xterm. Sebagian besar terminal tidak mengirimnya, jadi gunakan ctrl atau meta untuk binding yang ingin Anda gunakan di mana saja.
Sebagai contoh:
ctrl+k Ctrl + K
shift+tab Shift + Tab
meta+p Option + P pada macOS, Alt + P di tempat lain
ctrl+shift+c Pengubah ganda
Huruf besar
Claude Code mengurai nama kunci tanpa memperhatikan huruf besar/kecil, jadi K adalah binding yang sama dengan k dan ctrl+K sama dengan ctrl+k. Untuk mengikat Shift dan huruf, tulis shift+k.
Tata letak keyboard non-US
Tulis nama kunci dari pintasan Ctrl sebagai karakter Latin bahkan ketika tata letak keyboard aktif Anda mengetik karakter lain.
Bagaimana Claude Code mencocokkan kunci yang Anda tekan dengan binding tergantung pada jenis tata letak:
- Di bawah tata letak non-Latin seperti Cyrillic, Claude Code mencocokkan pintasan Ctrl berdasarkan posisi kunci tata letak US ketika terminal menggunakan protokol keyboard Kitty dan melaporkan posisi tersebut. Di terminal seperti itu, dengan tata letak Rusia aktif, menekan Ctrl dan tombol fisik W memicu
ctrl+w. Di terminal yang tidak melaporkan posisi, Claude Code mencocokkan apa pun yang dikirim terminal untuk penekanan kunci: kode kontrol ASCII memicu pintasan Latin, dan penekanan kunci yang tiba sebagai karakter Cyrillic tidak cocok dengan binding apa pun - Di bawah tata letak yang mengatur ulang huruf Latin, seperti AZERTY, Claude Code mencocokkan huruf yang diketik kunci, jadi menekan Ctrl dan kunci berlabel A memicu
ctrl+a
Sebelum v2.1.247, menekan pintasan Ctrl di bawah tata letak non-Latin tidak memicu binding-nya di terminal yang menggunakan protokol keyboard Kitty, seperti Ghostty, Kitty, WezTerm, dan iTerm2.
Chord
Chord adalah urutan keystroke yang dipisahkan oleh spasi:
ctrl+k ctrl+s Tekan Ctrl+K, lepaskan, lalu Ctrl+S
Tekan setiap keystroke dalam 3 detik setelah yang sebelumnya. Jika Anda menunggu lebih lama, Claude Code membatalkan chord dan menampilkan pemberitahuan singkat yang mengatakan demikian.
Tombol khusus
escapeatauesc- Tombol Escapeenterataureturn- Tombol Entertab- Tombol Tabspace- Bilah spasiup,down,left,right- Tombol panahpageup,pagedown- Tombol Page Up dan Page Downhome,end- Tombol Home dan Endbackspace,delete- Tombol hapuswheelup,wheeldown- Peristiwa scroll roda mouse
Batalkan pintasan default
Atur tindakan ke null untuk membatalkan ikatan pintasan default:
{
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+s": null
}
}
]
}
Ini juga berfungsi untuk binding chord. Membatalkan setiap chord yang berbagi awalan membebaskan awalan itu untuk digunakan sebagai binding tombol tunggal. Sebuah chord dalam konteks aktif apa pun menjaga awalannya tetap terlindungi, jadi Anda harus membatalkan setiap chord dalam konteks yang mendefinisikannya.
Claude Code mengikat chord default ini pada awalan ctrl+x: ctrl+x ctrl+k, ctrl+x ctrl+e, ctrl+x enter, ctrl+x ctrl+a, ctrl+x ctrl+s, dan ctrl+x tab di Chat, ctrl+x ctrl+b di Task, dan ctrl+x b di DiffPanel. Chord ctrl+x enter memerlukan v2.1.247 atau lebih baru, ctrl+x b, ctrl+x ctrl+a, dan ctrl+x tab memerlukan v2.1.260 atau lebih baru, dan ctrl+x ctrl+s memerlukan v2.1.275 atau lebih baru.
Untuk mengklaim kembali ctrl+x itu sendiri sebagai binding tombol tunggal, batalkan semuanya:
{
"bindings": [
{
"context": "Task",
"bindings": {
"ctrl+x ctrl+b": null
}
},
{
"context": "DiffPanel",
"bindings": {
"ctrl+x b": null
}
},
{
"context": "Chat",
"bindings": {
"ctrl+x ctrl+k": null,
"ctrl+x ctrl+e": null,
"ctrl+x enter": null,
"ctrl+x ctrl+a": null,
"ctrl+x ctrl+s": null,
"ctrl+x tab": null,
"ctrl+x": "chat:newline"
}
}
]
}
Jika Anda membatalkan beberapa tetapi tidak semua chord pada awalan, menekan awalan masih memasuki mode chord-wait untuk binding yang tersisa.
Pintasan yang dicadangkan
Pintasan ini tidak dapat diikat ulang:
| Pintasan | Alasan |
|---|---|
| Ctrl+C | Interrupt/cancel yang dikodekan keras |
| Ctrl+D | Exit yang dikodekan keras |
| Ctrl+M | Claude Code selalu menerimanya sebagai Enter |
| Ctrl+[ | Claude Code selalu menerimanya sebagai Escape. Di terminal yang menggunakan protokol keyboard Kitty, ini memerlukan v2.1.242 atau lebih baru |
| Ctrl+I | Claude Code selalu menerimanya sebagai Tab |
| Ctrl+H | Mengirimkan byte backspace ASCII. Bagaimana Claude Code membacanya di Windows bergantung pada terminal Anda dan variabel lingkungan CLAUDE_CODE_BS_AS_CTRL_BACKSPACE |
| Caps Lock | Tidak dikirimkan ke aplikasi terminal |
Konflik terminal
Beberapa pintasan mungkin bertentangan dengan multiplexer terminal:
| Pintasan | Konflik |
|---|---|
| Ctrl+B | Awalan tmux (tekan dua kali untuk mengirim) |
| Ctrl+A | Awalan GNU screen |
| Ctrl+Z | Suspend proses Unix (SIGTSTP) |
Interaksi mode vim
Ketika mode vim diaktifkan melalui /config → Editor mode, keybindings dan mode vim beroperasi secara independen:
- Mode vim menangani input pada tingkat input teks (gerakan kursor, mode, motions)
- Keybindings menangani tindakan pada tingkat komponen (alihkan todos, kirim, dll.)
- Tombol Escape dalam mode vim beralih dari INSERT ke mode NORMAL; itu tidak memicu
chat:cancel - Sebagian besar pintasan Ctrl+key melewati mode vim ke sistem keybinding
- Kunci vim tidak dapat dipetakan ulang melalui file keybindings. Untuk memetakan urutan mode INSERT dua kunci seperti
jjke Escape, gunakan pengaturanvimInsertModeRemaps - Dalam mode NORMAL vim,
?menampilkan menu bantuan (perilaku vim) - Dalam mode NORMAL vim,
/membuka pencarian riwayat, sama seperti Ctrl+R dalam mode standar
Validasi
Claude Code memvalidasi pintasan keyboard Anda dan menampilkan peringatan untuk:
- Parse errors (JSON atau struktur tidak valid)
- Nama konteks tidak valid
- Nilai action tidak valid, seperti action yang bukan string atau
null - Nama action yang tidak dikenal, seperti typo dari action yang terdaftar. Claude Code melewati binding dan mempertahankan binding default apa pun untuk kunci tersebut. Sebelum v2.1.246, binding dengan nama action yang tidak dikenal secara diam-diam menonaktifkan kunci tersebut
- Konflik pintasan yang dicadangkan
- Binding duplikat dalam konteks yang sama
Claude Code melaporkan peringatan ketika file dimuat dan menulis masing-masing ke log debug. Mulai Claude Code dengan --debug untuk melihat detailnya.