Condividi tramite


Risoluzione dei problemi di Terminale Windows

Questa guida descrive alcuni errori e problemi comuni che possono verificarsi in Terminale Windows.

L'apertura delle impostazioni non esegue alcuna operazione (né apre un'applicazione imprevista)

Se si fa clic sul pulsante "Impostazioni" nell'elenco a discesa, il terminale tenterà di aprire il file delle impostazioni, settings.json. In questo modo il sistema operativo proverà ad avviare l'editor di file configurato .json. Potrebbe trattarsi di Visual Studio o Blocco note o di un'altra applicazione completamente imprevista. Se nel computer non è presente un editor configurato .json, il sistema operativo mostrerà infine la finestra di dialogo "Come desideri aprire il file".

Suggerimento

È anche possibile usare l'interfaccia utente delle impostazioni per configurare le impostazioni. È possibile apprendere come aprire l'interfaccia utente delle impostazioni nella pagina Azioni.

Impostare la distribuzione di WSL in modo che venga avviata nella directory ~ della home nelle versioni precedenti di Terminale Windows

Per impostazione predefinita, la directory startingDirectory di un profilo è %USERPROFILE% (C:\Users\<YourUsername>), ovvero un percorso di Windows. Per le distribuzioni WSL che eseguono una nuova versione di Terminale Windows, i file system possono immettere ~ per impostare questo percorso home. Nelle versioni precedenti di Terminale Windows, è possibile usare /home/<Your Ubuntu Username> per fare riferimento direttamente alla cartella home. Ad esempio, l'impostazione seguente avvierà la distribuzione "Ubuntu-20.04" nel percorso file della home directory:

{
    "name": "Ubuntu-20.04",
    "commandline" : "wsl -d Ubuntu-20.04",
    "startingDirectory" : "/home/<Your Ubuntu Username>"
}

Se si usa una versione molto anticipata di Terminale Windows, WSL potrebbe richiedere l'uso del prefisso \\wsl$\ quando si fa riferimento al percorso iniziale di una distribuzione per l'impostazionestartingDirectory. Ad esempio, l'impostazione seguente avvierà la distribuzione "Ubuntu-18.04" nel percorso file della home directory:

{
    "name": "Ubuntu-18.04",
    "commandline" : "wsl -d Ubuntu-18.04",
    "startingDirectory" : "//wsl$/Ubuntu-18.04/home/<Your Ubuntu Username>"
}

Importante

Nelle versioni più recenti di Windows startingDirectory può accettare percorsi in stile Linux.

Impostazione del titolo della scheda

Per fare in modo che il titolo della scheda venga impostato automaticamente dalla shell, vedi questa esercitazione. Per impostare un titolo personalizzato per la scheda, aprire il file settings.json e seguire questa procedura:

  1. Nel profilo di una riga di comando a scelta aggiungi "suppressApplicationTitle": true per eliminare gli eventi di modifica del titolo che vengono inviati dalla shell. Se aggiungi solo questa impostazione al profilo, il titolo della scheda verrà impostato sul nome del profilo.

  2. Se vuoi impostare un titolo di scheda personalizzato e non il nome del profilo, aggiungi "tabTitle": "TITLE". Sostituisci "TITLE" con il titolo preferito per la scheda.

Argomenti della riga di comando in PowerShell

Per informazioni sul funzionamento degli argomenti della riga di comando in PowerShell, vedere la pagina Argomenti della riga di comando.

Argomenti della riga di comando in WSL

Per informazioni sul funzionamento degli argomenti della riga di comando in WSL, vedere la pagina Argomenti della riga di comando.

Problema con l'impostazione di startingDirectory

Se l'impostazione di startingDirectory viene ignorata nel profilo, verificare prima di tutto che la sintassi del file settings.json sia corretta. Per semplificare la verifica della sintassi, "$schema": "https://aka.ms/terminal-profiles-schema" viene inserito automaticamente. Alcune applicazioni, ad esempio Visual Studio Code, possono usare lo schema inserito per convalidare il file JSON durante le modifiche.

Se le impostazioni sono corrette, è possibile che sia in esecuzione uno script di avvio che imposta separatamente la directory iniziale del terminale. PowerShell, ad esempio, prevede un proprio concetto separato dei profili. Se cambi qui la directory iniziale, questa impostazione avrà la precedenza su quella definita in Terminale Windows.

In alternativa, se esegui uno script usando l'impostazione del profilo commandline, è possibile che stia impostando qui la posizione. Analogamente ai profili PowerShell, i comandi hanno la precedenza sull'impostazione del profilo startingDirectory.

Lo scopo di startingDirectory è avviare una nuova istanza di Terminale Windows nella directory specificata. Se il terminale esegue qualsiasi codice che cambia la directory, potrebbe essere questa la causa del problema.

CTRL+= non aumenta le dimensioni del carattere

Se usi un layout di tastiera tedesco, potresti riscontrare questo problema. CTRL+= viene deserializzato come CTRL+MAIUSC+0 se il layout della tastiera principale è impostato su Tedesco. Si tratta del mapping corretto per le tastiere tedesche.

Più importante, l'app non riceve mai la sequenza di tasti CTRL+MAIUSC+0 . Ciò è dovuto al fatto che CTRL+MAIUSC+0 è riservato da Windows se sono attivi più layout di tastiera.

Se vuoi disabilitare questa funzionalità per il corretto funzionamento di Ctrl+=, segui le istruzioni su come cambiare i tasti di scelta rapida per sostituire il layout della tastiera in Windows 10 in questo post di blog.

Modificare l'opzione 'Cambia layout tastiera' su 'Non assegnato' (o disattivato CTRL +MAIUSC), quindi selezionare OK e quindi Applica. CTRL+MAIUSC+0 dovrebbe ora funzionare come associazione di tasti e viene passato al terminale.

Se al contrario si usa questa funzionalità di tasti di scelta rapida per più lingue di input, è possibile configurare combinazioni di tasti personalizzate nel file settings.json.

Il testo è sfocato

Alcuni driver video e combinazioni di hardware non gestiscono lo scorrimento e/o le aree modificate senza sfocare i dati del frame precedente. Per ovviare a questo problema, è possibile aggiungere una combinazione di queste impostazioni di rendering globali per ridurre la pressione esercitata sull'hardware dal renderer di testo del terminale.

I colori sembrano strani! Ci sono barre nere sullo schermo!

Importante

Questo vale solo per la versione 1.2+ di Terminale Windows. Se si riscontrano problemi di colore in Terminale Windows 1.0 o 1.1 o problemi non illustrati qui, segnalare un bug.

Terminale Windows 1.2 e versioni successive hanno una migliore comprensione di alcune impostazioni del colore dell'applicazione. Grazie a questa migliore comprensione, è stato possibile rimuovere una serie di blocchi di compatibilità che davano luogo a un'esperienza utente scarsa. Sfortunatamente, esiste un numero ridotto di applicazioni che potrebbero riscontrare problemi.

Questo elemento di risoluzione dei problemi verrà mantenuto aggiornato con l'elenco dei problemi noti e le relative soluzioni alternative.

Linee nere in PowerShell (5.1, 6.x, 7.0)

Il terminale, in combinazione con la libreria di modifica delle righe di PowerShell PSReadline, può disegnare linee nere sullo schermo. Queste aree in formato non crittografato si estendono sullo schermo oltre il prompt, ovunque siano presenti parametri di comando, stringhe o operatori.

PSReadline versione 2.0.3 è stata rilasciata e contiene una correzione per questo problema. Se si usa la versione non definitiva di PSReadline, si noti che una correzione non è ancora disponibile.

Per eseguire l'aggiornamento alla versione più recente di PSReadline, eseguire il comando seguente:

Update-Module PSReadline

Perché le emoji non vengono visualizzate come icone nella jumplist?

Solo le immagini collegate da un percorso di file possono essere visualizzate come icone del profilo nella jumplist. Le emoji non sono supportate per le icone jumplist.

Note tecniche

Le applicazioni che usano la famiglia di APIGetConsoleScreenBufferInfo per recuperare i colori della console attiva in formato Win32 e quindi tentare di trasformarli in sequenze VT multipiattaforma (ad esempio, trasformando BACKGROUND_RED in \x1b[41m) possono interferire con la capacità del terminale di rilevare il colore di sfondo che l'applicazione sta tentando di usare.

Gli sviluppatori di applicazioni sono invitati a scegliere funzioni API Windows oppure sequenze VT per regolare i colori e non tentare di combinarli.

Avviso del servizio di tastiera

A partire da Terminale Windows 1.5, il terminale visualizzerà un avviso se il "Servizio tastiera virtuale e pannello per la grafia" è disabilitato. Questo servizio è richiesto dal sistema operativo per instradare correttamente gli eventi di input all'applicazione Terminale (nonché molte altre applicazioni in Windows). Se viene visualizzato questo avviso, è possibile seguire questa procedura per riabilitare il servizio:

  1. Nella finestra di dialogo Esegui eseguire services.msc

    services.msc in the run dialog

  2. Trovare "Servizio tastiera virtuale e pannello per la grafia"

    Touch Keyboard and Handwriting Panel Service in Services.msc

  3. Aprire "Proprietà" per questo servizio

    service properties

  4. Modificare il "Tipo di avvio" in "Automatico"

    service startup type

  5. Premere "OK" e riavviare il PC.

Dopo il riavvio del computer, il servizio dovrebbe essere avviato automaticamente e la finestra di dialogo non dovrebbe più essere visualizzata.

Perché viene visualizzato un lampeggiamento o uno sfarfallio quando si usa una riga di comando git bash?

È possibile notare un lampeggiamento o uno sfarfallio quando si usa una riga di comando git bash all'interno di Terminale Windows. Questo comportamento è in realtà previsto. Il terminale sta obbedendo a ciò che git bash sta dicendo di fare (impostare lo stile della campana su visibile, causare l'associazione di un lampeggiamento alla risposta a campana), MA comprendiamo che questo comportamento può portare a distrazioni. Per risolvere questo problema, aprire il file .inputrc per Git bash con un editor di testo. È probabile che questo file si trovi nel percorso C:\Program Files\Git\etc. Per aprire con l'editor di testo Nano: nano ~/.inputrc

Modificare il valore predefinito:

# none, visible or audible
set bell-style visible

Impostare lo stile campana su none o audible per rimuovere il lampeggiamento visibile:

set bell-style none

Premere CTRL+O e CTRL+X per salvare e uscire.

Informazioni su come ripristinare le impostazioni predefinite in Terminale Windows

Per ripristinare le impostazioni predefinite originali, eliminare il file settings.json. In questo modo Terminale Windows rigenererà un file settings.json con le impostazioni predefinite originali.

Importante

A partire da Terminale Windows versione 1.10 o successiva, è anche necessario eliminare il file state.json nella stessa directory del file settings.json per reimpostare completamente le impostazioni predefinite.

Perché l'opacità acrilica non rende trasparente lo sfondo di Terminale Windows?

È possibile impostare la trasparenza di una finestra del terminale con la proprietà useAcrylic. Esistono alcuni motivi per cui l'impostazione di opacità potrebbe non funzionare per l'acrilico, tra cui:

  • Come criterio a livello di sistema, l'acrilico è abilitato solo per la finestra in primo piano. Quindi, se si attiva una finestra diversa dal terminale, l'acrilico del terminale verrà disattivato.
  • L'acrilico non funziona se l'hardware GPU non lo supporta. Se si esegue un'app in una macchina virtuale (VM) o su desktop remoto, è probabile che l'acrilico non funzioni.
  • L'acrilico può essere disabilitato dal sistema operativo per diversi motivi, ad esempio in modalità risparmio energetico (batteria insufficiente) o quando si accede a un computer con Desktop remoto.

Perché il puntatore del mouse scompare quando lo si passa su una finestra e digitando?

Questo comportamento di rimozione automatica del cursore è progettato, ma può essere disabilitato cercando nelle Impostazioni di Windows "Impostazioni del mouse" > "Ulteriori Impostazioni mouse" > "Proprietà mouse" > "Opzioni puntatore" > Deselezionare "Nascondi puntatore durante la digitazione". Potrebbe essere necessario riavviare il Terminale Windows affinché questa modifica venga applicata.