Imlak yang Bertahan dalam Terminal

Tampalan imlak gagal senyap dalam terminal, SSH, tmux dan susun atur bukan QWERTY. Kenapa papan keratan gagal di situ dan cara mod menaip membantu.

Teodor Deleanu10 Julai 2026Bacaan 7 min

Pembangun yang mencuba alat imlak selalunya terkena satu kegagalan yang bentuknya sangat khusus. Alat itu berfungsi dengan cantik dalam demo. Ia berfungsi dalam Notes, dalam Slack, dalam pelayar. Kemudian anda fokuskan sebuah terminal, imlakkan satu ayat, dan sama ada tiada apa yang muncul, atau sesuatu muncul yang bukan apa yang anda sebut, atau separuh daripadanya muncul dan separuh lagi kini secara misteri berada dalam papan keratan anda. Kadangkala ia berfungsi secara setempat dan mati pada saat anda SSH ke sebuah mesin.

Coraknya cukup konsisten sehingga saya rasa ia bukan pepijat dalam mana-mana satu produk. Ia akibat daripada cara kategori ini memasukkan teks — dan ia gagal tepat di tempat seorang pembangun tinggal.

Itu lebih penting sekarang berbanding dua tahun lalu. Jika anda memandu Claude Code dengan suara — aliran kerja yang saya huraikan dalam memandu Claude Code dengan suara anda — maka terminal bukan satu aplikasi antara banyak. Ia aplikasi itu. Di situlah prompt anda mendarat, di situlah agent anda menunggu arahan baharu, di situlah keseluruhan hal lane selari itu sama ada berfungsi atau tidak. Alat imlak yang goyah dalam terminal, bagi seorang vibecoder, goyah pada satu-satunya tugasnya.

Kenapa tampalan rosak tepat di tempat pembangun tinggal?

Inilah mekaniknya di peringkat kategori. Kebanyakan alat imlak memasukkan teks dengan cara yang sama: ia meletakkan ayat anda yang telah ditranskrip pada papan keratan sistem, kemudian mensintesis ketukan kekunci Cmd+V pada aplikasi yang fokus. Itu lalai yang munasabah — menampal itu serta-merta, ia berfungsi dalam hampir setiap medan teks GUI, dan ia hampir tidak memerlukan kejuruteraan setiap aplikasi.

Masalahnya ialah segala yang diam-diam bergantung pada andaian itu.

Ia bergantung pada aplikasi yang fokus melayan Cmd+V sebagai “tampal.” Terminal selalunya tidak — banyak yang menggunakan Cmd+V untuk sesuatu yang lain atau langsung tiada apa-apa, tmux dan vim mempunyai idea sendiri tentang apa maksud tampal, dan sesi SSH jauh mungkin mentafsir letusan teks yang ditampal dengan cara yang tidak dapat diramal oleh mesin setempat. Bracketed paste, copy-mode, insert-mode berbanding normal-mode: dunia terminal penuh dengan keadaan di mana tampalan sintetik mendarat salah atau tidak mendarat langsung.

Ia bergantung pada papan keratan yang tersedia dan tidak dikawal. Pengurus papan keratan menulis semulanya. Pengurus kata laluan sengaja mengosongkan atau melindunginya — satu ciri keselamatan yang menukar “tampal imlak saya” kepada “tampal tiada apa-apa,” secara senyap. Dan walaupun apabila semuanya berfungsi, alat itu baru sahaja menulis ganti apa sahaja yang anda telah salin. SHA commit yang anda bawa antara tetingkap hilang, digantikan oleh ayat anda sendiri. Bagi seseorang yang menguruskan beberapa lane, itu bukan luka kecil; papan keratan itu sedang melakukan satu tugas.

Dan ia bergantung — inilah yang mengejutkan orang — pada susun atur papan kekunci anda. Apabila sesuatu alat berundur kepada mensimulasi ketukan kekunci, cara naifnya ialah menghantar kod kekunci: kedudukan kekunci fizikal. Kod kekunci dipetakan kepada aksara melalui susun atur anda. Pada QWERTY, kod untuk “V” menghasilkan V. Pada Dvorak, kedudukan fizikal yang sama itu ialah huruf yang berbeza. Jadi alat yang mensimulasi scancode pada susun atur Dvorak, AZERTY atau Colemak menghasilkan teks yang kelihatan seperti melalui sifer penggantian. Pengguna melaporkan karut dan menganggap pengecaman pertuturan yang gagal. Ia tidak gagal — pertuturannya sempurna, penyisipannya yang mengacaukannya.

Tiada satu pun daripada ini niat jahat atau kemalasan sesiapa. Tampalan papan keratan ialah lalai yang betul untuk 90% kes. Cuma pembangun menghabiskan hari mereka dalam 10% yang selebihnya.

Apa sebenarnya maksud “taip sahaja”

Keebye mempunyai satu tetapan bernama insert_mode dengan dua nilai: paste, yang menjadi lalai, dan type.

Mod menaip tidak menampal. Pada macOS ia menggunakan CGEventKeyboardSetUnicodeString — satu API yang melampirkan teks Unicode sebenar pada peristiwa kekunci sintetik. Aksara itu dibawa dalam peristiwa itu sendiri, bukan dicari melalui susun atur papan kekunci anda. Itu menjadikannya bebas-susun-atur secara binaan: Dvorak, AZERTY, Colemak, apa sahaja yang anda taip di atasnya, teks yang tiba ialah teks yang telah ditranskrip, kerana tidak pernah ada terjemahan scancode-ke-aksara yang boleh menjadi salah.

Sifat kedua mod menaip ialah yang dipedulikan pengguna terminal: ia tidak pernah menyentuh papan keratan. Sifar operasi papan keratan pada laluan kod itu. Kandungan papan keratan anda kekal milik anda — SHA itu terselamat, pengurus kata laluan tiada apa untuk dikawal, pengurus papan keratan tiada apa untuk dilog.

Dan kerana terminal dan sesi jauh boleh tercekik dengan teks yang tiba lebih pantas daripada mana-mana manusia menaip, mod menaip mengatur rentaknya dengan sengaja: teks masuk sebagai ketulan 16 aksara dengan jurang 4 milisaat antara ketulan. Cukup pantas sehingga satu ayat mendarat dalam kurang daripada satu saat; cukup terukur sehingga satu panel tmux melalui SSH menerimanya sebagai ketukan kekunci yang boleh diikutinya, bukan satu gumpalan yang perlu ditafsirkan.

Mod tampal masih ada, dan masih lalai, kerana ia memang lebih pantas untuk blok teks yang besar dalam aplikasi GUI biasa — mesej Slack tiga perenggan tiba sebagai satu tampalan dan bukannya satu strim ketulan. Namun mod tampal juga mengambil pengajaran susun atur itu: Cmd+V sintetik itu menggunakan kod kekunci V yang fizikal, jadi tampalan itu sendiri tidak rosak pada susun atur bukan-QWERTY seperti pendekatan carian-aksara boleh rosak.

Persediaan praktikal untuk kerja agent adalah mudah: tukar insert_mode kepada type, fokuskan terminal yang menjalankan Claude Code, tahan kekunci itu, sebut arahan baharu itu, lepaskan. Prompt itu tiba sebagaimana ketukan kekunci akan tiba, kerana pada pandangan terminal, itulah yang ia sebenarnya. Ada versi langkah demi langkah bagi persediaan ini, termasuk butiran SSH dan tmux, dalam imlak suara untuk terminal macOS.

Had yang jujur

Mod menaip lebih perlahan daripada tampal untuk teks yang panjang — itu aritmetik, bukan kecacatan. Ketukan kekunci berketul dengan jurang rentak mengambil masa lebih lama daripada satu peristiwa tampal, dan jika anda mengimlak beberapa perenggan ke dalam sesuatu dokumen, mod tampal akan terasa lebih cergas. Inilah tepatnya sebabnya tampal kekal lalai dan mod menaip ialah sesuatu yang anda pilih sendiri dalam tetapan; mod yang betul bergantung pada ke mana teks anda pergi.

Sesetengah aplikasi menghadkan kadar atau menapis input sintetik, biasanya atas sebab keselamatan, dan tiada strategi penyisipan yang terlepas sepenuhnya daripada itu — aplikasi yang enggan menerima peristiwa sintetik menolaknya daripada setiap alat imlak.

Dan supaya jelas tentang apa yang artikel ini dakwa dan tidak dakwa: rungutan tampalan-rosak-dalam-terminal ialah satu corak merentas kategori imlak, bukan kecacatan yang unik kepada mana-mana pesaing. Alat lain mempunyai jawapan dan kekuatan mereka sendiri — kami menulis perbandingan yang jujur di Keebye vs Superwhisper dan Keebye vs Wispr Flow, termasuk di mana setiap satunya mungkin lebih sesuai untuk anda.

Penyisipan ialah separuh imlak yang tidak glamor

Pengecaman pertuturan mendapat semua perhatian — nama model, dakwaan ketepatan, bilangan bahasa. Tetapi alat imlak mempunyai dua tugas: mendengar anda dengan betul, kemudian membawa teks itu ke tempat kursor anda tanpa kehilangan atau merosakkannya. Tugas kedua kedengaran remeh dan di situlah kategori ini diam-diam mengecewakan pembangun, kerana tugas kedua itu mudah dalam TextEdit dan sukar dalam panel tmux pada mesin jauh di bawah susun atur Dvorak.

Jika prompt anda mendarat dalam terminal — dan jika anda memandu coding agent, memang begitu — penyisipan bukan nota kaki. Ia perbezaan antara alat yang anda demokan dan alat yang anda guna. Mod kegagalan yang berkaitan mempunyai rasa yang sama, sebenarnya: perkataan pertama sesuatu imlak dimakan oleh cold-start mikrofon ialah satu lagi rungutan seluruh kategori dengan penjelasan mekanikal, dan kami menulisnya dalam kenapa aplikasi imlak memakan perkataan pertama anda.

Keebye berada dalam akses awal untuk macOS. Jika imlak anda pernah hilang di suatu tempat antara mulut anda dan sebuah terminal, mulakan percubaan percuma anda di bawah, aktifkan mod menaip, dan cuba semula prompt yang sama. SHA yang anda salin kekal pada papan keratan sementara perkataan itu tiba sebagai Unicode yang ditaip.

Uji laluan terminal anda yang paling sukar

Mulakan percubaan percuma anda, aktifkan mod menaip, dan cuba prompt SSH atau tmux yang biasanya merosakkan tampalan.

Start free trial

Early access: we'll email you the moment the macOS build is ready — your 14 days start when you first sign in from the app.

Teruskan membaca