Windows 10 Coder 设置指南

博主有一台Windows PC,主要是用来打游戏,偶尔也用来在WSL里做一做开发和博客写作。慢慢发现WSL其实用起来还是很舒适的, 我也渐渐的开始接纳用Windows来做一些平常只会在Mac上做的事情. 碰巧最近重新安装了系统, 这一篇日志主要记录一下一些我常用的工具的配置过程。 这些都是主要在Windows端, 如果没有特别说明, 命令都是跑在powershell里, 如果权限不够, 请以管理员权限运行powershell再运行命令.

Windows Terminal

首先要解决的就是一个好用的terminal,要知道windows的 powershell 或者 cmd 可真的是很劝退啊.

这里最好的选择无疑是 Windows Terminal
和WSL有无缝集成非常方便。

WSL2

如果是insider build的话,有一个简化版的安装指令

1
wsl --install

否则的话, 需要参考下面的步骤安装.

首先, 运行下列命令打开windows subsystem for linux 功能

1
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

wsl2 需要打开虚拟机支持

1
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

wsl2还需要一个kernel update
下载并运行这个安装包

这是默认版本为wsl2

1
wsl --set-default-version 2

然后就可以去微软商店去安装你想要的linux的版本即可。我用的是Ubuntu 20.04 LTS。

follow up

这几个是我还没有时间explore的, 以后会慢慢更新.

WinGet

WinGet是微软官方的一个cmd的包管理软件,一般是我的首选安装工具,其次才是Choco

https://github.com/microsoft/winget-cli

目前,WinGet还不是GA(generally avaiable), 需要至少 Windows 10 1809 (build 17763), 然后需要用户是 insider build。

WinGety的一个缺点就是不会自动更新Path, 有时候需要手动去更新system path.

常用的软件安装方法

1
2
3
4
5
6
7
? winget search sublime
名称 ID 版本
-----------------------------------------------------------
Sublime Text 4 SublimeHQ.SublimeText.4 4.0.0.410700
Sublime Text 3 SublimeHQ.SublimeText.3 3.2.2
Sublime Merge SublimeHQ.SublimeMerge 2056
Sublime Merge (Dev) SublimeHQ.SublimeMerge.Dev 2057
1
winget install SublimeHQ.SublimeText.4

Chocolately

Chocolately是另一个第三方的windows包管理软件. 可以和WinGet互补, 目前不是所有的软件都在WinGet里.

Chocolately 安装方法

首先调整 execution policy

1
2
3
4
5
Get-ExecutionPolicy 
#上述命令如果返回Restricted,则更新为
Set-ExecutionPolicy AllSigned
# 或者
Set-ExecutionPolicy Bypass -Scope Process

然后在powershell里运行

1
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

Git

1
winget install git

Docker

1
winget install Docker.DockerDesktop

Vim

1
winget install vim

需要自己添加vim binary C:\Program Files\Vim\vim82 到system path 去.

推荐 SpaceVim

Visual Studio Code

1
winget install Microsoft.VisualStudioCode

Emacs

1
winget install GNU.Emacs

也需要自己添加 path C:\Program Files\Emacs\x86_64\bin

Spacemacs

1
git clone https://github.com/syl20bnr/spacemacs C:\Users\syi\appdata\roaming\.emacs.d

Notion

1
winget install notion

SharpKeys

window上keymap软件. 可以将键盘按键映射称自己想要的按键.
我一般需要将 caplocks 映射成 control.

1
winget install sharpkeys

starship

Rust编写, 跨平台terminal主题, 支持各种操作系统上的terminal

1
choco install starship

安装后需要在powershell的启动中去调用

1
2
3
echo $PROFILE
# 应该是 C:\Users\xxx\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
# 如果这个文件不存在就请自行创建
1
2
# 把下列加入到profile文件的最后一行即可
Invoke-Expression (&starship init powershell)

重启windows terminal即可.

fzf

1
choco install fzf

可能需要手动添加path 默认安装位置 C:\ProgramData\chocolatey\bin\fzf.exe
验证系统能否找到fzf binary

1
Get-Commands fzf

需要一个powershell module - PSFzf 来和fzf 做集成

安装方式是通过powershell galary

1
Install-Module -Name PSFzf -RequiredVersion 2.2.6

在powershell或者windows terminal中运行下列命令来绑定ctrl+r

1
2
# replace 'Ctrl+t' and 'Ctrl+r' with your preferred bindings:
Set-PsFzfOption -PSReadlineChordProvider 'Ctrl+t' -PSReadlineChordReverseHistory 'Ctrl+r'

把这一行加入到之前的 C:\Users\xxx\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

重启terminal之后, 如果按 ctrl+r, 应该会用fzf来返回最近的命令行历史