- Shift+Enter mengirimkan alih-alih menyisipkan baris baru
- Pintasan tombol Option tidak melakukan apa pun di macOS
- Tidak ada suara atau peringatan saat Claude selesai
- Anda menjalankan Claude Code di dalam tmux
- Backspace menghapus seluruh kata di Windows
- Tampilan berkedip atau scrollback melompat
- Anda ingin kunci Vim dalam prompt
Masukkan prompt multiline
Menekan Enter mengirimkan pesan Anda. Untuk menambahkan jeda baris tanpa mengirimkan, tekan Ctrl+J, atau ketik\ lalu tekan Enter. Keduanya berfungsi di setiap terminal tanpa setup.
Di sebagian besar terminal Anda juga dapat menekan Shift+Enter, tetapi dukungan bervariasi menurut emulator terminal:
Untuk VS Code, Cursor, Devin Desktop, Alacritty sebelum 0.16, dan Zed,
/terminal-setup menulis pintasan keyboard Shift+Enter ke dalam file konfigurasi terminal. Pada run pertama Anda melihat konfirmasi seperti Installed VSCode terminal Shift+Enter key binding. Binding yang ada dibiarkan tetap ada; jika Anda melihat pesan seperti VSCode terminal Shift+Enter key binding already configured, tidak ada perubahan yang dilakukan. Jalankan /terminal-setup langsung di terminal host daripada di dalam tmux atau screen, karena perlu menulis ke konfigurasi terminal host.
Di VS Code, Cursor, dan Devin Desktop, /terminal-setup juga memperbarui dua pengaturan editor: mengatur terminal.integrated.gpuAcceleration ke "off" untuk mencegah teks yang rusak di terminal terintegrasi, dan mengatur terminal.integrated.mouseWheelScrollSensitivity untuk scrolling yang lebih halus di fullscreen mode. Untuk membatalkan perubahan akselerasi GPU, atur kembali ke "auto" dan muat ulang jendela editor.
Di Zed, /terminal-setup memperbarui keymap.json Anda di tempat:
- Jika keymap sudah memiliki binding dan tidak ada satupun yang merupakan Terminal
shift-enter, Claude Code terlebih dahulu membuat backup ke salinan di direktori yang sama, sepertikeymap.json.1a2b3c4d.bak, kemudian menggabungkan binding Shift+Enter ke dalam keymap Anda, menjaga pintasan keyboard dan komentar lainnya - Jika Claude Code tidak dapat membaca atau mengurai keymap, tidak dapat membuat backup, atau tidak dapat memverifikasi hasil yang digabungkan, file dibiarkan tidak berubah dan blok keybinding dicetak untuk ditambahkan sendiri
chat:newline dan chat:submit di file keybindings Anda.
Aktifkan pintasan keyboard Option di macOS
Beberapa pintasan keyboard Claude Code menggunakan tombol Option, seperti Option+Enter untuk baris baru atau Option+P untuk beralih model. Di macOS, sebagian besar terminal tidak mengirimkan Option sebagai pengubah secara default, sehingga pintasan ini tidak berfungsi sampai Anda mengaktifkannya. Pengaturan terminal untuk ini biasanya berlabel “Use Option as Meta Key”; Meta adalah nama Unix historis untuk tombol yang sekarang berlabel Option atau Alt.- Apple Terminal
- iTerm2
- VS Code
Buka Settings → Profiles → Keyboard dan centang “Use Option as Meta Key”.Jika Anda menerima prompt pengaturan terminal first-run Claude Code, ini sudah selesai. Prompt tersebut menjalankan
/terminal-setup untuk Anda, yang mengaktifkan Option sebagai Meta dan mematikan bel audibel di profil Apple Terminal Anda.Dalam mode pembaca layar, /terminal-setup membiarkan pengaturan bel tidak berubah sehingga bel terminal tetap audibel. Jika penjalankan sebelumnya mematikan bel, aktifkan kembali di Settings → Profiles → Advanced → “Audible bell”.Dapatkan bel terminal atau notifikasi
Ketika Claude menyelesaikan tugas atau berhenti untuk permintaan izin, dan Anda tampaknya jauh dari terminal, Claude Code mengirimkan acara notifikasi. Lihat kapan setiap jenis notifikasi dikirim untuk waktu yang tepat. Menampilkan ini sebagai bel terminal atau notifikasi desktop memungkinkan Anda beralih ke pekerjaan lain saat tugas yang panjang berjalan. Secara default, Claude Code mengirimkan notifikasi desktop di beberapa terminal, dan karakter bel atau tidak sama sekali di terminal lainnya:- Ghostty, Kitty, dan iTerm2, ketika Claude Code mendeteksinya: notifikasi desktop, yang hanya ditampilkan oleh iTerm2 setelah Anda mengaktifkan pengaturan peringatannya.
- Apple Terminal: tanpa suara; karakter bel senyap ketika Claude Code mendapati “Audible bell” dalam keadaan nonaktif di profil jendela Terminal yang berada di depan, selain itu tidak ada apa pun. Karakter bel tersebut ditampilkan sebagai kilatan jendela, atau pantulan Dock saat Terminal berada di latar belakang, jika opsi “Visual bell” atau pantulan Dock pada profil tersebut aktif.
- Terminal lainnya: tidak ada apa pun.
preferredNotifChannel ke "terminal_bell". Di Apple Terminal, aktifkan juga Audible bell di bawah Settings > Profiles > Advanced untuk mendengarnya. Entri pengaturan berikut menetapkan saluran tersebut:
~/.claude/settings.json
preferredNotifChannel ke nilai terminal lokal Anda, yaitu "iterm2", "kitty", atau "ghostty", di mesin yang menjalankan Claude Code. Notifikasi desktop kemudian akan mencapai mesin lokal Anda. Ghostty dan Kitty meneruskannya ke pusat notifikasi OS Anda tanpa pengaturan lebih lanjut. iTerm2 memerlukan Anda untuk mengaktifkan penerusan:
1
Buka pengaturan notifikasi iTerm2
Buka Settings → Profiles → Terminal.
2
Aktifkan peringatan
Centang “Notification Center Alerts”, kemudian klik “Filter Alerts” dan aktifkan “Send escape sequence-generated alerts”.
Mainkan suara dengan hook Notification
Di terminal apa pun Anda dapat mengonfigurasi hook Notification untuk memutar suara atau menjalankan perintah khusus ketika Claude membutuhkan perhatian Anda. Hook berjalan bersama notifikasi bawaan daripada menggantinya, sehingga terminal yang tidak menerima notifikasi desktop, seperti Warp atau terminal terintegrasi VS Code, dapat menggunakan hook atau mengaturpreferredNotifChannel ke "terminal_bell" sebagai gantinya.
Contoh di bawah memutar suara sistem di macOS. Panduan tertaut memiliki perintah notifikasi desktop untuk macOS, Linux, dan Windows.
~/.claude/settings.json
Lihat status sesi di terminal Anda
Jika terminal Anda mengimplementasikan OSC 7501 Program Status Protocol, terminal tersebut dapat menampilkan apakah setiap sesi Claude Code interaktif sedang bekerja, menunggu Anda, atau sudah selesai, yang berguna saat Anda menjalankan tugas yang panjang atau beberapa sesi sekaligus. Tidak ada yang perlu diaktifkan di Claude Code. Untuk mengetahui apakah terminal Anda mengimplementasikan protokol tersebut dan di mana terminal menampilkan statusnya, periksa dokumentasinya. Jika terminal Anda mengimplementasikannya dan Anda tidak melihat status untuk suatu sesi, periksa setiap penyebab berikut:- Versi Claude Code: pelaporan status memerlukan Claude Code v2.1.295 atau yang lebih baru. Jalankan
claude --versiondi shell Anda untuk memeriksanya. - tmux: di dalam tmux, Claude Code memeriksa dukungan pada tmux alih-alih pada terminal Anda, dan
allow-passthroughtidak berpengaruh terhadap hal tersebut. Mulai sesi di luar tmux. - Sesi latar belakang: sesi latar belakang tidak melaporkan statusnya ke terminal Anda, bahkan saat Anda terhubung ke sesi tersebut. Agent view menampilkan statusnya sebagai gantinya.
CLAUDE_CODE_DISABLE_TERMINAL_TITLE: jika Anda mengatur variabel ini ke1, Claude Code tidak memeriksa dukungan atau melaporkan status. Hapus pengaturan variabel tersebut.
Konfigurasi tmux
Ketika Claude Code berjalan di dalam tmux, secara default Shift+Enter mengirimkan alih-alih menyisipkan baris baru, dan notifikasi desktop tidak mencapai terminal luar. Tambahkan baris-baris ini ke~/.tmux.conf, kemudian jalankan tmux source-file ~/.tmux.conf untuk menerapkannya ke server yang sedang berjalan:
~/.tmux.conf
allow-passthrough dan atur preferredNotifChannel ke "iterm2", "kitty", atau "ghostty". Dengan contoh ini, pane di jendela yang tidak sedang Anda lihat tidak mengirimkan notifikasi apa pun. Baris extended-keys memungkinkan tmux membedakan Shift+Enter dari Enter biasa sehingga pintasan baris baru berfungsi.
Image milik mod memerlukan baris allow-passthrough dan focus-events, beserta persyaratan untuk menggambar di dalam tmux lainnya. Setelah Anda menambahkan baris-baris tersebut, lepaskan juga (detach) dari tmux, sambungkan kembali (attach), dan mulai ulang Claude Code.
Perbaiki Backspace menghapus seluruh kata di Windows
Di Windows, Claude Code membaca Backspace yang tiba sebagai^H sebagai Ctrl+Backspace, yang menghapus kata sebelumnya, kecuali ketika TERM_PROGRAM adalah mintty atau TERM adalah cygwin. Di macOS dan Linux, Claude Code membacanya sebagai Backspace biasa.
Jika setiap kali menekan Backspace menghapus seluruh kata, terminal Anda mengirimkan ^H untuk Backspace biasa. Atur CLAUDE_CODE_BS_AS_CTRL_BACKSPACE=0. Backspace dan Ctrl+H kemudian menghapus satu karakter masing-masing. Jika Ctrl+Backspace hanya menghapus satu karakter di macOS atau Linux karena terminal Anda mengirimkan ^H untuknya, atur variabel ke 1 sebagai gantinya.
Mencocokkan tema warna
Gunakan perintah/theme, atau pemilih tema di /config, untuk memilih tema Claude Code yang sesuai dengan terminal Anda. Memilih opsi auto akan mendeteksi latar belakang terang atau gelap terminal Anda, sehingga tema mengikuti perubahan tampilan OS setiap kali terminal Anda mengikutinya. Claude Code tidak mengontrol skema warna terminal itu sendiri, yang diatur oleh aplikasi terminal.
Untuk menyesuaikan apa yang muncul di bagian bawah antarmuka, konfigurasikan baris status kustom yang menampilkan model saat ini, direktori kerja, branch git, atau konteks lainnya.
Membuat tema kustom
Selain preset bawaan,/theme mencantumkan tema kustom apa pun yang telah Anda definisikan dan tema apa pun yang disediakan oleh plugin yang terinstal. Pilih New custom theme… di akhir daftar untuk membuatnya secara interaktif: Anda memberi nama tema, lalu memilih token warna individual yang akan ditimpa. Tekan Ctrl+E saat tema kustom disorot untuk mengeditnya.
Setiap tema kustom adalah file JSON di ~/.claude/themes/. Nama file tanpa ekstensi .json adalah slug tema, dan memilih tema tersebut menyimpan custom:<slug> sebagai preferensi tema Anda. File ini memiliki tiga field opsional:
Nilai warna menerima
#rrggbb, #rgb, rgb(r,g,b), ansi256(n), atau ansi:<name> di mana <name> adalah salah satu dari 16 nama warna ANSI standar seperti red atau cyanBright. Token yang tidak dikenal dan nilai warna yang tidak valid akan diabaikan, sehingga salah ketik tidak dapat merusak rendering.
Contoh berikut mendefinisikan tema yang mempertahankan preset dark tetapi mewarnai ulang aksen prompt, teks error, dan teks sukses:
~/.claude/themes/dracula.json
~/.claude/themes/ dan memuat ulang saat file ditambahkan atau diubah, sehingga pengeditan yang dilakukan di editor Anda diterapkan ke sesi yang sedang berjalan tanpa perlu restart. Jika folder ~/.claude/themes/ itu sendiri belum ada saat Claude Code dimulai, lakukan restart sekali setelah membuat file tema pertama Anda. Setelah itu, perubahan diterapkan tanpa restart.
Referensi di bawah ini mencakup token yang dapat Anda atur di overrides. Editor interaktif di /theme menampilkan token yang sama dengan pratinjau langsung, ditambah beberapa aksen sekali pakai seperti warna layar onboarding yang tidak dicantumkan di sini.
Referensi token warna
Referensi token warna
Contoh berikut menggabungkan token dari beberapa grup di bawah ini: aksen merek, border plan mode, latar belakang diff, dan latar belakang pesan.
~/.claude/themes/midnight.json
Warna teks dan aksen
Mengontrol aksen merek utama dan nuansa teks latar depan yang digunakan di seluruh antarmuka.Warna status
Menandakan status sukses, gagal, dan peringatan di seluruh pesan dan indikator.Kotak input dan indikator mode
Mengatur warna border kotak input dan aksen yang ditampilkan saat mode izin atau indikator aktif.Rendering diff
Mewarnai kode yang ditambahkan dan dihapus dalam pengeditan file dan review.Mode layar penuh
Claude Code menggunakanuserMessageBackgroundHover, selectionBg, dan composerSidebarBackground hanya dalam mode rendering layar penuh. Claude Code mewarnai userMessageBackground, bashMessageBackgroundColor, dan memoryBackgroundColor baik di renderer default maupun layar penuh.Meteran penggunaan dan label pembicara
Menyesuaikan bilah yang ditampilkan di tampilan/usage dan label yang membedakan pesan Anda dari pesan Claude.Varian shimmer dan warna subagent
Beberapa token memiliki varian shimmer berpasangan yang menyediakan warna lebih terang yang digunakan dalam gradien animasi spinner. Timpa shimmer bersama dengan token dasarnya jika animasi terlihat tidak serasi.claudedanclaudeShimmerwarningdanwarningShimmerpermissiondanpermissionShimmerpromptBorderdanpromptBorderShimmerinactivedaninactiveShimmerfastModedanfastModeShimmer
<color>_FOR_SUBAGENTS_ONLY, di mana <color> adalah red, blue, green, yellow, purple, orange, pink, atau cyan. Timpa token ini untuk mengubah tampilan setiap warna bernama. Misalnya, subagent dengan color: blue dalam definisinya digambar menggunakan nilai blue_FOR_SUBAGENTS_ONLY.Ketika ultrathink dapat meningkatkan effort suatu giliran, Claude Code merender kata tersebut di input prompt dengan gradien pelangi tujuh warna. Nama token mengikuti pola rainbow_<color> dan rainbow_<color>_shimmer, di mana <color> adalah red, orange, yellow, green, blue, indigo, atau violet.Beralih ke rendering fullscreen
Dalam mode pembaca layar, bagian ini tidak berlaku. Claude Code selalu dirender sebagai teks gulir biasa kecuali dalam sesi latar belakang yang terlampir, dan jika Anda menjalankan/tui fullscreen di sesi lain, Claude Code mencetak penjelasan alih-alih beralih.
Jika tampilan berkedip atau posisi gulir melompat saat Claude sedang bekerja, beralih ke mode rendering fullscreen. Dalam mode ini Anda menggulir dengan mouse atau PageUp di dalam Claude Code daripada dengan scrollback asli terminal Anda; lihat halaman fullscreen untuk cara mencari dan menyalin.
Jika kedipan adalah satu-satunya masalah dan terminal Anda mendukung keluaran tersinkronisasi tetapi tidak terdeteksi otomatis, seperti Emacs eat, atur CLAUDE_CODE_FORCE_SYNC_OUTPUT=1 untuk menghentikan kedipan tanpa mengubah renderer.
Jalankan /tui fullscreen untuk beralih dan simpan preferensi. Percakapan Anda diluncurkan kembali utuh dan sesi mendatang dimulai dalam fullscreen kecuali awal fullscreen gagal. Anda juga dapat mengatur variabel lingkungan CLAUDE_CODE_NO_FLICKER sebelum memulai Claude Code:
Batasi lebar respons di terminal lebar
Di terminal yang lebar, setiap baris prosa dalam respons Claude berjalan dengan lebar penuh jendela. Untuk membungkus prosa pada jumlah kolom yang ditetapkan, aturmaxProseWidth dalam pengaturan Anda.
Tempel konten besar
Ketika Anda menempel lebih dari 800 karakter atau lebih dari tiga baris ke dalam prompt, Claude Code menciutkan input ke placeholder seperti[Pasted text #1 +120 lines] sehingga kotak input tetap dapat digunakan, dan masih mengirimkan konten lengkap ketika Anda mengirimkan. Untuk input yang sangat besar seperti seluruh file atau log panjang, tulis konten ke file dan minta Claude membacanya alih-alih menempel. Transkrip percakapan tetap dapat dibaca dan Claude dapat merujuk ke file berdasarkan jalur di putaran berikutnya. Terminal terintegrasi VS Code juga dapat menjatuhkan karakter dari tempel yang sangat besar sebelum mencapai Claude Code, jadi gunakan file di sana.
Jika tempel membawa karakter Unicode tak terlihat, Claude Code menghapusnya ketika Anda menekan Enter dan menempatkan prompt yang dibersihkan kembali di kotak input untuk Anda kirimkan dengan Enter lain.
Cara Claude memperlakukan teks yang ditempel
Ketika Anda mengirimkan, Claude melihat konten di balik setiap placeholder[Pasted text #N] ditandai sebagai teks yang Anda tempel dari tempat lain daripada diketik. Claude diberitahu bahwa tempel dapat berisi instruksi yang tidak Anda tulis, dan untuk mengikuti instruksi di dalamnya hanya di mana pesan yang Anda ketik memintanya. Dalam sesi yang tidak mengambil flag fitur, tempel tidak ditandai.
Hapus dan pulihkan tempel yang diciutkan
Ketika Anda menghapus dengan pintasan kata atau baris sepertiCtrl+W atau Ctrl+K, atau dengan penghapusan vim melalui gerakan f/t seperti df], dan rentang yang dihapus mencapai dalam placeholder [Pasted text #N], Claude Code menghapus placeholder sepenuhnya. Untuk memulihkannya, tempel penghapusan kembali dengan Ctrl+Y setelah pintasan kata atau baris, atau dengan p dalam NORMAL mode setelah penghapusan vim.
Ingat kembali prompt yang memiliki teks yang ditempel
Claude Code menyimpan konten di balik setiap placeholder[Pasted text #N] di bawah ~/.claude/paste-cache/, sehingga ketika Anda mengingat kembali prompt dari riwayat perintah dan mengirimkannya kembali, konten tempel lengkap dikirimkan lagi, termasuk dalam sesi yang lebih baru.
File cache yang lebih lama dari cleanupPeriodDays dihapus di bawah aturan penyapuan retensi, sehingga prompt yang diingat kembali dapat mereferensikan teks tempel yang tidak lagi ada. Ketika Anda mengirimkan prompt seperti itu, Claude Code tidak mengirimkan string literal [Pasted text #N], dan menampilkan notifikasi yang menamai tempel yang hilang:
- Dalam prompt biasa dengan teks yang tersisa, Claude Code menghapus placeholder dan mengirimkan teks yang tersisa.
- Dalam perintah shell mode atau perintah
/, di mana penghapusan akan mengubah apa yang berjalan, dan dalam prompt apa pun penghapusan meninggalkan kosong, Claude Code membatalkan pengiriman dan menyimpan teks asli di input, dengan placeholder masih di dalamnya. Hapus placeholder atau edit perintah, kemudian kirim ulang.
Edit prompt dengan pintasan keyboard Vim
Claude Code mencakup mode editing bergaya Vim untuk input prompt. Aktifkan melalui/config → Editor mode, atau dengan mengatur editorMode ke "vim" dalam ~/.claude/settings.json. Atur Editor mode kembali ke normal untuk mematikannya.
Vim mode mendukung subset dari motions dan operators mode NORMAL dan VISUAL, seperti navigasi hjkl, seleksi v/V, dan d/c/y dengan text objects. Lihat referensi mode editor Vim untuk tabel kunci lengkap.
Motions Vim tidak dapat dipetakan ulang melalui file keybindings. Untuk memetakan urutan mode INSERT dua kunci seperti jj ke Escape, atur vimInsertModeRemaps dalam pengaturan pengguna Anda.
Menekan Enter masih mengirimkan prompt Anda dalam mode INSERT, tidak seperti Vim standar. Gunakan o atau O dalam mode NORMAL, atau Ctrl+J, untuk menyisipkan baris baru sebagai gantinya.
Sumber daya terkait
- Mode interaktif: referensi pintasan keyboard lengkap dan tabel kunci Vim
- Keybindings: petakan ulang pintasan Claude Code apa pun, termasuk Enter dan Shift+Enter
- Rendering fullscreen: detail tentang scrolling, pencarian, dan copy dalam mode fullscreen
- Panduan hooks: lebih banyak contoh hook Notification untuk Linux dan Windows
- Troubleshooting: perbaikan untuk masalah di luar konfigurasi terminal