Het ontwikkelen van software is een kieskeurige taak. Aan het einde van de dag draait de hele klus om het schrijven van instructies in een vreemde taal voor een kritische tolk die alles waar je aan hebt gewerkt zal afsluiten. Nou, het is tijd om Windows Terminal te installeren en een betere manier te ontdekken.
In deze Ultieme Gids ga je leren over een van de beste consoles voor ontwikkelaars; de Windows Terminal. Je krijgt een volledig overzicht van bijna alle functies van Windows Terminal. Je leert hoe het je kan helpen dingen te doen op Windows op de opdrachtregel.
Windows Terminal verbetert de console-ervaring met moderne terminalfuncties zoals tabbladen, panelen en zelfs achtergrondafbeeldingen. Je kunt zelfs een volledige Linux-shell laten draaien naast Windows PowerShell of cmd.exe zonder te hoeven schakelen tussen console-sessies.
Dit artikel zal een stapsgewijze handleiding zijn over de vele mogelijkheden van Windows Terminal. Het zal een praktische tutorial zijn, dus wees voorbereid om aan de slag te gaan!
Vereisten
De vereisten voor het installeren en gebruiken van Windows Terminal zelf zijn vrij basic. Het enige wat je nodig hebt is een Windows 10 machine met build 1903 (mei 2019) of later. Als je wilt meedoen met alle demonstraties in dit artikel, moet je ook een paar andere tools geïnstalleerd hebben:
- De Windows Subsystem for Linux (WSL) functie ingeschakeld met een geïnstalleerde Linux distributie (alle getoonde demo’s gebruiken Ubuntu 20.04)
- Visual Studio Code (VS Code)
- Python met de rijk tekst bibliotheek geïnstalleerd
- Visual Studio 2019 of later met:
- De Windows 10 1903 SDK geïnstalleerd
- Het Desktop Development with C++ Component geïnstalleerd
- Het Universal Windows Platform Development Component geïnstalleerd
- De C++ (v142) Universal Windows Platform Tools Component geïnstalleerd
Terminal vs. Console vs. Shell
Omdat we in dit artikel veel termen behandelen, is het belangrijk om eerst een begrip te krijgen van enkele terminologieverschillen zodat je niet in de war raakt.
Hoewel de concepten vergelijkbaar zijn, is het belangrijk op te merken dat een terminal niet hetzelfde is als een console en niet hetzelfde als een shell. Elk heeft zijn eigen specifieke doel. Scott Hanselman heeft een geweldige blogpost over de definities van elk, maar hier is hoe ze in dit artikel zullen worden gebruikt:
- Terminal: De Windows Terminal-toepassing.
- Console: Elke console-hosttoepassing die niet de Windows Terminal is.
- Shell: Het programma tussen de terminal en het besturingssysteem. (pwsh, cmd, zsh, enz.)
Installeer Windows Terminal
Er zijn verschillende manieren om Windows Terminal te installeren, maar veruit de makkelijkste (en door Microsoft aanbevolen) manier is om het te installeren vanuit de Microsoft Store. Er zijn twee verschillende versies die je kunt downloaden; de standaard Windows Terminal en de Windows Terminal Preview.
Voor de doeleinden van dit artikel kun je een van beide gebruiken. De installatie is rechttoe rechtaan, dus dat zullen we niet behandelen in dit artikel en we gaan ervan uit dat je het al hebt geïnstalleerd.
Wanneer je Windows Terminal voor de eerste keer opent, ziet het er niet indrukwekkend uit of voelt het niet zo. Er zijn veel aanpassingen die je zult moeten maken om daar te komen, maar het begint allemaal met een venster zoals deze hieronder.

Merk op dat de Windows Terminal vier primaire componenten heeft:
- Terminalvenster – Hier zul je het grootste deel van je werk doen, en waar je het meest kunt aanpassen.
- Tabnaam – Windows Terminal ondersteunt tabs, wat betekent dat je verschillende shells kunt hebben
- Nieuwe Tab – Deze knop opent een nieuwe tab van je standaardprofiel
- Profielenlijst – Dit geeft de profielen weer die beschikbaar zijn om te openen.
Windows Terminal heeft een minimalistisch ontwerp, maar er zit veel functionaliteit verborgen achter.
Het bouwen van de Terminal vanuit de bron
Hoewel dit de Windows-terminal is en het afkomstig is van Microsoft, is het ook volledig open-source, wat betekent dat als je dat wilt, je eraan kunt bijdragen. Het is een C++-programma met een zeer actieve community.
Zelfs al is dit een GA-product, op het moment van schrijven worden er nog steeds een paar kleine bugs aangepakt en zijn er functies op de routekaart voor toekomstige ontwikkeling. Misschien ben jij degene die bijdraagt aan hen!
Als je een ontwikkelaar bent en echt in de code wilt duiken, kun je de Windows Terminal vanuit PowerShell bouwen, volg deze stappen:
- Voer
git submodule update --init --recursive
uit om alle git-submodules bij te werken - Voer de onderstaande PowerShell-opdrachten uit:
Het settings.json-bestand: Alles aanpassen
Uiteindelijk wil je waarschijnlijk de terminal naar jouw wensen aanpassen. Een van de beste dingen aan Windows Terminal is hoe aanpasbaar het is. De meest voorkomende manier om de Windows Terminal aan te passen is door het settings.json-bestand te bewerken dat zich bevindt in de %LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\-map.
Je kunt ook toegang krijgen tot het settings.json-bestand door te klikken op de profielenlijst en Instellingen te selecteren.
Het settings.json-bestand is waar je het grootste deel van de aanpassingen voor Windows Terminal zult uitvoeren totdat er een grafische optie beschikbaar is.
Het Windows Terminal-team heeft beloofd in een aankomende release dat er binnenkort een GUI zal worden uitgebracht voor het beheren van instellingen!
Naast het hebben van alle instellingen op één handige plek opgeslagen, kunt u, wanneer instellingen in een JSON-bestand zijn opgeslagen, uw instellingen in versiebeheer plaatsen of een back-up maken voor het geval u tussen verschillende machines verplaatst.
U kunt zelfs de instellingen delen met anderen. Als u een kijkje wilt nemen op een voorbeeld van hoe een settings.json eruitziet, bekijk er dan een hier.
Het settings.json-schema
Als u Visual Studio Code gebruikt, bevat de terminal een JSON-schema dat helpt bij het valideren van eventuele aanpassingen die u aanbrengt in settings.json, inclusief het automatisch aanvullen van nieuwe aanpassingen.
Zodra uw wijzigingen zijn opgeslagen (zolang settings.json nog steeds geldig is), worden de nieuwe wijzigingen onmiddellijk weerspiegeld in de terminal of wordt er een foutmelding weergegeven zonder dat de terminal hoeft te worden vernieuwd.
Hoewel Visual Studio Code niet vereist is om JSON te bewerken, wordt het zeker aanbevolen als het gaat om het aanpassen van de Windows Terminal.
Er zijn momenteel vier verschillende secties van settings.json die bepalen hoe Windows Terminal eruitziet en aanvoelt: Globals, Profielen, Schemas en Toetsbindingen. Laten we naar elke sectie kijken.
Globals
De global-sectie is verantwoordelijk voor het bepalen van het gedrag van de Windows Terminal. Altijd helemaal bovenaan het bestand controleert de globale sectie zaken zoals bevestigen bij sluiten, visueel thema en het standaardprofiel. Je kunt een voorbeeld zien in onderstaande code snippet.
Profielen
A profile is a configuration of the Windows Terminal that has its own shell, theme, and settings. When you open up a Windows Terminal profile, it will open a session with the assigned shell, environment, or WSL distribution. This means you can have different shells open at the same time, or different sessions of the same shell, which can be useful when testing code cross-platform or need to run a background process.
Windows Terminal wordt standaard geleverd met drie profielen: Windows PowerShell, cmd.exe en Azure Cloud Shell. Als u WSL geïnstalleerd heeft, zal het ook een profiel genereren voor elke geïnstalleerde WSL-distributie. Het bevat ook een defaults sectie die instellingen zal toepassen op elk profiel in settings.json. Dit is een uitstekende plek om Unicode-compatibele lettertypen te plaatsen, die later in dit artikel zullen worden behandeld.
Je kunt een voorbeeld zien van hoe een profiel eruitziet in onderstaand codefragment.
Het aanmaken van een nieuw profiel
Het instellen van profielen kan handig zijn als je variaties wilt toevoegen aan dezelfde shell, of aangepaste externe profielen aan de terminal wilt toevoegen.
Om een nieuw Windows Terminal-profiel aan te maken in settings.json, moet je de volgende stappen volgen:
Zorg ervoor dat je na elk profiel een komma toevoegt, behalve bij de laatste, om de JSON geldig te maken.
- Kopieer een willekeurig profiel uit je profielsectie. Deze beginnen bij
[
en eindigen bij]
onder de list-knoop in het JSON-bestand. Dit zijn regels zeven tot en met veertien hierboven. - Genereer een nieuwe GUID door
[guid]::NewGuid()
uit te voeren vanuit elke PowerShell-sessie. Vervang de huidige waarde voorguid
in je nieuwe profiel door de GUID die je hebt gegenereerd. GUIDs worden willekeurig gegenereerd wanneer de terminal de standaardprofielen instelt. - Voeg andere parameters toe of wijzig ze om het profiel aan te passen.
- Kopieer de inhoud van settings.json en controleer of het nog steeds geldig is door het door JSON Lint of een andere JSON-linter te halen. Los eventuele problemen op.
- Sla je wijzigingen op.
Er zijn veel opties beschikbaar om te configureren in een profiel. Houd er rekening mee dat als je een instelling hebt in de standaardsectie in settings.json, en je hebt dezelfde instelling ingesteld in je nieuwe profiel, je de standaardinstelling zal overschrijven. Voor een volledige uitleg, bekijk de Windows Terminal-instellingen documentatie.
Schemas
Deze sectie verwijst naar kleurenschema’s voor uw Windows Terminal-profielen. Een kleurenschema vertelt de terminal welke hexadecimale waarde te gebruiken voor elke kleur die in de terminal verschijnt. Aangezien de terminal kleuren kan weergeven in 24-bit, kunnen deze kleuren behoorlijk creatief worden. Elk schema zal een naam hebben en een lijst met kleuren die worden toegewezen aan een hexadecimale waarde die eenvoudig kan worden gewijzigd zoals hieronder wordt getoond.
Deze kleuren zullen overeenkomen met de achtergrond- en tekstkleuren terwijl je dat schema gebruikt in de Windows Terminal. Als je settings.json open hebt in Visual Studio Code, kun je klikken op de hexadecimale waarden die een grafische schuifregelaar hebben die de werkelijke kleuren laat zien zoals hieronder te zien is.

Terminal thema’s (aangeduid als schemes in de Windows Terminal) zijn niet ongewoon in de wereld van terminalprogramma’s. Hoewel er geen enkele manier is om een thema (schema) te maken dat werkt in verschillende terminaltoepassingen, kun je veel tools vinden om ze te maken, ongeacht de toepassing die je gebruikt. Je kunt vrij gemakkelijk een vooraf gemaakte vinden, of je kunt je eigen maken!

Sneltoetsen
Sneltoetsen zijn hoe de Windows Terminal sneltoetsen toewijst voor acties zoals nieuwe panelen, tabbladen, of zelfs basisacties zoals kopiëren en plakken. Er zijn een boel acties die kunnen worden toegewezen aan aangepaste sneltoetsen, waardoor het gemakkelijk is om de terminal aan te passen op een manier die voor jou comfortabel is.
Je kunt in de volgende codefragment enkele standaard sneltoetsen zien.
Op dit moment begint je terminal misschien te werken zoals je wilt, maar je bent nog niet klaar. Het is nu tijd om te leren hoe je de look en feel van de terminal blijft aanpassen.
Visuele instellingen
Wanneer je het grootste deel van je werkende leven naar tekst op een scherm staart, is het de moeite waard om een paar extra stappen te zetten om die tekst gemakkelijker te bekijken. Of het nu gaat om het veranderen van de lettertypen, groottes of kleuren, het besteden van wat tijd aan het uiterlijk van je nieuwe Windows Terminal zal enorme voordelen opleveren na er een volledige werkdag naar te hebben gestaard.
Tekstverbeteringen
Een van de meest geadverteerde functies van de Windows Terminal is de ondersteuning voor 24-bits kleuren en versnelde tekstreproductie. Dat klinkt misschien niet indrukwekkend op zichzelf, totdat je het vergelijkt met hoe powershell.exe of cmd.exe tekst en kleur weergeven. Met behulp van de rijk bibliotheek van Python als voorbeeld, is het vrij duidelijk hoe groot de verschillen in weergavecapaciteit zijn tussen de oude consoles en de Windows Terminal.

Het openen van de rijk bibliotheek vanuit Python in de Windows Terminal en powershell.exe
De Windows Terminal heeft ook ondersteuning voor Unicode-karakters, wat betekent dat het kan worden gebruikt met andere alfabetten en symbolen, waaronder Cyrillische karakters, Kanji, en elk ander teken zal zonder problemen worden weergegeven. Dat komt door het Cascadia Code-lettertype, dat later zal worden behandeld.

Schrijven in Japanse Kanji met de Windows Terminal en powershell.exe
Dit heeft enkele duidelijke voordelen op het gebied van internationalisering, maar het ondersteunen van Unicode en UTF-8 betekent ook dat de Windows Terminal ook ondersteuning kan bieden voor…
Emoji ?
Emoji lijken misschien niet als een nuttige toevoeging voor een opdrachtregeltool, maar ze worden steeds meer een vast onderdeel in de ontwikkeling. Software-ingenieurs gebruiken ze om commits en issues te labelen, snel te reageren op berichten met apps zoals Slack of Microsoft Teams, en er is zelfs een emojiprogrammeertaal. Hoewel sommige daarvan zeker nuttiger zijn dan andere, is het duidelijk dat emoji hier zijn om te blijven.
Hieronder staat een voorbeeld van het renderen van emoji op de powershell.exe-console en hetzelfde in de Windows Terminal met behulp van de rich library van python. Let op de regel De Terminal is mooi
en zie het verschil.

Weergave van emoji met de rich-textbibliotheek van python
Cascadia Fonts
Zoals eerder vermeld, is het Cascadia Code-lettertype wat het mogelijk maakt om sommige van de tekens weer te geven. Maar het lettertype heeft ook enkele subtiele veranderingen die het gemakkelijker maken om er urenlang naar te kijken, zoals ligaturen.
Ter informatie: Hetzelfde team dat de Windows Terminal heeft ontworpen, heeft het Cascadia Code-lettertype specifiek gemaakt voor gebruik op de Windows Terminal.
Naast speciale tekens ondersteunt het Cascadia Code-lettertype ook ligaturen. Ligaturen zijn symbolen die iets anders worden weergegeven op het scherm. Je kunt een lijst van de ondersteunde ligaturen van Cascadia Code hier bekijken.

A printout of all the ligatures supported by Cascadia Code. Code here.
Als je liever geen ligaturen gebruikt, maar toch de andere voordelen van Cascadia Code wilt, wordt ook het Windows Terminal geleverd met een lettertype genaamd Cascadia Mono dat dat doet. Elk ervan heeft ook een variant voor powerline, (Cascadia Code PL
en Cascadia Mono PL
), die hierna wordt behandeld.
Powerline
Powerline is oorspronkelijk een vim-plug-in die informatie aan de shell toevoegde en bestaat al lang in de Linux-wereld. Het idee was om meer informatie in de prompt weer te geven, waardoor er meer informatie beschikbaar is terwijl je in de console werkt.
Powerline is overgezet, gekloond en gerepliceerd in elke moderne shell, inclusief PowerShell, maar vanwege de beperkingen van de vorige consoles ontbrak er iets. De terminal lost dat probleem op door specifieke symbolen genaamd glyphs op te nemen. Glyfen worden in powerline gebruikt om de prompt in één oogopslag veel meer informatie te geven.
Powerline in PowerShell
Voor PowerShell kun je een powerline-achtige prompt configureren door oh-my-posh te installeren met behulp van de onderstaande voorbeeldcode.
Zodra dat is geïnstalleerd, zal uw PowerShell-prompt meer informatie bevatten, inclusief de git-branchnaam en commits tussen externe en lokale repositories. U kunt hieronder een voorbeeld zien.

Dit is het Paradox-thema van oh-my-posh met enkele aanpassingen om het huidige besturingssysteem en de PowerShell-versie weer te geven.
Powerline in Bash
Voor Bash moet u een shell-achtige zsh of fishshell installeren. Deze voegen enkele functies en aangepaste markeringen toe aan de terminal, maar kunnen wat moeilijk te gebruiken zijn op zichzelf. Het wordt aanbevolen om ook een framework voor zsh te installeren, zoals ohmyzsh, wat het gebruik ervan een stuk eenvoudiger maakt. ohmyzsh wordt geleverd met thema’s en aanpassing van de bash-prompt vergelijkbaar met hoe oh-my-posh dat doet voor een PowerShell-prompt.
Zodra dat is geïnstalleerd, kunt u het thema wijzigen door de ZSH_THEME-eigenschap in het bestand ~/.zshrc te wijzigen. Wijzig dat met een editor zoals vim of nano en sla het bestand op. Zodra dat is gedaan, voer source ~/.zshrc
uit en uw wijzigingen worden toegepast.

Wisselen van het thema agnoster naar het thema robbyrussell in zsh.
Achtergrondafbeeldingen
Een van de meest besproken functies van de Windows Terminal bij de release was de mogelijkheid om afbeeldingen te gebruiken in elk profiel. Tot nu toe heb je waarschijnlijk gemerkt dat de achtergronden allemaal een enkele kleur hebben, gedefinieerd in het settings.json bestand met de background
tag.
Sommige mensen vinden afbeeldingen afleidend tijdens het coderen, dus als je een van die mensen bent, hier is een voorbeeld van het gebruik van een achtergrond met een enkele kleur in settings.json.
Met een enkele kleur ingesteld, wordt die kleur de achtergrond voor dat profiel. Als er geen achtergrondtag is ingesteld in je profiel, zal de Windows Terminal standaard gebruiken wat er in je schema staat.

Het bovenstaande voorbeeldprofiel zal deze kleur als achtergrond tonen.
Om een achtergrondafbeelding te gebruiken, moet je de afbeelding op je lokale bestandssysteem hebben. Op het moment van schrijven ondersteunt de Terminal geen achtergrondafbeeldingen van een URL. In settings.json, navigeer naar het profiel waaraan je de achtergrondafbeelding wilt toewijzen. Voeg vanaf hier de backgroundImage
tag toe en geef deze de waarde van het pad naar de afbeelding. Hieronder staat een voorbeeld dat het profielachtergrond instelt op een afbeelding van een kat.

Als je besluit om je eigen achtergrond aan te passen, weet dan dat de terminal geen rekening houdt met jouw kleuren tegen je achtergrond. De terminal zal standaard de kleuren gebruiken die in het schema van je huidige profiel staan. Als je niet voorzichtig bent, kun je een lichte kleur tekst op een lichte kleur achtergrond zetten, wat het erg moeilijk maakt om te lezen. Niet alle achtergronden zijn geschikt als terminalachtergronden.
De Terminal-cat staat in je terminal, gebruikmakend van je achtergrond.
Zolang settings.json nog steeds een geldig JSON-bestand is en nog steeds voldoet aan het terminalschema, zie je de achtergrond meteen bijwerken zonder dat je handmatig hoeft te vernieuwen of de terminal opnieuw hoeft te openen. Je kunt hieronder een geweldig voorbeeld zien van deze real-time updates.

De Windows Terminal wordt bijgewerkt zodra je wijzigingen aanbrengt in settings.json en deze opslaat.
Positionering van afbeeldingen
Je denkt misschien dat afbeeldingen te afleidend zijn in een terminalvenster, en dat kunnen ze zijn. Maar ze kunnen ook een snelle referentie zijn als je vaak moet wisselen tussen tabbladen en profielen. Hieronder zie je een voorbeeld van het gebruik van een achtergrondafbeelding om de gebruikte shell te benadrukken.
Om een achtergrondafbeelding in te stellen, zoals hierboven getoond, heb je drie extra parameters nodig die beginnen met backgroundImage
om de grootte, locatie en dekking van de afbeelding op het scherm te regelen. Vergeet niet altijd de documentatie te controleren om te zien welke opties beschikbaar zijn. Hieronder staat een voorbeeld van het profiel zoals hierboven weergegeven.

Windows Terminal ondersteunt ook geanimeerde gifs, dus als je het niet te afleidend vindt, kun je ook wat plezier hebben met je profielen.

Geavanceerde Windows Terminal-commando’s
Dus nu je terminal is ingesteld en aangepast naar jouw wensen, is het tijd om enkele van de meer geavanceerde mogelijkheden van de Windows Terminal te verkennen.
Split Panes met verschillende kernels
Windows Terminal ondersteunt meerdere panelen. Dit betekent dat je parallelle sessies kunt uitvoeren in hetzelfde Terminal-venster. Dit gedrag is niet nieuw. Andere consoletoepassingen ondersteunen al jaren panelen. De Windows Terminal is anders omdat het profielen ondersteunt (in settings.json), je kunt elke sessie openen in zijn eigen paneel. Zelfs als elke sessie een volledig ander besturingssysteem is, zoals bij het gebruik van WSL of een extern profiel (meer over externe profielen later), kun je een paneel tonen voor elk besturingssysteem.
Om splitpanes van verschillende profielen te maken, moet in settings.json elk profiel zijn eigen splitPane
-snelkoppeling hebben. Door de profile
-parameter te specificeren met de naam of GUID van het Windows Terminal-profiel, kun je elk profiel zij aan zij openen.
De split
-eigenschap kan worden ingesteld op horizontal
, vertical
of auto
, die de oriëntatie zal kiezen die de meeste ruimte biedt op basis van het momenteel geselecteerde paneel. Hieronder zie je een voorbeeld van het instellen van sneltoetsen voor vier panelen.

Aanpassen hoe de Windows Terminal wordt geopend
Als je niet van sneltoetsen houdt, of je wilt een snelle manier om de terminal met de CLI te openen, dan heb je geluk. De Windows Terminal bevat een command-line executable genaamd wt
waarmee je het kunt automatiseren om het te openen in de gewenste configuratie.
Hieronder zie je een voorbeeld van het doorgeven van verschillende argumenten terwijl je de terminal opent, wat het gedrag verandert.

Externe profielen
Meestal draaien je profielen lokale shells. Echter, Windows Terminal kan ook externe sessies weergeven via een concept genaamd externe profielen!
Als je naar andere voorbeeldprofielen voor de Windows Terminal kijkt, zul je misschien merken dat sommige helemaal geen .exe-toepassingen gebruiken. De Windows Terminal is flexibel genoeg zodat je zelfs het ssh
-commando of het Enter-PsSession
-PowerShell-commando kunt gebruiken om profielen te maken die overeenkomen met externe servers of andere shells. Je kunt zelfs terraform console
gebruiken om een Terraform-sessie te starten! Een voorbeeld daarvan zie je in het profiel hieronder.
Door de commandline
-parameter te gebruiken in de profielsectie van settings.json, kun je bijna alles openen als een eigen Windows Terminal-profiel dat niet interactief hoeft in te loggen.

Het openen van de Python REPL en een SSH-verbinding naar een AWS EC2-instantie met Windows Terminal-profielen
Samenvatting
Op dit punt zou je niet alleen bekend moeten zijn met de Windows Terminal, maar ook je eigen instellingen hebben geconfigureerd en een redelijk comfortabele configuratie hebben opgezet. Je zou profielen en toetsaanslagbindingen moeten kunnen aanpassen om het uiterlijk en de werking van de terminal te beheren, evenals weten hoe je de lettertypen, glyphs en tekens kunt aanpassen die je in de terminal kunt gebruiken.
Command-line tools verdwijnen niet. Ontwikkelaars en ingenieurs moeten ze blijven gebruiken. De nieuwe Windows Terminal zal niet voorkomen dat software-ontwikkeling een baan blijft waarbij je naar kleine tekst op een scherm staart, maar het kan het wel een stuk eenvoudiger maken om ermee door te gaan!