Windows 10 coder 设置指南
博主有一台Windows PC,主要是用来打游戏,偶尔也用来在WSL里做一做开发和博客写作。慢慢发现WSL其实用起来还是很舒适的, 我也渐渐的开始接纳用Windows来做一些平常只会在Mac上做的事情. 碰巧最近重新安装了系统, 这一篇日志主要记录一下一些我常用的工具的配置过程。 这些都是主要在Windows端, 如果没有特别说明, 命令都是跑在powershell里, 如果权限不够, 请以管理员权限运行powershell再运行命令.
最近升级到了 Windows 11, 文中内容同样适用于Windows 11
Windows Terminal
首先要解决的就是一个好用的terminal,要知道windows的 powershell 或者 cmd 可真的是很劝退啊.
这里最好的选择无疑是 Windows Terminal 和WSL有无缝集成非常方便。
WSL2
如果是insider build的话,有一个简化版的安装指令
1wsl --install
否则的话, 需要参考下面的步骤安装.
首先, 运行下列命令打开windows subsystem for linux 功能
1dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
wsl2 需要打开虚拟机支持
1dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
wsl2还需要一个kernel update 下载并运行这个安装包
这是默认版本为wsl2
1wsl --set-default-version 2
然后就可以去微软商店去安装你想要的linux的版本即可。我用的是Ubuntu 20.04 LTS。
Linux GUI apps
目前, 我把系统升级到了 Windows 11, 可以尝试Linux GUI apps. 具体的步骤可以按照官网的教程
第一步, 是安装专门的 GPU driver. 根据你的显卡类型选择即可.
第二步, 需要update WSL. 注意 Linux GUI 只在WSL2中被支持.
我目前用过的Linux GUI apps 有
- Intellij IDEA
- 不能IDEA GUI app中创建command line entry, 但是可以手动创建这个symbol link
1sudo ln -s /opt/idea/bin/idea.sh /usr/local/bin/idea
- 不能IDEA GUI app中创建command line entry, 但是可以手动创建这个symbol link
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? winget search sublime
2名称 ID 版本
3-----------------------------------------------------------
4Sublime Text 4 SublimeHQ.SublimeText.4 4.0.0.410700
5Sublime Text 3 SublimeHQ.SublimeText.3 3.2.2
6Sublime Merge SublimeHQ.SublimeMerge 2056
7Sublime Merge (Dev) SublimeHQ.SublimeMerge.Dev 2057
1winget install SublimeHQ.SublimeText.4
Chocolately
Chocolately是另一个第三方的windows包管理软件. 可以和WinGet互补, 目前不是所有的软件都在WinGet里.
Chocolately 安装方法
首先调整 execution policy
1Get-ExecutionPolicy
2#上述命令如果返回Restricted,则更新为
3Set-ExecutionPolicy AllSigned
4# 或者
5Set-ExecutionPolicy Bypass -Scope Process
然后在powershell里运行
1Set-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
1winget install git
Docker
1winget install Docker.DockerDesktop
Vim
1winget install vim
需要自己添加vim binary C:\Program Files\Vim\vim82
到system path 去.
推荐 SpaceVim
Visual Studio Code
1winget install Microsoft.VisualStudioCode
因为Visual Studio Code和 WSL的集成非常的好, 所以我大部分的编码就只需要在Code中打开ubuntu里的proj即可. 再加上Windows Terminal, 基本满足了所有的需求.
当然了, 如果需要比较heavy的IDE, 可以考虑vnc-like的方案, 或者 Linux GUI on WSL.
Emacs
1winget install GNU.Emacs
也需要自己添加 path C:\Program Files\Emacs\x86_64\bin
Spacemacs
1git clone https://github.com/syl20bnr/spacemacs C:\Users\syi\appdata\roaming\.emacs.d
Notion
1winget install notion
SharpKeys
对于有一些支持qmk的键盘或者本身固件支持按键映射的键盘, 就没有这个需求.
但是, 对于不支持固件修改案件映射的键盘,可能需要利用到window上的keymap软件. 比如, 我一般需要将 caplocks 映射成 control.
1winget install sharpkeys
starship
Rust编写, 跨平台terminal主题, 支持各种操作系统上的terminal
1choco install starship
安装后需要在powershell的启动中去调用
1echo $PROFILE
2# 应该是 C:\Users\xxx\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
3# 如果这个文件不存在就请自行创建
1# 把下列加入到profile文件的最后一行即可
2Invoke-Expression (&starship init powershell)
重启windows terminal即可.
安装Nerd字体
为了正确的显示一些图标, 需要安装Nerd字体, 这里推荐 Fira Code Nerd Font
在Windows Terminal上按ctrl+,
,调出设置页面,然后将字体改为刚才安装的字体即可.
fzf
1choco install fzf
可能需要手动添加path 默认安装位置 C:\ProgramData\chocolatey\bin\fzf.exe
验证系统能否找到fzf binary
1Get-Commands fzf
需要一个powershell module - PSFzf 来和fzf 做集成
安装方式是通过powershell galary
1Install-Module -Name PSFzf -RequiredVersion 2.2.6
在powershell或者windows terminal中运行下列命令来绑定ctrl+r
1# replace 'Ctrl+t' and 'Ctrl+r' with your preferred bindings:
2Set-PsFzfOption -PSReadlineChordProvider 'Ctrl+t' -PSReadlineChordReverseHistory 'Ctrl+r'
把这一行加入到之前的
1C:\Users\xxx\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
重启terminal之后, 如果按 ctrl+r, 应该会用fzf来返回最近的命令行历史