How to set up perfect command-line environment on Windows

Windows Terminal

First of all, you should install Windows Terminal. It is a modern terminal emulator for users of command-tools and shells, including PowerShell, bash within WSL, SSH, Command Prompt, and any other command-line app.

Why install Windows Terminal? Here are some of the most important reasons I can think of:

  • tabs
  • panes – split panes, multiple shells at same time
  • search
  • keybindings / shortcuts
  • command palette (like the one in VS Code)
  • zooming
  • better and more customizable themes
  • dynamic changes – while you change and save JSON settings you can see changes reflecting in your shells

It has easily configurable and dynamic profiles (you can see changes in real-time while changing JSON settings), color schemes, it has GUI for settings, it has command palette, and many other features.

You can get Windows Terminal in 3 different easy ways

 

Visual Studio Code

I also like to install Visual Studio Code to help me quickly navigate and edit any kind of configuration or code files. It’s also an amazing tool to work on JavaScript and TypeScript projects. It can be used for various other programming languages as well.

How to install: Official website or Chocolatey package

If you install via official website, you should have VS Code added to the file context menu (right click) for both files and directories.

 

PowerShell

After that, you should decide which shell you want to use. I use PowerShell 7, also known as PowerShell Core, it is an open-source, cross-platform version of PowerShell.

You can install PowerShell 7 in two easy ways:

Once you are done installing PowerShell you should install few PowerShell modules (extensions):

  • posh-git
  • oh-my-posh
  • PSReadLine

 

If you already don’t have it, I would advise you to install PowerShellGet. It is a module that lets you install other modules for PowerShell. You can check the PowerShell Gallery website for more information.

How to install PowerShellGet – Installing PowerShellGet

Posh Git

posh-git is a PowerShell module that integrates Git and PowerShell by providing Git status summary information that can be displayed in the PowerShell prompt, e.g.:

C:\Users\Keith\GitHub\posh-git [main ≡ +0 ~1 -0 | +0 ~1 -0 !]>

Installation:

    • Via PowerShellGet —  / PowerShell Gallery
      • PowerShellGet\Install-Module posh-git -Scope CurrentUser -AllowPrerelease -Force
    • Via chocolatey: choco install poshgit

oh-my-posh

Oh My Posh is a prompt theme for any engine, including PowerShell 7. It was inspired by oh-my-zsh (for all of you unix users). You can use a lot of already available themes or create your own or customize one of the existing ones, as I did. 

Adding and modifying pieces of oh-my-posh through JSON configuration is quite easy. 

Installation is quite simple. You can check official docs – Installation

To do it via PowerShell execute following command

Install-Module oh-my-posh -Scope CurrentUser -AllowPrerelease

If you want to set a specific theme for oh-my-posh do the following:

Set-PoshPrompt -Theme jandedobbeleer

 

PSReadLine

Another module – PSReadLine offers better line editing experience for the PowerShell Console

Easiest way to install PSReadLine is through PowerShell and PowerShellGet:

Install-Module PSReadLine -AllowPrerelease -Force

 

Setting up PowerShell profile

To create a new profile or access existing one from your PowerShell or Windows Terminal type:

code $PROFILE

Paste the following in your VS Code editor:

Save and reload your PowerShell / windows terminal.

 

Getting a good font for your windows terminal

I recomend Cascadia Code – You can download it from Microsoft’s GitHub page — microsoft/cascadia-code: This is a fun, new monospaced font that includes programming ligatures and is designed to enhance the modern look and feel of the Windows Terminal. (github.com)

Once you download and install the font, you should set Font face property for your profile to: Cascadia Code PL

 

Or from Nerd Fonts homepage — Nerd Fonts – Iconic font aggregator, glyphs/icons collection, & fonts patcher

If you download the one from Nerd Fonts, and installed Caskaydia Cove Nerd Font Complete Windows Compatible in your windows terminal profile settings you need to use following value for font: CaskaydiaCove NF

 

 

This is how your windows terminal should look like now in a git repository:

Related Posts
No related posts for this content
Ibrahim Šuta

Software Consultant interested and specialising in ASP.NET Core, C#, JavaScript, Angular, React.js.