De terminal
De terminalbackends, shellomgeving, koppelingen, meldingen en veiligheidsfuncties van Zshell.
Elk terminaldeelvenster draait je echte inlogshell en gebruikt een van twee native, GPU-versnelde terminalbackends. Zshell regelt het gedrag eromheen: deelvensterfocus, zoeken, meldingen, koppelingen, geschiedenis, thema's en veilig plakken. Dat blijft dus hetzelfde, ongeacht welke emulator je kiest.
Terminalbackends
Kies een backend onder Instellingen → Terminal → Backend:
| Backend | Opmerkingen |
|---|---|
| Ghostty | De standaard |
| Alacritty | Gebruikt doorgaans minder geheugen |
Beide ondersteunen GPU-versnelling, afbeeldingen, de gedeelde themacatalogus van Zshell, zoeken, muisrapportage, meldingen en voortgangsrapportage. Een backendwijziging geldt alleen voor nieuwe terminals; bestaande deelvensters houden de emulator waarmee ze zijn gestart.
Je shell blijft hetzelfde
Elke sessie start de inlogshell van je account, zodat je prompt, aliassen, functies en dotfiles worden geladen zoals in elke andere terminal. Zshell voegt variabelen toe voor mogelijkheden en identificatie:
| Variabele | Waarde |
|---|---|
TERM_PROGRAM | ghostty |
TERM_PROGRAM_VERSION | De Ghostty-capaciteitsversie die Zshell implementeert |
ZSHELL_TERM | ghostty of alacritty, de werkelijke backend van het deelvenster |
Beide backends melden Ghostty via TERM_PROGRAM, omdat CLI's met ondersteuning voor afbeeldingen en meldingen dit als aanwijzing voor beschikbare mogelijkheden gebruiken. Gebruik ZSHELL_TERM alleen als je de renderer daadwerkelijk moet onderscheiden.
Zshell leest ~/.config/ghostty noch een Alacritty-configuratie. Lettertypen, kleuren, invoergedrag en de backend stel je in via de eigen instellingen van Zshell.
Bij starten via Dock of Finder leest Zshell SSH_AUTH_SOCK uit de interactieve login-shell en gebruikt de agent die je dotfiles kiezen. Starten vanuit een terminal behoudt de geldige geërfde agent.
Systeemrechten
Lokale programma’s in een Zshell-terminal kunnen toegang tot de camera of microfoon vragen, of een andere app via Apple Events aansturen. macOS schrijft deze verzoeken toe aan Zshell; geef alleen vertrouwde programma’s toegang. Automatisering moet voor elke doelapp apart worden toegestaan.
Beheer de toegang via Systeeminstellingen → Privacy en beveiliging → Camera, Microfoon of Automatisering. Een verzoek weigeren blokkeert die functie. Zshell verleent deze rechten niet automatisch.
Focus volgt de muis
Schakel Instellingen → Terminal → Gedrag → Focus volgt de muis in om een paneel te focussen wanneer de aanwijzer binnenkomt. Standaard uit, voor beide backends en de snelle terminal. Tijdens slepen, vanuit een editor of met een geopend menu of dialoogvenster verandert de focus niet.
terminal.focus-follows-mouse = true
Zoeken
| Actie | Sneltoets |
|---|---|
| Zoeken | Cmd+F |
| Volgende zoeken | Cmd+G |
| Vorige zoeken | Shift+Return in de zoekbalk |
| Selectie gebruiken om te zoeken | Cmd+E |
| Terminal wissen | Cmd+K |
Zoeken werkt op het terminal- of editordeelvenster met focus en blijft actief zolang het zoekveld de toetsenbordfocus heeft.
Prompt bewerken
Klik in de actieve shellprompt om de invoercursor te verplaatsen en typ op die plek verder. In een zsh-prompt kun je over de invoer slepen om een bereik te selecteren: typen vervangt de selectie, Backspace of Delete verwijdert haar. Dubbel- en driedubbelklikken selecteren nog steeds terminaltekst. Programma's met muisrapportage, zoals TUI's op volledig scherm, blijven hun eigen muisgebeurtenissen ontvangen.
Als een geneste of vervangende shell de promptbewerkingsondersteuning van Zshell niet heeft geladen, selecteert slepen nog steeds terminaltekst om te kopiëren, maar bewerkt het de invoer niet. Bewerken van invoerselecties werkt weer zodra je terugkeert naar de oorspronkelijke prompt.
Het standaardinvoerveld van Claude Code ondersteunt klikken om de cursor te plaatsen en slepen om invoer te bewerken op beide backends, ook bij afgebroken regels en concepten met meerdere regels. Typ of plak om de geselecteerde invoer te vervangen, of druk op Backspace of Delete om haar te verwijderen. De normale en visuele Vim-modus, dialoogvensters, bijlagen of samengevouwen plakinhoud en teruggescrolde gesprekstekst behouden hun bestaande terminalselectiegedrag. Applicaties die de muis overnemen, blijven hun eigen invoer afhandelen.
Spraakinvoer van Zisla gebruikt de plakactie van de terminal. In Claude Code vervangt die ook een geselecteerd invoerbereik; bewust een zin herhalen blijft ondersteund.
Sneltoetsen voor de voorgrondapplicatie
Als de sneltoetsen van een terminalapplicatie met Zshell botsen, klik je met de rechtermuisknop op het deelvenster en schakel je Zshell-opdrachten blokkeren in. Toetscombinaties met modificatietoetsen, waaronder Ctrl+Return, gaan dan naar de voorgrondapplicatie zolang dat deelvenster toetsenbordfocus heeft. Kopiëren, plakken en alles selecteren blijven beschikbaar.
Deze instelling geldt alleen voor dat deelvenster. Klik opnieuw met de rechtermuisknop en verwijder het vinkje om Zshell-sneltoetsen te herstellen. Als een applicatie de muis overneemt, houd je Shift ingedrukt tijdens het rechtsklikken om het Zshell-menu te openen.
Promptwachtrij
Geef een terminal de focus en druk op Cmd+Shift+M, of kies Promptwachtrij tonen/verbergen in het opdrachtenpalet. De balk opent onder die terminal. Typ een item en druk op Return of Toevoegen aan wachtrij. Elk item bestaat uit één regel; geplakte regeleinden worden spaties.
Wanneer de oorspronkelijke zsh terugkeert naar een lege shellprompt, verstuurt Zshell het volgende item en drukt het op Return. Items worden op volgorde uitgevoerd. Automatisch versturen wacht zolang een agent of ander voorgrondprogramma de terminal beheert, of zolang de shellprompt conceptinvoer bevat. Daarvoor is de zsh-integratie van Zshell nodig; andere en geneste shells kunnen handmatig versturen gebruiken.
Elk item heeft knoppen Nu verzenden en Verwijderen. Nu verzenden stuurt de tekst en Return onmiddellijk naar het huidige terminalprogramma, zonder op een shellprompt te wachten. Esc of de sluitknop verbergt de balk en bewaart de items. Elke terminal heeft een eigen wachtrij; de sessie sluiten of Zshell afsluiten verwijdert die wachtrij.
Paden en URL's
Zshell herkent web-URL's en bestaande lokale paden in de uitvoer van terminalprogramma's. Lokale koppelingen kunnen absoluut zijn, relatief aan ~/, met ./ of ../, of relatief aan de actuele werkmap van het deelvenster. Een diagnostisch achtervoegsel zoals :42 of :42:7 verhindert niet dat het onderliggende bestand wordt gevonden.
- Command-klik op een lokaal pad om het in Finder te tonen, of op een URL om die in je standaardbrowser te openen.
- Command-rechtsklik op een pad voor Nieuw bestandstabblad / Nieuw bestandsdeelvenster, of op een URL voor Nieuw browsertabblad / Nieuw browserdeelvenster.
- Programma's op volledig scherm met muisrapportage ontvangen een gewone rechtermuisklik zelf. Houd Shift ingedrukt tijdens het rechtsklikken om in plaats daarvan het terminal- en deelvenstermenu van Zshell te openen.
Zo bieden compileruitvoer en agentgesprekken een directe weg terug naar hetzelfde project. Browsergedrag staat beschreven in Browserdeelvensters.
Meldingen
Zshell stuurt twee terminalgebeurtenissen door naar het Berichtencentrum:
- een belsignaal van een sessie zonder focus;
- een
OSC 777;notify-verzoek van een programma, zoals een langdurige build of programmeeragent.
Meldingen kunnen het systeemgeluid afspelen. Klikken op een melding activeert Zshell en brengt je naar de exacte sessie die haar verstuurde. macOS vraagt pas om toestemming wanneer een terminal voor het eerst een melding probeert te sturen, niet bij het starten van Zshell.
Voltooide opdrachten
Open Instellingen → Terminal → Opdrachtmeldingen om meldingen te krijgen wanneer een opdracht eindigt:
- Langlopende opdrachten: kies 5, 10, 30 of 60 seconden. Een opdracht die minstens zo lang duurt, geeft een voltooiingsmelding. Standaard staat dit Uit.
- Mislukte opdrachten: meld een afsluitstatus anders dan nul, ongeacht de looptijd. Dit staat in nieuwe configuraties standaard aan en kan onafhankelijk worden uitgeschakeld.
Deze instellingen gelden voor zsh-terminals die na de wijziging worden gemaakt, op beide terminalbackends. Ze gebruiken de voltooiingsgebeurtenis van de oorspronkelijke shell; opdrachten binnen een geneste shell of interactief programma melden via deze integratie geen afzonderlijke voltooiingen.
Je kunt dezelfde instellingen opslaan in ~/.config/zshell/config.toml:
terminal.notify-finish-seconds = 30
terminal.notify-on-error = trueStel terminal.notify-finish-seconds in op 0 om meldingen op basis van looptijd uit te schakelen. De bezorging volgt je macOS-meldingsinstellingen.
Voortgangsrapportage
Programma's die voortgang via OSC 9;4 doorgeven, krijgen een dunne balk boven de terminal, met afzonderlijke toestanden voor normaal, gepauzeerd en fout. Je hoeft niets in te schakelen: als het programma voortgang meldt, toont het deelvenster die.
Klembord, slepen en veilig plakken
- Lezen van het klembord vereist bevestiging.
OSC 52kan de inhoud van het macOS-klembord opvragen, ook vanaf een externe host via SSH. Zshell vraagt toestemming voordat het die terugstuurt. - Riskante plakacties worden gemarkeerd. Tekst met meerdere regels of tekst die op een opdracht lijkt, vereist bevestiging en wordt niet meteen ingevoerd.
- Bestanden en schermafbeeldingen worden veilige shellpaden. Finder-bestanden worden ingevoegd als absolute paden tussen aanhalingstekens. Een losse afbeelding wordt als privé tijdelijke PNG opgeslagen en het pad wordt geplakt. Externe panelen uploaden bestanden en afbeeldingen eerst naar de host.
Invoer met Option
Standaard blijft Option bij de actieve macOS-invoerbron, zodat indelingen zoals Polish Pro samengestelde tekens kunnen invoeren. Schakel Option als Alt/Meta gebruiken in bij Instellingen wanneer een terminalprogramma Option-combinaties als Meta-sneltoetsen moet ontvangen. Zie terminal.macos-option-as-alt.
De opdracht zshell
Elke Zshell-terminal bevat een CLI die het project kent:
zshell # maak een project in de huidige map
zshell vim ~/src/app.swift # maak het project en voer deze argv uit in de eerste terminal
zshell +themes # bekijk thema’s en hun voorbeelden interactief
zshell +themes --list --dark # druk themanamen af zonder de themakiezer
zshell +help # toon alle opdrachtgroepenDe themakiezer toont elke selectie als voorbeeld in de hele app. Return slaat de keuze op; Escape herstelt het vorige thema.
Lettertypen
Zshell levert JetBrains Mono en Nerd Font-symbolen mee. Elk geïnstalleerd monospacelettertype kan het Latijnse lettertype vervangen; een geïnstalleerde CJK-familie kan vóór de symbool- en systeemfallbacks worden geplaatst. Zie font-family, terminal.font-fallback-family, font-size, terminal.font-thicken en terminal.line-height.
Algemene snelle terminal
Terwijl Zshell draait, toont of verbergt Cmd+I of Terminal → Snelle terminal een onafhankelijke terminal. Pas grootte, dekking en sneltoets aan onder Instellingen → Terminal → Snelle terminal.
Sessiewerking: Werkruimte hergebruiken (standaard) / Elke keer een nieuwe werkruimte. Hergebruik bewaart panelen en taken. Nieuwe werkruimten stoppen bij verbergen. De modus wijzigt bij de volgende weergave; de herbruikbare werkruimte blijft bij terugschakelen beschikbaar. De geschiedenis volgt je shellconfiguratie. Een nieuwe werkruimte begint steeds met één lege terminal, zonder eerdere uitvoer, paneelindeling of sessiestatus.
Splits met Naar rechts splitsen / Naar beneden splitsen, het contextmenu of Cmd+D / Cmd+Shift+D. Het onderstaande behoud geldt voor herbruikbare werkruimten, inclusief verhoudingen en focus.
- De sneltoets, Esc, buiten klikken of focusverlies verbergen alleen het venster. Dezelfde shell, invoer, geschiedenis en taken blijven actief.
- Zet het venster vast om het zichtbaar te houden bij het wisselen van apps. Grootte, dekking en vastzetstatus blijven bij verbergen behouden.
- Voer
exituit om de sessie te beëindigen; opnieuw openen start een nieuwe shell.
Schakel terminal.preserve-sessions in voordat je een nieuwe snelle terminal opent om deze na normaal afsluiten van Zshell actief te houden. Beide backends verbinden bij heropenen met dezelfde shell. Zshell → Afsluiten en alle sessies beëindigen beëindigt ook verborgen sessies. Een herstart van macOS beëindigt de sessies.
Snel starten, waarmee je opdrachten opslaat en uitvoert, is een afzonderlijke functie.
Vim-opdrachthulp
Beheer de hulp via Instellingen → Terminal → Gedrag → Vim-opdrachthulp en open vervolgens Info in de rechterzijbalk. Onder de sessiegegevens verschijnt een gedeelte VIM-OPDRACHTEN zolang Vim, Vi of Neovim actief is. Dit staat in nieuwe configuraties standaard aan en geldt onmiddellijk voor bestaande terminals op beide backends.
De volledige lijst met veelgebruikte opdrachten blijft beschikbaar; alleen de prioriteit verandert. De normale modus zet :w, :q, yy en p/P vooraan; Visueel blok zet I/A, blokwijzigingen en beweging tussen hoeken vooraan. Invoegen, Vervangen, Visueel, Visuele regel, Selecteren, opdrachtregel- en zoekmodus hebben een eigen volgorde. Bij elke opdracht staan de toepasselijke modi. Zoek op toetsen, beschrijving of modusnaam; beschrijvingen en zoekinterface volgen elk van de 17 app-talen. Wis de zoekopdracht om de volledige lijst te herstellen. De hulp is naslagmateriaal en stuurt nooit invoer naar de editor.
Lokale editors worden herkend aan hun uitvoerbare voorgrondprogramma. Binnen SSH, Mosh of een terminalmultiplexer gebruikt de detectie de zichtbare Vim-modus- of statusregel en schermindeling, zonder een externe plug-in te installeren. Houd Vim's showmode of een herkenbare statusregel ingeschakeld. Configuraties die moduslabels verbergen of hernoemen, kunnen terugvallen op hulp voor de normale modus of externe detectie verhinderen; aangepaste toetsbindingen worden niet geïnterpreteerd. Alleen het actieve Info-paneel wordt bemonsterd. De hulp verdwijnt wanneer het voorgrondprogramma verandert of de editor niet meer herkenbaar is.
Je kunt dit ook in het configuratiebestand inschakelen met terminal.vim-command-hints = true.