[1] Neovim 配置准备工作

导入 & 前记

截至2023年7月19号我在写这篇文章的时候,网络上已经有很多有关如何配置的文章了。但是几乎所有文章都是直接或间接的在Unix或类Unix系统上对Neovim进行配置,虽然Neovim已经发布了Windows版本,但是没有一个文章合集来详细说明Windows上配置的注意事项。因此我边配置Neovim边写下了这个合集,希望可以对其他人有所帮助。

image

注意:

  1. 本指南不使用WSL也从官方网站直接下载二进制安装包安装。
  2. 本指南使用msys2管理Neovim的安装,并且使用clang作为编译环境。
  3. 经测试,通过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等。

安装说明

  1. 先到官网上下载相应字体[4] (点进四号注释对应的网址下载)(比如我下载的是Fira Code,在网页上搜索Fira,选择下图中样式的那个字体点击下载即可)如果实在下载太慢,可以考虑用[带下工具/网站][5]

  2. 解压压缩包,将ttf的字体安装即可

  3. 进入【设置】【默认值】【外观】

  4. 在【字体】的下拉菜单里面选择Nerd Fonts字体

我这里用的字体是Nerd Fonts打过补丁的Fira Code,所以我的选择是:


安装msys2

  1. 进入msys2官网[6],点击图中按钮下载最新版。

  2. 安装msys2,一路点【下一步】就好了(msys2需要安装在用户有完整管理权限的文件夹,不要安装在 Program FilesProgram Files (x86)


将msys2集成到Windows Terminal

  1. 在你的msys2安装目录下有一个脚本msys2_shell.cmd,记下它的路径,比如我的路径是:C:\msys64\msys2_shell.cmd

  2. 在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的配置入门了。


文献目录


  1. 安装并开始设置 Windows 终端 https://learn.microsoft.com/zh-cn/windows/terminal/install ↩︎

  2. Windows Terminal 微软应用商店地址 https://aka.ms/terminal ↩︎

  3. (付费) Neovim 的安装与配置架构总览 掘金小册 https://juejin.cn/book/7051157342770954277/section/7051399377021042702 ↩︎

  4. Nerd Fonts下载网站 https://www.nerdfonts.com/font-downloads ↩︎

  5. 这样的网站有很多,最通用的是 https://d.serctl.com/ 不过请不要滥用,本条注释仅供参考,如果某天该网站出现异常,变成了不可名状的样子,请不要过来打我。 ↩︎

  6. msys2 官网 https://www.msys2.org/ ↩︎

posted @ 2023-07-25 10:37  HenryZeng  阅读(1263)  评论(0编辑  收藏  举报