[1] Neovim 配置准备工作
导入 & 前记
截至2023年7月19号我在写这篇文章的时候,网络上已经有很多有关如何配置的文章了。但是几乎所有文章都是直接或间接的在Unix或类Unix系统上对Neovim进行配置,虽然Neovim已经发布了Windows版本,但是没有一个文章合集来详细说明Windows上配置的注意事项。因此我边配置Neovim边写下了这个合集,希望可以对其他人有所帮助。
注意:
- 本指南不使用WSL也不从官方网站直接下载二进制安装包安装。
- 本指南使用msys2管理Neovim的安装,并且使用clang作为编译环境。
- 经测试,通过msys2的full-path特性可以实现调用本机MSVC编译工具的效果。
安装 Windows Terminal[1]
Windows 终端程序是一款新式、快速、高效、强大且高效的终端应用程序,适用于命令行工具和命令提示符,PowerShell和 WSL 等 Shell 用户。主要功能包括多个选项卡、窗格、Unicode、和 UTF-8 字符支持,GPU 加速文本渲染引擎以及自定义主题、样式和配置。
先了解一个概念:TUI(Text-based User Interface),即基于文本的用户界面,在任何一个仅支持TUI的程序中,任何图标的显示必须依赖字体的支持。Windows默认的终端在字体显示方面并不完善,Neovim又是仅支持TUI的程序,所以我们要安装Windows Terminal
以便之后切换字体。虽然该软件有放话要提供msi安装包,但是还是推荐用微软应用商店安装。[2]
安装后可以在 【设置】 中进行外观设置,这部分可以自己摸索一下,
如果之后发现有快捷键出现冲突,可以在【设置】中的【操作】里删除了与 VIM 冲突的快捷键。
安装包含 Nerd fonts 的字体
前面提到了TUI,如果要正确的显示各种图标,还要依赖于字体的支持,要选择包含 Nerd fonts 的字体。以下是使用包含 Nerd fonts 的字体和使用普通字体的对比。
↑ 本图片借自我购买的掘金小册《Neovim 配置实战:从0到1打造自己的IDE 》[3]
Nerd字体补丁开发人员针对具有大量字形(图标)的字体。特别是从流行的“标志性字体”中添加大量额外的字形,如Font Awesome、Devicons、Octicons等。
安装说明
-
先到官网上下载相应字体[4] (点进四号注释对应的网址下载)(比如我下载的是Fira Code,在网页上搜索Fira,选择下图中样式的那个字体点击下载即可)如果实在下载太慢,可以考虑用[带下工具/网站][5]。
-
解压压缩包,将ttf的字体安装即可
-
进入【设置】【默认值】【外观】
-
在【字体】的下拉菜单里面选择Nerd Fonts字体
我这里用的字体是Nerd Fonts打过补丁的Fira Code,所以我的选择是:
安装msys2
-
安装msys2,一路点【下一步】就好了(msys2需要安装在用户有完整管理权限的文件夹,不要安装在
Program Files
或Program Files (x86)
)
将msys2集成到Windows Terminal
-
在你的msys2安装目录下有一个脚本
msys2_shell.cmd
,记下它的路径,比如我的路径是:C:\msys64\msys2_shell.cmd
-
在Windows Terminal的【添加新配置文件】中随便复制一个配置文件(点击【复制】即可)
3.在出现的编辑界面修改【命令行】配置为:{msys2_shell.cmd的路径} -defterm -here -no-start -clang64 -use-full-path
,之后点击保存即可。(名称和图标之类请自行修改)
命令解释
在msys2_shell.cmd中显示帮助信息是这样的
Usage:
%~1 [options] [login shell parameters]
Options:
-mingw32 | -mingw64 | -ucrt64 | -clang64 | -msys[2] Set shell type (其实还有一个-clang32没有被写出)
-defterm | -mintty | -conemu Set terminal type
-here Use current directory as working
directory
-where DIRECTORY Use specified DIRECTORY as working
directory
-[use-]full-path Use full current PATH variable
instead of trimming to minimal
-no-start Do not use "start" command and
return login shell resulting
errorcode as this batch file
resulting errorcode
-shell SHELL Set login shell
-help | --help | -? | /? Display this help and exit
Any parameter that cannot be treated as valid option and all
following parameters are passed as login shell command parameters.
{msys2_shell.cmd的路径} -defterm -here -no-start -clang64 -use-full-path
-
-defterm : 设置终端类型为当前终端,否则会启动(弹出)一个msys2内置终端。(像下图这样)
-
-here : 使用当前目录作为工作目录,这样,在Windows Terminal中配置的启动目录就可以直接作为msys2的bash的默认启动目录。(推荐直接将Windows Terminal中配置的启动目录那一项的使用父进程目录勾上,在文件夹中右键打开终端后会直接在bash里进入相应文件夹对应的目录,更方便。)
-
-no-start : 不要使用“start”命令并将登录shell结果错误代码作为此批处理文件结果错误代码返回,看不懂的话就自己查一下吧。
-
-clang64 : 因为我们要用到64位的clang(如果你要使用32位的,要改成-clang32)。
-
-use-full-path : 因为有部分软件在msys2上工作并不正常(如Python不能安装部分的包),一些专有编译器不能在msys2安装(如MSVC),所以要把系统的PATH变量暴露给msys2终端。
将该自定义的配置文件作为默认配置文件,启动Windows Terminal就默认进入msys2的clang64终端程序了。
好了,所有的准备工作完成了,下面一章就是讲解Neovim的配置入门了。
文献目录
安装并开始设置 Windows 终端 https://learn.microsoft.com/zh-cn/windows/terminal/install ↩︎
Windows Terminal 微软应用商店地址 https://aka.ms/terminal ↩︎
(付费) Neovim 的安装与配置架构总览 掘金小册 https://juejin.cn/book/7051157342770954277/section/7051399377021042702 ↩︎
Nerd Fonts下载网站 https://www.nerdfonts.com/font-downloads ↩︎
这样的网站有很多,最通用的是 https://d.serctl.com/ 不过请不要滥用,本条注释仅供参考,如果某天该网站出现异常,变成了不可名状的样子,请不要过来打我。 ↩︎
msys2 官网 https://www.msys2.org/ ↩︎