首先请确保已安装 Git

下载字体

下载并安装字体,为了修复乱码

地址: https://github.com/ryanoasis/nerd-fonts/releases 我使用的是 Hack。

Install PowerShell

安装方式很多,自行搜索,我是直接从 Microsoft store 安装

Terminal 的基本设置

修改字体为你下载的字体 image.png

开启亚克力效果 image.png

设置默认终端 image.png

安装 Scoop

iwr -useb get.scoop.sh | iex

安装 Neovim

scoop install neovim gcc
nvim --version

PowerShell 配置

# 确认处于 user\xxx 目录下
nvim .config/powershell/user_profile.ps1

让我们先搞点 alias

# Alias
Set-Alias vim nvim
Set-Alias ll ls
Set-Alias g git
if(!(Test-Path $PROFILE.CurrentUserCurrentHost)) {New-Item -Type File -Path $PROFILE.CurrentUserCurrentHost -Force}

nvim $PROFILE.CurrentUserCurrentHost

输入以下代码并:wq

. $env:USERPROFILE\.config\powershell\user_profile.ps1

完成以上操作我们就可以重启 Terminal

# 验证我们的配置文件是否生效
ll
g --version

安装 posh-git/oh-my-posh/Terminal-Icons

Install-Module posh-git -Scope CurrentUser -Force
Install-Module oh-my-posh -Scope CurrentUser -Force
Install-Module -Name Terminal-Icons -Repository PSGallery -Force
# 确保当前在 user/xxx 下
vim ./.config/powershell/user_profile.ps1

导入模块

# Prompt
Import-Module posh-git
Import-Module oh-my-posh
Set-PoshPrompt -Theme JanDeDobbeleer 

# Icons
Import-Module -Name Terminal-Icons
# 设置主题,后续可以根据自己的喜好更改,google oh-my-posh theme 查看相关主题

此时你终端内的图标应该会改变 image.png

安装 z

z 是一个快速跳转目录的命令,如何使用请查看文档 https://github.com/rupa/z

Install-Module -Name z -Force

安装 PSReadLine

Install-Module -Name PSReadLine -AllowPrerelease -Scope CurrentUser -Force -SkipPublisherCheck

vim ./.config/powershell/user_profile.ps1
# PSReadLine
Set-PSReadLineOption -EditMode Emacs
Set-PSReadLineOption -BellStyle None
Set-PSReadLineKeyHandler -Chord 'Ctrl+d' -Function DeleteChar
Set-PSReadLineOption -PredictionSource History
Set-PSReadLineOption -PredictionViewStyle ListView

此时你输入命令得到的结果应该跟我差不多 image.png

安装 PSFzf

Install-Module -Name PSFzf -Scope CurrentUser -Force

vim ./.config/powershell/user_profile.ps1
# Fzf
Import-Module PSFzf
Set-PsFzfOption -PSReadlineChordProvider 'Ctrl+f' -PSReadlineChordReverseHistory 'Ctrl+r'

用法基本跟 fzf 相似,可查看文档学习: https://github.com/kelleyma49/PSFzf

搞个 which 和 touch 命令出来

# 编辑 powershell 配置文件
vim ./.config/powershell/user_profile.ps1
# Utilities
function which ($command) {
  Get-Command -Name $command -ErrorAction SilentlyContinue |
    Select-Object -ExpandProperty Path -ErrorAction SilentlyContinue
}
function touch($name){
  if ($name) {
    $file_path = Split-Path -Path $name
    $file_name = Split-Path -Path $name -Leaf
    if ($file_path -eq "") {
      $file_path = "."
    }
    if (-Not (Test-Path($file_path))) {
      New-Item -ItemType "directory" -Path $file_path
    }
    New-Item -Path $file_path -Name $file_name -ItemType "file"
  }
  else {
     Write-Host "Command to create new file."
  }
}

image.png