Neovim + MSBuild 配置 Windows 开发环境
为了与 Linux 拥有一致的开发体验,特在此记录:在 Windows 上使用 Neovim + CMake + MSBuild 搭建 C/C++ 环境。
配置完成后,您将拥有以下几种开发环境:
- C/C++
- Qt/qml
- python
- nodejs
- rust
首先上效果:
本篇文章提到
环境变量(PATH)
的设置,关于 Windows 环境变量设置,网上有很多教程,这里不再赘述。
系统基础环境配置
可以创建一个目录用来存放工具,并且将这个目录添加进系统环境变量:
D:\Tools
微软推荐使用PowerShell
,本篇文章基于Windows Terminal
及PowerShell
进行配置,请自行在微软商店中安装这两款软件,即本配置不适用于Win7
及以下版本。
7z
- 下载7-Zip,选择
x64
版本 - 下载完成后双击安装
- 将安装路径添加道系统环境变量,如
C:\Program Files\7-Zip
unzip
- 下载unzip.exe
- 下载完成后直接丢到
D:\Tools
目录
gzip
- 下载Binaries压缩包
- 解压后将
gzip.exe
放在D:\Tools
目录
wget
- 下载wget.exe
- 将
wget.exe
放在D:\Tools
目录
tree-sitter
- 下载tree-sitter-windows-x64.gz,看名字下载,别下错了。
- 解压文件将
tree-sitter.exe
文件放在D:\Tools
目录
ripgrep
- 下载ripgrep-14.1.0-x86_64-pc-windows-msvc.zip
- 解压文件将
rg.exe
文件放在D:\Tools
目录
若找不到该文件,点击下方的
Show all xx assets
,展开后下载即可。
fd
- 下载fd-v10.1.0-x86_64-pc-windows-msvc.zip
- 解压文件将
rg.exe
文件放在D:\Tools
目录
若找不到该文件,点击下方的
Show all xx assets
,展开后下载即可。
fnm
- 下载fnm-windows.zip
- 解压文件将
fnm.exe
文件放在D:\Tools
目录
配置 fnm:
echo "fnm env --use-on-cd | Out-String | Invoke-Expression" >> ~\Documents\PowerShell\Profile.ps1
提示
若提示找不到路径,可以新建目录:
mkdir ~\Documents\PowerShell
重启PowerShell
,安装 nodejs:
fnm install --latest --node-dist-mirror=https://npmmirror.com/mirrors/node
fnm default 21
fnm use 21
版本号可能会随着官方版本迭代有变化,修改为自己安装的版本即可!
配置 nodejs 国内源:
npm config set registry https://registry.npmmirror.com/
安装 neovim 支持:
npm install -g neovim
python
- 下载python
- 双击 exe 文件安装
勾选 pip:
勾选所有用户:
建议自定义安装,注意勾选
pip
。
配置虚拟环境:
python -m venv .venv
echo "~\.venv\Scripts\Activate.ps1" >> ~\Documents\PowerShell\Profile.ps1
重启PowerShell
,配置 pip 国内源:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
安装 nvim 工具:
pip install pynvim
Neovim
下载nvim-win64.msi后双击安装
Git
查看Git官方文档,点击64-bit Git for Windows Setup
进行下载,然后安装即可
添加PowerShell
git 支持,执行:
Install-Module posh-git -Scope CurrentUser
MSBuild
- 下载Visual Studio 2022 生成工具
- 双击 exe 文件进行安装
- 在弹出的界面,左侧勾选
使用 C++ 的桌面开发
,右侧按下图勾选即可
安装完成后,系统开始菜单应该有Developer PowerShell for VS 2022
,右键->打开文件位置->右键文件->属性->快捷方式,复制目标(T):
里面的内容:
explorer.exe $PROFILE
打开的文件~\Documents\PowerShell\Profile.ps1
添加刚刚复制的内容,并进行调整(删一些双引号),最终结果为:
Import-Module "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\Tools\Microsoft.VisualStudio.DevShell.dll"
Enter-VsDevShell e344e64a -DevCmdArguments '-arch=x64 -no_logo'
其中-DevCmdArguments
参数是手动添加的,目的是调整架构,为后面编译Neovim
插件做准备。
最终的配置文件内容:
# Install-Module posh-git -Scope CurrentUser
# 引入 git 模块,引入之前需要先执行上面的命令,若报错需要执行:set-executionpolicy remotesigne
Import-Module posh-git
# 添加开发环境
Import-Module "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\Tools\Microsoft.VisualStudio.DevShell.dll"
Enter-VsDevShell e344e64a -DevCmdArguments '-arch=x64 -no_logo'
# 设置 Ctrl+D 退出终端
Set-PSReadLineKeyHandler -Key 'Ctrl+d' -Function DeleteCharOrExit
# 设置 fnm 环境变量
fnm env --use-on-cd | Out-String | Invoke-Expression
# 引入 python 虚拟环境
~\.venv\Scripts\Activate.ps1
Rust
使用官方的源下载比较慢,可以临时设置环境变量,加速下载:
$env:RUSTUP_DIST_SERVER="https://mirrors.tuna.tsinghua.edu.cn/rustup"
~\Downloads\rustup-init.exe
配置cargo
国内源,在~\.cargo\config.toml
中添加:
[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"
# 指定镜像
replace-with = 'rsproxy' # 如:tuna、sjtu、ustc,或者 rustcc
# 字节跳动
[source.rsproxy]
registry = "sparse+https://rsproxy.cn/index/"
# 中国科学技术大学
[source.ustc]
registry = "sparse+https://mirrors.ustc.edu.cn/crates.io-index/"
# 上海交通大学
[source.sjtu]
registry = "sparse+https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index/"
# 清华大学
[source.tuna]
registry = "sparse+https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index/"
# rustcc社区
[source.rustcc]
registry = "sparse+https://code.aliyun.com/rustcc/crates.io-index/"
开发环境配置
Git 配置
有时配置 ssh key 之后,每次 clone pull push 的时候还是提示输入密码,可以参考官方文档 添加~/.ssh/config
文件,并且写入:
Host github.com
Hostname ssh.github.com
Port 443
User git
Neovim 配置
提示
作为开发者,最好有条理的管理自己的项目,本人将D:\Projects
作为项目目录,还可以将该目录设置为启动目录。
- Neovim 配置对于刚接触的人可能比较复杂,其实就是配置一些插件,大部分插件的 github 都有其使用说明,这里为了方便,可以直接使用本人的配置,执行:
git clone [email protected]:Groveer/nvchad-starter.git nvim
- 创建软链,Neovim 读取配置是在固定的目录,在
powershell
中执行:
New-Item -ItemType Junction -Path "C:\Users\Administrator\AppData\Local\nvim" -Target "D:\Projects\nvim"
其中,Administrator
是本地账户名,D:\Project\nvim
是 git clone 下来的项目
- 本人的 Neovim 配置使用 Lazy.nvim 进行插件管理,首次启动会自动进行安装插件,若因网络问题安装失败,可以重新打开,多尝试几次:
nvim
- 一般来说,进行了上面的软件安装,Neovim 所需的程序就齐全了,当然也可以执行命令进行检查:
:checkhealth
- 若 Lsp 提示安装失败,可查看日志,然后根据日志内容进行修复:
:MasonLog
扩展字体配置
- 使用图标字体才能完全支撑某些终端图标的正常显示,否则某些字体可能会显示为方块。
- 下载Maple字体
- 解压文件后全选 ttf 文件,然后右键安装
- 终端:设置->默认值->字体,选择
Maple Mono SC NF
,保存弹窗提示忽略 - 重启终端,进入 nvim,正常显示图标字体
Qt 开发环境配置
- 进入 Qt 在线下载页面
- 选择最高的版本,进入目录
- 选择
qt-online-installer-windows-x64-4.8.0.exe
进行下载(版本可能会更新,撰写本文时,官网上最新的是 4.8.0 版本,若有更新,选择最新的版本即可) - 为了加快安装速度,使用命令行启动安装文件,可以配置使用国内源进行安装:
~\Downloads\qt-online-installer-windows-x64-4.8.0.exe --mirror https://mirror.nju.edu.cn/qt
- 登录 Qt 账户,等待元信息检索完成。
- 勾选展开 Qt 对应版本,勾选
MSVC 2019 64-bit
。 - 其他默认勾选的选项可
取消勾选
,若习惯使用 qtcreator,可以将其勾选上,建议保留CMake
&ninja
。 - 最后点击右下角的安装,等待安装完成。
- 在环境变量中,
Path
变量需添加一行:C:\Qt\6.7.1\msvc2019_64\bin
,注意需改为自己的安装路径。 - 使用本人的 Neovim 配置已经自动支持
qml
补全和提示。
在配置过程中若遇到什么问题,可在博客中留言。