直接在终端中用Neovim比较适合原本就在终端中进行的工作流,但如果我们想在GUI中直接用Neovim打开文件,这在Linux上可能还比较好,但在Windows体验就有点差了。为此,我们可能需要一个Neovim的GUI界面,Vim提供了GVim,Neovim则是有第三方提供的qnvim、Goneovim、GNvim、Neovide等。不过目前稳定更新的几乎只有Neovide,它还提供了类似Kitty的光标动画与滚动动画,不过与Kitty不一样,它不支持Kitty Graphics Control,你无法在它里面显示图片。Neovide的安装和普通的软件一样,你可以它的官网查看教程。当然,在Windows上我们还是用 winget 来安装这个软件比较方便,如果你是最新版本的Windows 11可以直接复制下面的命令,如果不是,则要把 sudo 去掉。
sudo winget install neovide -dNeovide的配置
由于Neovide还不是一个稳定的软件,目前Neovide的配置极其的杂乱且充满了试验风格,它的配置方式目前正在从 nvim/init.lua 中附加配置向 neovide/config.toml 这个独立的配置文件迁移,但仅有很小部分的配置可以在 config.toml 中进行。
config.toml 所支持的内容
# backtraces_path = "/path/to/neovide_backtraces.log" # If neovide crashed, it will write backtraces log into this log. If not set, it will use the default path.fork = falseframe = "full"idle = truemaximized = falsemouse-cursor-icon = "arrow"# neovim-bin = "/usr/bin/nvim" # in reality found dynamically on $PATH if unsetno-multigrid = falsesrgb = true # platform-specific: false (Linux/macOS) or true (Windows)tabs = truetitle-hidden = truevsync = truewsl = false
[font]normal = ["Maple Mono NF CN"] # Will use the bundled Fira Code Nerd Font by defaultsize = 14.0
[box-drawing]# "font-glyph", "native" or "selected-native"mode = "font-glyph"
[box-drawing.sizes]default = [2, 4] # Thin and thick values respectively, for all sizes这里面大部分配置都浅显易懂,就算有不清楚的直接在配置文件说明中就可以找到相应的解释。这里着重要介绍的是 wsl 和 box-drawing :wsl 可以让Neovide不使用Windows上安装的Neovim,而是启动 wsl 里的Neovim,好处是wsl 里的Neovim会快不少,而且还没有奇怪的bug,坏处就是它非得启动 wsl;box-drawing 可以控制Neovide渲染某些Nerd-Font的方式,我目前只发现圆角的渲染方式有区别。
init.lua 所支持的内容
init.lua 支持所有Neovide设置的配置,包括 config.toml 所支持的部分,除此之外还有标题栏颜色、浮窗阴影、光标设置等一系列内容。由于Neovide的配置在终端中打开会引发错误,我们需要一个 if 判断来选择加载特殊配置。
---Configuration applied only to Neovideif vim.g.neovide then vim.g.neovide_title_background_color = "#24273A" vim.g.neovide_cursor_vfx_mode = "wireframe" vim.g.neovide_hide_mouse_when_typing = true function Neovide_fullscreen() if vim.g.neovide_fullscreen then vim.g.neovide_fullscreen = false else vim.g.neovide_fullscreen = true end end -- 使用Alt+Enter进行全屏 vim.api.nvim_set_keymap('n', '<A-CR>', ':lua Neovide_fullscreen() <CR>', { noremap = true, silent = true})end这些设置了Neovide的标题颜色、光标动画、在输入时隐藏鼠标以及全屏快捷键,其他设置在配置文件的说明中可以找到,值得注意的是这个切换全屏的函数实际上是我写的,这就是为什么Neovide长久以来无法完全将配置文件迁移至 config.toml 中。一般来说标题颜色应该和Neovim的背景颜色相匹配,每次更换Neovim的配色方案都要更新,如果不设置此项的话,标题栏就是默认的白色。vim.g.neovide_cursor_vfx_mode 既可以接受字符串也可以接受列表,Configuration - Neovide中列出了所有支持动画,有 Insert 的切换动画也有光标移动动画,可以按需搭配。