本文基于Win11 x64编写
🚀 AI时代了,不建议在Windows中AI Coding,推荐所有项目都放到WSL内
🚀 在Windows上使用 IntelliJ IDEA、VS Code 等IDE,使用 Remote 直连WSL进行项目开发
文章索引:
安装Windows Terminal
Windows Terminal = 现代化终端壳 + 多环境统一入口 + 高生产力工具
# 在PowerShell中执行,如果无法下载,也可以从微软商店下载
# 安装
winget install Microsoft.WindowsTerminal
# 查看当前版本
Get-AppxPackage Microsoft.WindowsTerminal
# 更新
winget upgrade Microsoft.WindowsTerminal升级PowerShell(可选)
新版本PowerShell跨平台、性能更好,安装方式见:
https://learn.microsoft.com/zh-cn/powershell/scripting/install/install-powershell-on-windows

安装WSL2
详见:
WSL环境搭建
在WSL(linux子系统) 中完成Node、Python、JDK、Maven等环境安装
Node管理
fnm
fnm(Fast Node Manager)是用 Rust 编写的 Node.js 版本管理工具,速度远超 nvm,启动时间几乎为零,且支持 .node-version 和 .nvmrc 文件,与 nvm 生态完全兼容。
fnm官方地址:https://github.com/Schniz/fnm
安装fnm:
curl -fsSL https://fnm.vercel.app/install | bash初始化配置:
# 如果是 Bash:将以下内容加入到 ~/.bashrc
eval "$(fnm env --use-on-cd --shell bash)"
# 如果是 Zsh:将以下内容加入到 ~/.zshrc
eval "$(fnm env --use-on-cd --shell zsh)"
# 使配置立即生效
source ~/.bashrc # 或 source ~/.bashrc安装与切换Node:
# 查看所有可安装的版本
fnm list-remote
# 安装 Node.js LTS(推荐,长期支持版)
fnm install --lts
# 安装指定版本(如前端项目要求 Node 18)
fnm install 18
fnm install 20
fnm install 22
# 查看已安装版本
fnm list
# 全局切换默认版本
fnm default 22
# 当前会话临时切换
fnm use 18
# 验证
node -v && npm -v项目级版本自动切换:
在项目根目录创建 .node-version 文件,fnm 会在进入目录时自动切换(前提是配置了 --use-on-cd)
# 在项目根目录创建版本文件
echo "18" > .node-version
# 或者兼容 nvm 格式
echo "18" > .nvmrc
# 手动触发切换(也可进入目录自动触发)
fnm use
# 如果该版本未安装,自动安装并切换
fnm use --install-if-missing配置 npm 国内镜像(可选):
# 设置淘宝镜像(推荐)
npm config set registry https://registry.npmmirror.com
# 验证
npm config get registry
# 或者使用 nrm 快速切换镜像
npm install -g nrm
nrm ls # 列出所有镜像
nrm use taobao # 切换到淘宝镜像
# 安装 pnpm(更快的包管理器,推荐)
npm install -g pnpm
pnpm config set registry https://registry.npmmirror.com命令速查:

更多详见:https://github.com/Schniz/fnm/blob/master/docs/commands.md
nvm
nvm官方地址:https://github.com/nvm-sh/nvm
详细参考:
安装nvm:
# 安装nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash配置环境变量:
# 编辑文件
vim ~/.bashrc
# 写入配置
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm刷新配置文件:
# 刷新配置
source ~/.bashrc
# 判断nvm是否安装成功
nvm -vnvm常用命令:
nvm version
nvm list
nvm current
nvm install 20
nvm use 20
nvm uninstall 20
nvm install 24 --reinstall-packages-from=20
nvm alias default 24Python管理
开发环境pyenv和uv二选一就好了,新项目建议选择uv

pyenv
pyenv官方地址:https://github.com/pyenv/pyenv
安装命令:
curl -fsSL https://pyenv.run | bash设置环境变量:
# 编辑文件
vim ~/.bashrc
# 写入以下配置
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init - bash)"刷新配置文件:
# 刷新配置
source ~/.bashrc
# 判断pyenv是否安装成功
pyenv --versionuv
官方链接:https://github.com/astral-sh/uv
安装命令:
curl -LsSf https://astral.sh/uv/install.sh | sh验证安装:
uv --version更新/卸载uv:
# 更新uv
uv self update
# 卸载uv
rm -f ~/.local/bin/uv
rm -rf ~/.local/share/uv详细uv使用指南:
SDKMAN
SDKMAN 是 JVM 生态的版本管理神器,支持 JDK、Maven、Gradle、Kotlin、Scala 等几十种工具,可以在多个版本间无缝切换。
官方文档:https://sdkman.io/
SDKMAN 是 JVM 生态的版本管理神器,支持 JDK、Maven、Gradle、Kotlin、Scala 等几十种工具,可以在多个版本间无缝切换。
Windows用户优先在WSL中使用,来自官方建议。
# 官方安装脚本
curl -s "https://get.sdkman.io" | bash
# 立即激活
source "$HOME/.sdkman/bin/sdkman-init.sh"
# 验证安装
sdk version管理Java
# 查看所有可用 JDK 发行版
sdk list java
# 安装 JDK 21
sdk install java 21.0.5-tem
# 查看已安装版本
sdk list java | grep "local only"
# 设置全局默认版本
sdk default java 21.0.5-tem
# 仅当前 Shell 会话临时切换
sdk use java 17.0.13-tem
# 针对某个项目目录自动切换(在项目根目录创建 .sdkmanrc)
sdk env init
# 这会在当前目录生成 .sdkmanrc 文件,内容类似:
# java=17.0.13-tem
# maven=3.9.9
# 进入该目录时执行,自动切换到 .sdkmanrc 中指定的版本
sdk env
# 验证当前 java 版本
java -version👏最佳实践:
在每个项目根目录创建 .sdkmanrc 并提交到 Git,团队成员进入目录执行 sdk env 即可同步版本,彻底告别"在我机器上没问题"。
管理Maven
# 查看可用 Maven 版本
sdk list maven
# 安装最新稳定版 Maven
sdk install maven 3.9.9
# 设置为默认
sdk default maven 3.9.9
# 验证
mvn -versionAI Coding
终端CLI
Claude Code实战系列:
WSL2 + IDEA + CC GUI
在 Windows + WSL2 + IntelliJ IDEA(或其他 JetBrains IDE)环境下,远程/跨环境开发常见有两种模式:
方式一:Windows 侧直接打开 WSL2 文件系统(\wsl$)
方式二:JetBrains Remote Development / Gateway(真正远程 WSL 开发),这是现在 JetBrains 更推荐的方式。
未完待续...
痛点
再好的工具,也会有痛点~
AI在WSL2中如何操作浏览器
【开发环境】Windows+WSL2+AI Coding最佳姿势
https://qiyec.site/archives/Poh9B8zm