Il terminale
Motori del terminale, ambiente della shell, gestione dei collegamenti, notifiche e funzioni di sicurezza di Zshell.
Ogni pannello del terminale esegue la tua vera shell di login e usa uno dei due motori nativi accelerati dalla GPU. Zshell gestisce tutto ciò che li circonda: pannello attivo, ricerca, notifiche, collegamenti, cronologia, temi e sicurezza dell'incolla. Il comportamento resta quindi coerente qualunque emulatore tu scelga.
Motori del terminale
Scegli un motore in Impostazioni → Terminale → Motore:
| Motore | Note |
|---|---|
| Ghostty | Predefinito |
| Alacritty | Generalmente usa meno memoria |
Entrambi supportano accelerazione GPU, immagini, catalogo di temi condiviso di Zshell, ricerca, eventi del mouse, notifiche e indicazioni di avanzamento. Cambiare motore ha effetto solo sui nuovi terminali; i pannelli esistenti mantengono l'emulatore con cui sono stati avviati.
La tua shell, invariata
Ogni sessione avvia la shell di login del tuo account, quindi prompt, alias, funzioni e dotfile vengono caricati come in qualsiasi terminale. Zshell aggiunge variabili che ne indicano identità e capacità:
| Variabile | Valore |
|---|---|
TERM_PROGRAM | ghostty |
TERM_PROGRAM_VERSION | La versione delle capacità Ghostty implementate da Zshell |
ZSHELL_TERM | ghostty o alacritty, il motore effettivo del pannello |
Entrambi i motori si presentano come Ghostty tramite TERM_PROGRAM, perché le CLI che supportano immagini e notifiche lo usano come indicazione delle capacità disponibili. Usa ZSHELL_TERM solo quando devi distinguere il motore di rendering.
Zshell non legge ~/.config/ghostty né una configurazione Alacritty. Caratteri, colori, comportamento dell'input e motore si configurano nelle impostazioni di Zshell.
Avviato dal Dock o dal Finder, Zshell legge SSH_AUTH_SOCK dalla shell di login interattiva per usare l’agent scelto nei dotfile. L’avvio da un terminale conserva l’agent ereditato valido.
Permessi di sistema
I programmi locali in un terminale Zshell possono richiedere l’accesso alla fotocamera o al microfono, oppure il controllo di un’altra app tramite Apple Events. macOS attribuisce queste richieste a Zshell; consenti l’accesso solo ai programmi attendibili. L’autorizzazione per l’automazione è specifica per ogni app di destinazione.
Gestisci l’accesso in Impostazioni di Sistema → Privacy e sicurezza → Fotocamera, Microfono o Automazione. Rifiutare una richiesta blocca la funzionalità corrispondente. Zshell non concede questi permessi automaticamente.
Il focus segue il mouse
Attiva Impostazioni → Terminale → Comportamento → Il focus segue il mouse per mettere a fuoco il pannello quando entra il puntatore. Disattivato per impostazione predefinita, vale per entrambi i motori e il terminale rapido. Non cambia durante un trascinamento, da un editor o con menu o finestre di dialogo aperti.
terminal.focus-follows-mouse = true
Ricerca
| Azione | Scorciatoia |
|---|---|
| Trova | Cmd+F |
| Trova successivo | Cmd+G |
| Trova precedente | Shift+Return nella barra di ricerca |
| Usa la selezione per cercare | Cmd+E |
| Pulisci il terminale | Cmd+K |
La ricerca agisce sul pannello terminale o editor attivo e rimane attiva finché il campo di ricerca ha il focus della tastiera.
Modificare l'input al prompt
Fai clic all'interno del prompt attivo della shell per spostare il cursore di input, poi continua a digitare in quella posizione. In un prompt zsh, trascina sull'input per selezionare un intervallo: digitando sostituisci la selezione, mentre Backspace o Delete la elimina. Doppio e triplo clic continuano a selezionare testo del terminale; i programmi che abilitano gli eventi del mouse, come le TUI a schermo intero, continuano a ricevere i propri eventi.
Se una shell annidata o sostitutiva non ha caricato il supporto Zshell per la modifica del prompt, il trascinamento seleziona ancora testo da copiare ma non modifica l'input. La modifica della selezione riprende quando torni al prompt originale.
Il campo di input standard di Claude Code supporta il posizionamento con un clic e la modifica tramite trascinamento su entrambi i motori, anche per bozze su più righe o mandate a capo. Digita o incolla per sostituire l'input selezionato, oppure premi Backspace o Delete per eliminarlo. Le modalità normale e visuale di Vim, le finestre di dialogo, i segnaposto di allegati o di testo incollato compresso e la trascrizione scorsa mantengono il normale comportamento di selezione del terminale. Le applicazioni che catturano il mouse continuano a gestire il proprio input.
L'input vocale da Zisla usa l'azione Incolla del terminale. In Claude Code sostituisce anche un intervallo di input selezionato; la ripetizione intenzionale di una frase rimane supportata.
Scorciatoie dell'applicazione in primo piano
Quando le scorciatoie di un'applicazione nel terminale entrano in conflitto con Zshell, fai clic destro sul pannello e attiva Blocca i comandi Zshell. Le combinazioni con modificatori, compresa Ctrl+Return, vengono inviate all'applicazione in primo piano mentre il pannello ha il focus della tastiera. Copia, Incolla e Seleziona tutto rimangono disponibili.
L'impostazione vale solo per quel pannello. Fai di nuovo clic destro e rimuovi la spunta per ripristinare le scorciatoie Zshell. Se un'applicazione cattura il mouse, tieni premuto Shift durante il clic destro per aprire il menu di Zshell.
Coda dei prompt
Attiva un terminale e premi Cmd+Shift+M, oppure scegli Mostra/nascondi coda dei prompt nella tavolozza dei comandi. La barra si apre sotto quel terminale. Scrivi una voce e premi Return o Aggiungi alla coda; ogni voce occupa una sola riga e le interruzioni di riga incollate vengono sostituite da spazi.
Quando la zsh originale torna a un prompt vuoto, Zshell invia la voce successiva e preme Invio. Le voci vengono eseguite nell'ordine della coda. L'invio automatico attende mentre un agente o un altro programma in primo piano controlla il terminale, oppure mentre il prompt contiene una bozza di input. Richiede l'integrazione zsh di Zshell; altre shell e shell annidate possono usare l'invio manuale.
Ogni voce ha i pulsanti Invia ora e Rimuovi. Invia ora manda immediatamente testo e Invio al programma corrente del terminale, senza attendere il prompt della shell. Esc o il pulsante di chiusura nasconde la barra mantenendo le voci in coda. Ogni terminale ha la propria coda; chiudere la sessione o uscire da Zshell la elimina.
Percorsi e URL
Zshell riconosce gli URL web e i percorsi locali esistenti stampati dai programmi del terminale. I collegamenti locali possono essere assoluti, relativi a ~/, ./ o ../, oppure relativi alla cartella di lavoro corrente del pannello. Un suffisso diagnostico come :42 o :42:7 non impedisce di trovare il file.
- Comando-clic su un percorso locale lo mostra nel Finder; su un URL lo apre nel browser predefinito.
- Comando-clic destro su un percorso offre Nuova scheda file / Nuovo pannello file; su un URL offre Nuova scheda browser / Nuovo pannello browser.
- I programmi a schermo intero che abilitano gli eventi del mouse ricevono il normale clic destro. Tieni premuto Maiusc durante il clic destro per aprire il menu del terminale e del pannello di Zshell.
In questo modo, l'output dei compilatori e le trascrizioni degli agenti offrono un accesso diretto allo stesso progetto. Il comportamento del browser è descritto in Pannelli browser.
Notifiche
Zshell inoltra due eventi del terminale al Centro Notifiche:
- la campanella di una sessione che non è attiva;
- una richiesta
OSC 777;notifyda un programma, ad esempio una compilazione lunga o un agente di programmazione.
Le notifiche possono riprodurre il suono di sistema. Fare clic su una notifica attiva Zshell e apre la sessione precisa che l'ha emessa. macOS chiede il permesso solo quando un terminale tenta per la prima volta di inviare una notifica, non all'avvio di Zshell.
Completamento dei comandi
Apri Impostazioni → Terminale → Notifiche dei comandi per ricevere una notifica al termine di un comando:
- Comandi di lunga durata: scegli 5, 10, 30 o 60 secondi. Un comando eseguito per almeno quel tempo genera una notifica di completamento. Il valore predefinito è Disattivato.
- Comandi non riusciti: notifica uno stato di uscita diverso da zero, indipendentemente dalla durata. Questa opzione è attiva nelle nuove configurazioni e si può disattivare separatamente.
Queste impostazioni si applicano ai terminali zsh creati dopo la modifica, su entrambi i motori. Usano l'evento di completamento dei comandi della shell originale; i comandi eseguiti in una shell annidata o in un programma interattivo non segnalano i singoli completamenti tramite questa integrazione.
Le stesse impostazioni possono essere salvate in ~/.config/zshell/config.toml:
terminal.notify-finish-seconds = 30
terminal.notify-on-error = trueImposta terminal.notify-finish-seconds a 0 per disattivare le notifiche basate sulla durata. La consegna delle notifiche segue le impostazioni di macOS.
Indicazioni di avanzamento
I programmi che emettono lo stato di avanzamento OSC 9;4 mostrano una barra sottile sopra il terminale, con stati distinti per esecuzione normale, pausa ed errore. Non serve attivare nulla: se il programma comunica l'avanzamento, il pannello lo mostra.
Appunti, trascinamento e sicurezza dell'incolla
- Le letture degli appunti richiedono conferma.
OSC 52può richiedere gli appunti di macOS, anche da un host remoto via SSH. Zshell chiede prima di restituirli. - I contenuti rischiosi da incollare vengono segnalati. Il testo su più righe o simile a un comando viene trattenuto in attesa di conferma anziché essere inviato subito.
- File e schermate diventano percorsi sicuri per la shell. I file Finder sono inseriti come percorsi assoluti tra virgolette. Un’immagine sola viene salvata come PNG temporaneo privato e ne viene incollato il percorso. I pannelli remoti caricano prima file e schermate sull’host.
Input con il tasto Opzione
Per impostazione predefinita, Opzione resta alla sorgente di input attiva di macOS, così layout come Polish Pro possono digitare caratteri composti. Attiva Usa Opzione come Alt/Meta nelle Impostazioni quando vuoi inviare le combinazioni con Opzione al programma del terminale come scorciatoie Meta. Vedi terminal.macos-option-as-alt.
Il comando zshell
Ogni terminale Zshell include una CLI che conosce il progetto:
zshell # crea un progetto nella cartella corrente
zshell vim ~/src/app.swift # lo crea ed esegue questo argv nel primo terminale
zshell +themes # esplora i temi e ne mostra l'anteprima interattiva
zshell +themes --list --dark # stampa i nomi dei temi senza aprire il selettore
zshell +help # mostra tutti i gruppi di comandiIl selettore dei temi mostra ogni scelta in anteprima nell'intera app; Invio la salva ed Esc ripristina il tema precedente.
Caratteri
Zshell include JetBrains Mono e i simboli Nerd Font. Qualsiasi famiglia monospaziata installata può sostituire il carattere latino; una famiglia CJK installata può essere inserita prima dei ripieghi per simboli e di sistema. Vedi font-family, terminal.font-fallback-family, font-size, terminal.font-thicken e terminal.line-height.
Terminale rapido globale
Mentre Zshell è aperto, Cmd+I o Terminale → Terminale rapido mostra o nasconde un terminale indipendente. Regola dimensione, opacità e scorciatoia in Impostazioni → Terminale → Terminale rapido.
Comportamento della sessione: Riutilizza lo spazio di lavoro (predefinito) / Nuovo spazio a ogni apertura. Il riuso mantiene riquadri e attività. I nuovi spazi terminano quando vengono nascosti. Il modo cambia alla prossima apertura; tornando indietro lo spazio riutilizzabile resta disponibile. La cronologia segue la configurazione della shell. Un nuovo spazio inizia sempre con un solo terminale vuoto, senza ripristinare output, disposizione o stato precedenti.
Dividi con Dividi verso destra / Dividi verso il basso, il menu contestuale o Cmd+D / Cmd+Shift+D. La conservazione seguente riguarda gli spazi riutilizzabili, incluse proporzioni e messa a fuoco.
- La scorciatoia, Esc, un clic esterno o la perdita del focus nascondono solo la finestra. La stessa shell, l’input, la cronologia e le attività rimangono attivi.
- Fissa la finestra per mantenerla visibile passando ad altre app. Dimensione, opacità e fissaggio si conservano quando è nascosta.
- Esegui
exitper terminare la sessione; riaprirla avvia una nuova shell.
Abilita terminal.preserve-sessions prima di aprire un nuovo terminale rapido per mantenerlo dopo l’uscita normale da Zshell. Alla riapertura, entrambi i motori si ricollegano alla stessa shell. Zshell → Esci e termina tutte le sessioni termina anche le sessioni nascoste. Riavviare macOS termina le sessioni.
Avvio rapido, che salva ed esegue comandi, è una funzione separata.
Suggerimenti per i comandi Vim
Gestisci i suggerimenti in Impostazioni → Terminale → Comportamento → Suggerimenti per i comandi Vim, poi apri la scheda Info della barra laterale destra. Una sezione COMANDI VIM compare sotto le informazioni della sessione mentre Vim, Vi o Neovim è attivo. È attiva per impostazione predefinita nelle nuove configurazioni e si applica subito ai terminali esistenti su entrambi i motori.
L'elenco completo dei comandi comuni resta disponibile; cambia solo la priorità: la modalità Normale mette per primi :w, :q, yy e p/P; Visuale a blocchi mette per primi I/A, le modifiche a blocchi e lo spostamento tra gli angoli. Inserimento, Sostituzione, Visuale, Visuale per righe, Selezione, riga di comando e ricerca hanno un proprio ordine. Ogni voce indica le modalità in cui si applica. Cerca per tasti, descrizione o nome della modalità; descrizioni e interfaccia di ricerca seguono una qualsiasi delle 17 lingue dell'app. Cancella la ricerca per ripristinare l'elenco completo. I suggerimenti sono un riferimento e non inviano mai input all'editor.
Gli editor locali vengono identificati tramite l'eseguibile in primo piano. Dentro SSH, Mosh o un multiplexer del terminale, il rilevamento usa la riga visibile di modalità/stato di Vim e la disposizione dello schermo, senza installare plugin remoti. Mantieni attivo showmode di Vim o una riga di stato riconoscibile. Le configurazioni che nascondono o rinominano le etichette delle modalità possono mostrare i suggerimenti della modalità Normale o impedire il rilevamento remoto; le mappature personalizzate non vengono interpretate. Viene campionato solo il pannello Info attivo e i suggerimenti scompaiono quando cambia il programma in primo piano o l'editor non è più riconoscibile.
Puoi attivare la funzione anche nel file di configurazione con terminal.vim-command-hints = true.