首先请确保已安装 Git
下载字体
下载并安装字体,为了修复乱码
地址: https://github.com/ryanoasis/nerd-fonts/releases 我使用的是 Hack。
Install PowerShell
安装方式很多,自行搜索,我是直接从 Microsoft store 安装
Terminal 的基本设置
修改字体为你下载的字体
开启亚克力效果
设置默认终端
安装 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 查看相关主题
此时你终端内的图标应该会改变
安装 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
此时你输入命令得到的结果应该跟我差不多
安装 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."
}
}