最近更换了开发用的 Windows 台式机电脑,本文主要记录其开发环境配置的过程。
1 系统初始化、基本设置
1.1 系统初始化跳过联网离线安装
Windows 11 新系统开机后会进入安装初始化过程,其中有一个步骤要求联网且无法跳过。由于内网 wifi 有认证机制,无法法直接简单联网使用。
可通过如下方法启用离线模式:
- 按快捷键
Shift + F10
(或者Fn+Shift+F10
)可以打开cmd
窗口 - 鼠标点击一下它获取焦点,然后输入命令:
oobe\BypassNRO.cmd
- 回车执行命令,此时Win11会重启,再进入联网的界面时,会有一个暂时跳过的选项
BypassNRO.cmd
里的命令主要就是修改注册相关项然后重启,所以也可直接执行如下命令:
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE /v BypassNRO /t REG_DWORD /d 1 /f shutdown /r /t 0
1.2 C 盘分区
由于预装系统整个磁盘只有一个 C 盘(512GB),于是将它分为了 C、D 两个逻辑分区。主要方法步骤为:
- 打开资源管理器,在
此电脑
上右键并选择管理
,会打开计算机管理
应用界面。 - 展开值
存储 -> 磁盘管理
,在磁盘分区列表右键,选择压缩卷..
。 - 在弹出的
压缩卷
界面,输入压缩空间大小(给新分区的大小)。建议给 C 盘预留200G
以上空间。我这里输入了204800
,给 C 盘留了255G
。 - 在压缩出来的分区上右键选择
新建简单卷
,按默认步骤继续操作即可创建一个新的 D 盘逻辑分区。
1.3 激活为专业版
系统预装了 windows 11 家庭版,如果你有专业版的秘钥,在系统->激活
界面输入序列号就可以激活为专业版。
这里是使用了内网的 kms
激活方案,首先找了一个专业版的秘钥,在激活页面升级为专业版并重启,然后打开管理员权限的 CMD 命令行,依次执行如下命令使用 KMS 激活:
cd C:\WINDOWS\system32 # 查看当前激活信息、系统版本 slmgr /dlv # 卸载已注册的序列号 slmgr /upk # 安装 GVLK 秘钥 slmgr /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX # 设置 MKS 服务器地址 # 这里只是一个示例,实际使用了内网企业购买和搭建的KMS激活服务器 # 需要替换为你实际可用的 KMS 服务器网址或 IP 地址(如 kms.0t.net.cn、kms.msguides.com、kms.03k.org 等) slmgr -skms 192.168.10.100 # 执行激活请求 slmgr /ato # 查询过期时间 slmgr /xpr
KMS 是微软为企业级批量许可服务提供的方案。更多关于 KMS 激活为不同系统版本的信息可从如下链接了解:
https://learn.microsoft.com/zh-cn/windows-server/get-started/kms-client-activation-keys
1.4 更改应用、文档等默认保存位置
由于存在被 C 盘膨胀支配的历史,应用、文档等都习惯放在其它分区,个人文档放在其它磁盘。修改方法:
依次点开 系统设置 -> 存储 -> 高级 -> 保存新内容的地方
,将所有选项都修改至非 C 盘盘符即可。
1.5 旧电脑开启局域网共享复制文件
旧电脑为 Windows 10 系统,可以在网络共享设置中启用局域网共享以复制文件到新电脑中。步骤参考:
网络 -> 高级共享设置 -> 所有网络 -> 启用共享以便可以访问网络
- 在希望共享的文件夹或磁盘上右键,选择
共享 -> 特定用户 -> Everyone -> 读取
- 也可以在这里统一添加文件夹共享:
计算机管理 -> 系统工具 -> 共享文件夹 -> 共享 -> 新建共享
- 记得复制完毕后及时关闭共享设置、移除重要的共享目录,否则应设置需密码访问的共享方式
我这里将新电脑的 D 盘设置为共享,并在旧电脑里映射为本地 Z 盘驱动器。由于有数十个 git
仓库需要同步过去,之间简单的 Copy 是行不通的。正好用上了之前写的一个小工具lzwme/dir-fast-copy,效果参考下图:
2 应用安装与开发环境配置
2.1 更新 PowerShell 至最新版
系统默认的 PowerShell 为 5.1 版本,在使用 Scoop
安装有些软件时可能会报错。
- 参考:在 Windows、Linux 和 macOS 上安装
PowerShell
- 打开
应用商店
并搜索PowerShell
,可以直接安装7.x
版本 - 也可以使用
Scoop
安装(见后文,需先安装Scoop
):scoop install powershell
- 打开
配置 PowerShell
如果你喜欢 oh-my-posh
风格,可以参考该文:安装与配置 oh-my-posh
但实际体验过程中 oh-my-posh
带来的延迟太严重,所以不再考虑它,改为自定义部分配置,参考如下。
执行命令 notepad $PROFILE
,在打开的配置文件中填写如下内容(参考):
# 设置预测文本来源为历史记录 Set-PSReadLineOption -PredictionSource History # 设置 Tab 键补全 Set-PSReadlineKeyHandler -Key Tab -Function Complete # 设置 Ctrl+d 为菜单补全和 Intellisense Set-PSReadLineKeyHandler -Key "Ctrl+d" -Function MenuComplete # 设置 Ctrl+z 为撤销 Set-PSReadLineKeyHandler -Key "Ctrl+z" -Function Undo # 设置向上键为后向搜索历史记录 # Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward Set-PSReadLineKeyHandler -Key UpArrow -ScriptBlock { [Microsoft.PowerShell.PSConsoleReadLine]::HistorySearchBackward() [Microsoft.PowerShell.PSConsoleReadLine]::EndOfLine() } # 设置向下键为前向搜索历史纪录 # Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward Set-PSReadLineKeyHandler -Key DownArrow -ScriptBlock { [Microsoft.PowerShell.PSConsoleReadLine]::HistorySearchForward() [Microsoft.PowerShell.PSConsoleReadLine]::EndOfLine() } # 自定义 prompt 格式 function prompt { Write-Host "🍡 $pwd>" -ForegroundColor:green return " " }
2.2 安装 Git 及 Visual Studio 或 MSVC 工具集
在开发的过程中,很多时候都可能需要 MSVC 工具集支持。
Git 下载
: https://git-scm.com/download/win- Visual Studio(一般 Community 版本即可)
- Microsoft C++ 生成工具(安装了 Visual Studio 的话就不用了)
2.3 安装和配置 Scoop
首先自定义 Scoop
安装路径(软件安装位置在 C
盘,这里指定到其他盘符)。打开 PowerShell
并执行如下命令:
# 修改当前用户应用的安装路径 $env:SCOOP='D:\scoop\user-apps' [environment]::setEnvironmentVariable('SCOOP',$env:SCOOP,'User') # 修改全局应用的安装路径(需要管理员权限的应用一般需全局安装,尽量保持放在 C 盘) $env:SCOOP_GLOBAL='C:\scoop\apps' [environment]::setEnvironmentVariable('SCOOP_GLOBAL',$env:SCOOP_GLOBAL,'Machine')
然后执行如下命令安装和配置 Scoop
:
# install Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser # irm -useb get.scoop.sh | iex irm https://mirror.ghproxy.com/raw.githubusercontent.com/lzwme/scoop-proxy-cn/master/install.ps1 | iex # config scoop config SCOOP_REPO https://mirror.ghproxy.com/github.com/ScoopInstaller/Scoop scoop bucket rm main # scoop bucket add main https://mirror.ghproxy.com/github.com/ScoopInstaller/Main scoop bucket add spc https://mirror.ghproxy.com/github.com/lzwme/scoop-proxy-cn # show help scoop help # 安装必备应用: scoop-search、aria2... scoop install spc/scoop-search spc/aria2 spc/sudo
这里使用了我个人定制的同步加速仓库作为软件安装源 lzwme/scoop-proxy-cn,详细了解可参考该文:Scoop 的安装、使用与软件源定制。
2.3 使用 Scoop 安装应用
使用 Scoop 直接安装常用软件(不需要的行删除即可):
7zip
压缩解压缩工具
–TortoiseGit
Git 小乌龟。 sourcetree 也是一个可替代选项chrome
chrome 浏览器FiraCode
为编程而生的等宽字体JetBrains-Mono
为编程开发设计的无衬线等宽字体3270-NF
A font for the nostalgicvscode
vscode 编辑器nvm
nvm-windows (这里也可以换为使用fnm
)finalshell
SSH 终端。如果你不喜欢它,推荐安装开源免费的NxShell
,在应用商店即可搜索和安装switchhosts
Hosts 切换管理fiddler
抓包工具,开发助手openssl
TLS/SSL toolkitdocker
nginx
rust
android-studio
python2
python 2python
python 3 最新版qq
tim
wechat
微信WeChatWork
企业微信RevokeMsgPatcher
微信/QQ/TIM防撤回补丁DingTalk
钉钉feishu
飞书ADrive
阿里网盘BaiduNetDisk
百度网盘Tencent-Meeting
腾讯会议WPSOffice-cn
WPSffmpeg
音视频编辑的基础支持工具hub
USE GITHUB FROM THE COMMAND-LINEact
Github Actions 脚本本地执行工具everything
文件与目录索引,文件快速查找treesize
磁盘占用分析:空间去哪儿了wiztree
treesize 同类工具vlc
开源的直播视频观看工具Clash-for-Windows_Chinese
你懂的
可将以下安装命令保存为 D:\scoop-install.ps1
然后在 PowerShell
中执行它。有部分应用可能会因为更新信息不匹配报错无法安装,可以先删除掉再重新执行,已经安装成功的会自动跳过。
# 全局安装的工具或应用 sudo scoop install -g ` openssl ` JetBrains-Mono ` FiraCode ` 3270-NF # 无需管理员权限安装的应用 scoop install ` 7zip ` nvm ` switchhosts ` fiddler ` docker ` nginx ` rust ` android-studio ` python2 ` python ` RevokeMsgPatcher ` ffmpeg ` hub ` act ` everything ` treesize ` wiztree ` vlc ` Clash-for-Windows_Chinese
一些你想安装的工具软件可能在 scoop
仓库中是可以搜的(当前 spc 仓库源收集有 1.6w+ 应用),可通过 scoop-search
命令搜索,选择合适的版本进行安装。示例:
scoop-search jdk scoop info jdk scoop install orcalejdk8
2.5 手工下载安装的应用
由于 scoop
安装的应用适合使用 scoop update
进行更新,而一些常用应用可能会经常自动升级,此时就可能存在问题。
故一般来说,不需要经常升级版本的应用推荐使用 scoop
安装,重度使用并需要依赖自动更新升级新版本的应用,则推荐手工下载安装。
TortoiseGit
chrome
vscode
qq
tim
wechat
BaiduNetDisk
WeChatWork
DingTalk
feishu
ADrive
Tencent-Meeting
WPSOffice-cn
2.4 使用 nvm
安装 Node.js
nvm node_mirror https://npmmirror.com/mirrors/node/ nvm npm_mirror https://npmmirror.com/mirrors/npm/ nvm install 18 && nvm use 18 # 安装 Node.js 18 版本 npm set registry https://registry.npmmirror.com # 安装包管理工具 npm i -g @lzwme/nrm yarn pnpm nvm use taobao # 示例:nrm 添加内网 npm 私有仓库配置 # nrm add lzw https://registry.demo.me https://lzw.me # 安装个人开发辅助工具 npm i -g tsx npm-check-updates @lzwme/git-helper @lzwme/m3u8-dl
3 其他配置
3.1 git
配置
# 默认账号与邮箱 $ git config --global user.name "renxia" $ git config --global user.email "邮箱" # 生成 ssh 公私钥 ssh-keygen -t rsa # 查看公钥(复制并配置至 gitlab、github 等) cat ~/.ssh/id_rsa.pub
3.2 python
使用国内镜像
在当前用户目录下新建 pip/pip.ini
文件,内容为:
[global] index-url = https://mirrors.aliyun.com/pypi/simple/ [install] trusted-host=mirrors.aliyun.com
3.3 恢复右键菜单显示所有项
win11
右键菜单模式将超过x项的选项放到了”更多”中,导致许多右键操作需要多点一次菜单,非常不方便。若需改为 win10 的右键菜单模式,可参考如下方法操作。
使用管理员权限打开 cmd
,然后执行命令,然后重启系统或重启资源管理器(explorer.exe
)即可:
reg add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve
若需恢复 win11
右键模式,可重新执行如下命令:
reg delete "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /va /f
3.4 常用工具缓存位置设置
对于 python
、npm
、yarn
、pnpm
等工具,在涉及包下载时都会下载到缓存目录中,随着时间的增长,缓存文件会越来越多,占用磁盘空间。
我们可以将他们统一设置在一个目录位置下,以便于统一查看分析和快速清理。
新建目录 D:\cache
,然后参考执行如下命令:
# 设置 npm 缓存目录 npm config set cache "D:\cache\npm" # 设置 yarn 缓存目录 yarn config set cache-folder "D:\cache\yarn" # 设置 yarn global 缓存目录 yarn config set global-folder "D:\cache\yarn" # 设置 pnpm 缓存目录 pnpm config set store "D:\cache\pnpm" # 设置 python 包缓存目录 python -m pip config set global.cache-dir "D:\cache\pipcache"
- 设置
gradle
缓存目录:新增环境变量GRADLE_USER_HOME
,值为D:\cache\.gradle
。
4 小结
整个过程还是挺费时间的。由于内网限制了下载速度为 1M
以内,在使用 Scoop
批量安装应用时耗非了较多的时间。可以在旧电脑上使用 mstsc
远程协助方式连接,在工作的空隙去间歇性的配置。
在此记录以上流程备忘,也希望能对有类似情况的同学提供些许帮助。