Dikteerimine, mis peab terminalis vastu
Diktaadi kleepimine nurjub vaikselt terminalis, SSH-s, tmuxis ja mitte-QWERTY paigutustes. Miks lõikelauasisestus seal ei tööta ja mida teeb trükkimisrežiim.
Arendajad, kes dikteerimistööriistu proovivad, põrkavad sageli väga kindla kujuga tõrke otsa. Tööriist töötab demos suurepäraselt. See töötab Notesis, Slackis, brauseris. Siis fokusseerid terminali, dikteerid lause ja kas ei ilmu midagi, või ilmub midagi, mis ei ole see, mida sa ütlesid, või ilmub pool sellest ja teine pool on nüüd salapäraselt su lõikelaual. Vahel töötab see kohapeal ja sureb hetkel, mil sa masinasse SSH-ga sisse lähed.
Muster on piisavalt järjekindel, et ma ei arva, et tegu on ühe toote veaga. See on tagajärg sellest, kuidas kogu see kategooria teksti sisestab — ja see kukub läbi täpselt seal, kus arendaja elab.
See loeb praegu rohkem kui kaks aastat tagasi. Kui sa juhid Claude Code’i häälega — töövoog, mida kirjeldasin loos Claude Code’i juhtimine häälega —, siis ei ole terminal üks rakendus paljude seas. See ongi see rakendus. Seal maanduvad su promptid, seal ootavad su agendid ümbersuunamisi, seal kogu see paralleelsete radade asi kas töötab või mitte. Dikteerimistööriist, mis on terminalides tõrges, on vibe-kodeerija jaoks tõrges oma ainsas töös.
Miks läheb kleepimine katki täpselt seal, kus arendajad elavad?
Siin on kategooriaülene mehaanika. Enamik dikteerimistööriistu sisestab teksti ühtemoodi: nad panevad su transkribeeritud lause süsteemi lõikelauale ja sünteesivad siis fookuses olevas rakenduses Cmd+V klahvivajutuse. See on mõistlik vaikevalik — kleepimine on hetkeline, see töötab peaaegu igal GUI tekstiväljal ja see ei nõudnud peaaegu mingit rakendusepõhist inseneritööd.
Probleem on kõik see, mille peale see eeldus vaikselt tugineb.
See tugineb sellele, et fookuses olev rakendus tõlgendab Cmd+V-d kui „kleebi“. Terminalid seda sageli ei tee — paljud kasutavad Cmd+V-d millegi muu jaoks või üldse mitte millegi jaoks, tmuxil ja vimil on oma arusaam sellest, mida kleepimine tähendab, ja kaugem SSH-seanss võib kleebitud tekstipurske tõlgendada viisidel, mida kohalik masin ette ennustada ei suuda. Sulgudega kleepimine, kopeerimisrežiim, sisestusrežiim versus normaalrežiim: terminalimaailm on täis olekuid, kus sünteetiline kleepimine maandub valesti või ei maandu üldse.
See tugineb sellele, et lõikelaud on saadaval ja valveta. Lõikelauahaldurid kirjutavad selle ümber. Paroolihaldurid kustutavad või kaitsevad seda meelega — turvafunktsioon, mis muudab „kleebi minu dikteering“ vaikselt „kleebi mitte midagi“ vastu. Ja isegi kui kõik toimib, kirjutas tööriist just üle selle, mille sa olid kopeerinud. Commiti SHA, mida sa akende vahel kaasas kandsid, on läinud, asendatud sinu enda lausega. Kellegi jaoks, kes žongleerib mitme rajaga, ei ole see paberilõige; lõikelaud tegi tööd.
Ja see tugineb — see on see osa, mis inimesi üllatab — sinu klaviatuuripaigutusele. Kui tööriist taandub klahvivajutuste simuleerimisele, on naiivne viis saata klahvi_koode_: füüsiliste klahvide asukohti. Klahvikoodid seostuvad märkidega läbi sinu paigutuse. QWERTY-l annab „V“ kood V-tähe. Dvorakis on sama füüsiline asukoht teine täht. Nii et tööriist, mis simuleerib skänkoode Dvoraki, AZERTY või Colemaki paigutusel, toodab teksti, mis näeb välja nagu läbi asendusšifri lastud. Kasutajad teatavad soperdisest ja eeldavad, et kõnetuvastus kukkus läbi. Ei kukkunud — kõne oli täiuslik, sisestus ajas selle sassi.
Miski siit ei ole kellegi pahatahtlikkus ega laiskus. Lõikelaua kaudu kleepimine on õige vaikevalik 90% juhtude jaoks. Lihtsalt arendajad veedavad oma päeva selles ülejäänud 10%-s.
Mida „trüki see hoopis sisse“ tegelikult tähendab
Keebye’l on seadistus nimega insert_mode kahe väärtusega: paste, mis on vaikevalik, ja type.
Trükkimisrežiim ei kleebi. macOS-is kasutab see CGEventKeyboardSetUnicodeString-i — API-t, mis lisab sünteetilisele klahvisündmusele päris Unicode-teksti. Märk kantakse sündmuse enda sees, mitte ei otsita seda sinu klaviatuuripaigutuse kaudu. See teeb selle ülesehituse poolest paigutusest sõltumatuks: Dvorak, AZERTY, Colemak, mida iganes sa trükid, saabuv tekst on see tekst, mis transkribeeriti, sest skänkoodi-märgi tõlget, mida valesti teha, ei olnudki kunagi.
Trükkimisrežiimi teine omadus on see, mis terminalikasutajatele korda läheb: see ei puuduta kunagi lõikelauda. Sellel koodirajal null lõikelauaoperatsiooni. Su lõikelaua sisu jääb sinu omaks — SHA jääb alles, paroolihalduril pole millegi eest valvata, lõikelauahalduril pole midagi logida.
Ja kuna terminalid ja kaugseansid võivad kinni jääda tekstil, mis saabub kiiremini, kui ükski inimene trükib, seab trükkimisrežiim endale meelega tempo: tekst läheb sisse 16-märgiliste tükkidena, tükkide vahel 4-millisekundiline paus. Piisavalt kiiresti, et lause maandub tublisti alla sekundi; piisavalt mõõdetult, et tmuxi paan üle SSH võtab selle vastu klahvivajutustena, millega ta sammu peab, mitte pahmakana, mida ta peab tõlgendama.
Kleepimisrežiim on endiselt olemas ja endiselt vaikevalik, sest see on tavalistes GUI rakendustes suurte tekstiplokkide puhul päriselt kiirem — kolmelõiguline Slacki sõnum saabub ühe kleepimisena, mitte tükivooluna. Isegi kleepimisrežiim sai siiski paigutuseõppetunni kaasa: sünteetiline Cmd+V kasutab füüsilist V klahvikoodi, nii et kleepimine ise ei lähe mitte-QWERTY paigutustel katki nii, nagu märgiotsingul põhinevad lähenemised võivad.
Praktiline seadistus agenditöö jaoks on lihtne: keera insert_mode väärtusele type, fokusseeri terminal, kus jookseb Claude Code, hoia klahvi all, ütle ümbersuunamine, lase lahti. Prompt saabub nii, nagu klahvivajutused saabuksid, sest terminali jaoks nad seda ongi. Sellest seadistusest on samm-sammuline versioon koos SSH ja tmuxi eripäradega loos häälega dikteerimine macOS-i terminalis.
Ausad piirid
Trükkimisrežiim on pika teksti puhul kleepimisest aeglasem — see on aritmeetika, mitte defekt. Tempopausidega tükeldatud klahvivajutused võtavad kauem aega kui üksainus kleepimissündmus, ja kui dikteerid dokumenti mitu lõiku, tundub kleepimisrežiim nobedam. Täpselt seepärast jääb kleepimine vaikevalikuks ja trükkimisrežiim on midagi, mille sa seadetes ise sisse lülitad; õige režiim sõltub sellest, kuhu su tekst läheb.
Mõned rakendused piiravad või filtreerivad sünteetilist sisendit, tavaliselt turvakaalutlustel, ja ükski sisestusstrateegia sellest päriselt mööda ei pääse — rakendus, mis keeldub sünteetilistest sündmustest, keeldub neist iga dikteerimistööriista puhul.
Ja et olla selge selles, mida see artikkel väidab ja mida mitte: kaebus „kleepimine läheb terminalides katki“ on muster kogu dikteerimiskategoorias, mitte ühe konkurendi ainuomane defekt. Teistel tööriistadel on oma vastused ja oma tugevused — kirjutasime ausad võrdlused Keebye vs Superwhisper ja Keebye vs Wispr Flow, sealhulgas selle, kus kumbki neist võib sulle paremini sobida.
Sisestus on dikteerimise pool ilma sära
Kõnetuvastus saab kogu tähelepanu — mudelite nimed, täpsuse väited, keelte arvud. Aga dikteerimistööriistal on kaks tööd: kuulda sind õigesti ja siis viia tekst sinna, kus su kursor on, ilma seda kaotamata või sassi ajamata. Teine töö kõlab tühisena ja on täpselt see, mille juures kategooria arendajate ees vaikselt läbi kukub, sest teine töö on TextEditis lihtne ja tmuxi paanis kaugmasinas Dvoraki paigutuse all raske.
Kui su promptid maanduvad terminalides — ja kui sa juhid kodeerimisagente, siis maanduvad —, ei ole sisestus joonealune märkus. See on vahe tööriista vahel, mida sa demonstreerid, ja tööriista vahel, mida sa kasutad. Sarnastel tõrgetel on muide sama maitse: dikteeringu esimese sõna ärasöömine mikrofoni külmkäivituse tõttu on veel üks kategooriaülene kaebus mehaanilise seletusega, ja selle kirjutasime lahti loos miks dikteerimisrakendused su esimese sõna ära söövad.
Keebye on macOS-i jaoks varajases ligipääsus. Kui su dikteering on kunagi kadunud kuskil su suu ja terminali vahel, alusta allpool tasuta prooviperioodi, lülita sisse trükkimisrežiim ja proovi sama prompti uuesti. Su kopeeritud SHA jääb lõikelauale, samal ajal kui sõnad saabuvad trükitud Unicode’ina.
Testi oma kõige raskemat terminalirada
Alusta tasuta prooviperioodi, lülita sisse trükkimisrežiim ja proovi seda SSH- või tmuxi prompti, mille peal kleepimine tavaliselt katki läheb.
Start free trialEarly access: we'll email you the moment the macOS build is ready — your 14 days start when you first sign in from the app.
Loe edasi
Promptide dikteerimine paralleelsetele agentidele
Kahe või kolme kodeerimisagendi korraga jooksutamine teeb promptimisest pudelikaela. Häältöövoog paralleelsete radade söötmiseks, lahkumata sellelt, kus oled.
Claude Code häälega: ehitamine paralleelsetel radadel
AI-koodiagendid tegid trükkimisest pudelikaela. Praktiline töövoog promptide, ülevaatuste ja ümbersuunamiste dikteerimiseks paralleelagendiradadel macOS-is.
Minu öeldud sõnad: dikteerimine ilma AI ümberkirjutuseta
AI-dikteerimine kirjutab su öeldu ümber: täpsustused kaovad, tähendus pöördub. Miks LLM-viimistlus sõnastab ümber ja Keebye jääb sõnasõnaliseks.