Terminal Setup

This is a quick tutorial on getting the basics of a useful Terminal environment for development on a Windows machine.

Install Windows Terminal

Install the Windows Terminal and set it as Default https://aka.ms/terminal

Modify Security Settings to allow Shell to access files

Windows Security > Virus & Threat Protection > Manage Settings > Allow an app through Controlled Folder Access

Install Some CLI Tools

PowerShell 7

Get PS7 and enhanced auto-complete

1
winget install Microsoft.Powershell

git

1
winget install Git.Git

Text Editors

Neovim: A quick, lightweight text editor, helpful for fzf preview and small file edits

Bat: A text file reader with syntax highlighting NodeJS: Used by some vim plugins

1
2
3
winget install neovim
winget install bat --source winget
winget install OpenJS.NodeJS

Neovim Configurations

First, install the plugin manager vim-plug with the command

1
Invoke-WebRequest -useb https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim | New-Item "$env:LOCALAPPDATA/nvim-data/site/autoload/plug.vim" -Force

Create a config file at ~\AppData\Local\nvim\init.vim, populate it with some preferences like

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
set writebackup
set ignorecase
set number
call plug#begin()
Plug 'junegunn/vim-easy-align'
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install -all' }
Plug 'junegunn/fzf.vim'
Plug 'github/copilot.vim'
Plug 'folke/tokyonight.nvim'
call plug#end()
let g:fzf_vim = {}
let g:fzf_vim.preview_window = ['hidden,right,70%', 'ctrl-/']
colorscheme tokyotonight

Open nvim and run :PlugInstall. Close and reopen nvim and you should be able to run commands like :Files Also, to setup Copilot run :Copilot setup

fzf

Fuzzy finder, a useful tool for quickly maneuvering around and searching through files

1
winget install fzf

Profile addition to customize, this variable is also used by fzf.vim

1
$env:FZF_DEFAULT_OPTS="-i -m --preview-window='right:65%' --preview='bat --theme=OneHalfDark --color=always {}'";

Oh My Posh

1
2
winget install JanDeDobbeleer.OhMyPosh --source winget
oh-my-posh font install # MesloLGM Nerd Font

Profile additions to customize

1
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\clean-detailed.omp.json" | Invoke-Expression;

Helpful Modules

1
2
3
4
5
6
Set-PSRepository -Name PSGallery
Install-Module PSReadLine
Install-Module Az -AllowClobber
Install-Module SqlServer -AllowClobber
Install-Module DbaTools
Install-Module posh-git

Profile additions to enable

1
2
Import-Module PSReadLine
Import-Module posh-git
Built with Hugo
Theme Stack designed by Jimmy