nvim配置(nvim配置教程)

nvim配置(nvim配置教程)我使用的是 Macbook pro M2Pro 版本 系统版本为 macOS 14 1 我的 版本信息如下 在使用 一年多之后 我越发觉得 的配置麻烦 启动加载速度也不尽人意 我也很不喜欢 Vimscript 的写法 这导致我决定使用 我决定重新配置 为什么会想要重新配置 而不是迁移配置 呢 因为我想顺便趁着这个机会 重新审视 我本来 的配置 以及将本来用到的的插件替换为现在的

大家好,我是讯享网,很高兴认识大家。



我使用的是 Macbook pro M2Pro 版本,系统版本为 macOS 14.1。我的  版本信息如下

 
  
讯享网

在使用  一年多之后,我越发觉得  的配置麻烦,启动加载速度也不尽人意。我也很不喜欢 Vimscript 的写法,这导致我决定使用 。我决定重新配置 。为什么会想要重新配置而不是迁移配置呢?因为我想顺便趁着这个机会,重新审视我本来  的配置,以及将本来用到的的插件替换为现在的 SOTA(State-of-the-art)。我自从看完 MIT 的 Missing semester 的课配置了  之后就很长时间都没有再编辑  文件了

我认为在配置  的时候弄清楚每一个选项的意思是很有必要的,因此我在这篇博客中会尽量解释清楚每个选项的含义,同时将解释放在注释里面,即我尽量让我自己的配置文件是 self-contained 而且可读性强的

当然,这难免有疏漏。别忘了我们永远可以在  里面输入  来看到更为详细的解释

该篇博客假定你对  有基本了解

在配置 的时候,我会 尽可能 使用 Lua 语言编写配置文件,因此你有必要了解一下 Lua 的基本语法和语义。可以快速浏览一下 Learn Lua in Y minutes 了解大概

的配置目录在 下。在 Linux or macOS 系统上,Nvim 会默认读取 文件,理论上来说可以将所有配置的东西全部放在此文件中,但这样不是一个好的做法,因此需要划分不同的目录分管不同的配置

首先看下按照本篇教程 之后,目录结构看起来会是怎么样的 ↓

讯享网

解释如下:

  • 为  配置的 Entry point,我们主要用来导入其他  文件
    • 配置主题
    • 配置按键映射
    • 配置 LSP
    • 配置选项
    • 配置插件
  • 用于存放各种插件自身的配置,文件名为插件的名字,这样比较好找。这里的  就是  插件的配置文件
  • 目录。当我们在 Lua 里面调用  加载模块(文件)的时候,它会自动在  文件夹里面进行搜索
    • 将路径分隔符从  替换为 ,然后去掉  后缀就得到了  的参数格式
    • 比如要导入上面的  文件,可以用

主要用到的就是 、、 等,我制造了一个快速参照对比的表格

In In Note =

在  里面进行按键绑定的语法如下,具体的解释可以看

 

在阅读了前面一些配置基础之后,现在我们可以从头开始,由简到易一步步配置  了

我是使用 macOS,用 Brew 命令安装即可

讯享网

在安装完成之后,如果 目录不存在,创建目录并新建 文件

 

配置文件编辑保存之后,重启  就能看到效果,后面默认每次小章节配置完成后就重启,或者执行生效命令:

选项配置功能一览:

  • 默认采用系统剪贴板,同时支持鼠标操控
  • Tab 和空格的换算
  • UI 界面
  • “智能”搜索

新建  文件并加入如下内容⬇️

讯享网

然后打开 ,用  导入刚才写的  文件

 

按键功能一览:

  • 用  快速在多窗口之间移动光标
  • 用  + 方向键进行窗口大小的调整
  • 选择模式下可以一直用  或者  改变缩进

新建  文件并放入如下内容⬇️

讯享网

然后在  文件里面再次加上一行导入这个文件


讯享网

 
   

表示我们省略了其他部分的代码(为了节省博客的篇幅)

一个强大的  离不开插件的支持。我选用的是当下最为流行,而且完全用 Lua 语言编写的 Packer.nvim。它支持如下许多特性:

  • 支持配置第三方插件的依赖
  • 支持 Lazy loading
  • 支持设置插件安装之后的钩子函数

后续考虑切换到 Lazy.vim 进行插件管理

在  配置里面指定第三方插件很简单,用  即可

新建  文件并放入如下内容。下面的模板只完成了 Packer.vim 自身的安装,还没有指定其他第三方插件。这个模板的功能主要是

  1. 初次启动的时候自动安装
  2. 当我们保存对这个文件()文件的修改的时候,Packer.nvim 会自动帮我们自动更新插件和帮我们做好配置。你可以看到 右边看到多了一个窗口显示进度

💡 Packer.nvim 还支持了不少命令,不过你不需要把他们都记住。因为这个模板会自动帮我们处理好。值得一提的是如果因为网络问题安装失败的话,在它弹出的窗口里面按照提示按下大写的  就会自动重新下载。在 Packer.nvim 提示全都安装成功后,重启  就生效了

讯享网

然后在  文件里面再次加上一行导入这个文件

 

此时你重启  会发现黑屏没显示,这是因为 Packer.nvim 在安装自己,静待片刻即可☕️

我喜欢的主题是 monokai.nvim 和 tokyonight.nvim ,在  里面加上

这里以 monokai.nvim 为🌰

讯享网

保存更改待 Packer.nvim 下载插件完成之后,新建并编辑  文件

 

这里用到的  是 Lua 里面的 protected call,会返回一个  变量表示是否执行成功(跟 Golang 的  功能类似)。这里采用  而不是直接在  文件里面加上  是为了避免主题没有安装的话打开  看到一大堆报错信息2

最后在  文件里面导入就行

讯享网

自己手动配置自动补全功能的话会比较繁琐,所以我们最好是借助于一些插件来帮忙,下面我讲讲我摸索出来的最简单配置方法

首先,第一个要用到的插件是 nvim-cmp,它可以管理各种补全候选项来源,然后展示在补全菜单里面,还支持我们对外观等进行定制化。

我们先新建  文件配置

💡 这里首先选择写  的配置文件然后再在  文件里面用  添加插件。这样可以保证 Packer.nvim 安装 nvim-cmp 的相关插件读取  配置文件的时候不会报错。下面的配置文件暂时看不懂也没有关系,我会对其进行解释

 

然后我们修改  文件添加插件

讯享网

解释如下

  • 函数的参数是一个 Lua 的 Table,用于设置各个选项(下面会解释)。后面你会发现很多第三方插件都用  传入一个 Lua table 的方式进行配置,这个是  的 Lua 插件的惯例
  • 不要被上面的这么多插件吓到, 为主,其他  的插件是用于在候选项来源和  之间交互
  • 是 code snippet 引擎,因为 要求我们必须指定至少一个 code snippet 引擎来源所以才加上,你暂时用不到当它不存在也没有关系
  • Packer.nvim 支持用  指定对应插件被加载之后要运行的代码,所以  的意思是导入了  文件夹里面的  文件,这个设计参考了3

按键映射用的是  ,每个按键绑定的格式是 ,不同的  的含义可以用  查看。如果你想要用其他的按键,只要修改  里面的按键即可

按照我的个人习惯,设置了

  1. 或者  在各种候选项里面移动
  2. 在候选项的文档里面移动
  3. 也就是回车键确定补全

nvim-cmp 里面的补全菜单

补全菜单的定制化用的是

  • 字段规定了每个候选项要显示什么东西
  • 设置了不同的候选项的来源显示,在  里面声明来源

🎙️ 到这为止,重新启动  后应该能够用初步的自动补全功能了~

要把  变成 IDE 就势必要借助于 LSP,自己安装和配置 LSP 是比较繁琐的。不同的 LSP 安装方法不同,也不方便后续管理。这就是 mason.nvim 和配套的 mason-lspconfig.nvim 这两个插件大放异彩的地方🥰

❗️ 注意, 和  和前面我们已经添加的 这三个插件之间的安装和配置是_有顺序要求的_。推荐直接照搬我下面的就好了

首先修改  文件,增加上面这两个插件

 

新建一个  文件并编辑,首先配置  和

讯享网

💡 我们想要用什么语言的 LSP 就在  里面加上,完整的列表可以看 server_configurations。我个人常用的就  这三个编程语言,而因为我们都用 Lua 语言来配置 ,所以也加上了

重启  之后你应该可以在下面的状态栏看到 Mason 正在下载安装上面我们指定的 LSP(注意此时不能关闭 ),可以输入  查看安装进度。在你等待安装的过程中,可以输入  查看更多帮助信息了解如何使用  插件

在成功安装 LSP 之后,我们就可以用  插件进行配置了。因为配置的代码比较长,下面只展示了  的配置,其他语言的配置大同小异。如果有疑惑,可以查看该文件的最新版本

💡 每个 LSP 都存在自己可以配置的选项,你可以自己去对应 LSP 的 GitHub 仓库查阅更多信息。如果要用默认配置的话,基本上每一个新的语言都只需要设置

编辑  文件新增如下内容

 

最后在  文件里面加上

讯享网

上面的按键绑定的意思是很直观的,这里就不多解释

大功告成🎉🎉🎉

这样配置下来,我们成功把  变成了一个轻量级的 IDE,它支持代码高亮、代码补全、语法检查等功能,而且是_完全开源免费的_,虽然还有些简陋,但已经是可以用的了🥰

我发现自从学了 Vim 之后,我总在其他各种代码编辑器、IDE 看是不是支持 Vim。大多数情况下,他们对 Vim 的支持都不是很让人满意,还容易有快捷键冲突等问题。因此我选择将  变成 IDE,并将配置文件托管在我的 Gtihub 上。这样在新的机器上只要安装好  并克隆配置静待片刻之后,就可以在不同的机器上获得 一样的 编程体验

打磨定制化工具是需要付出一定精力的。为了理解每个选项都在干啥,我不得不查找各种资料。但我仍相信这是值得的,理解你的工具利于你做扩展和定制化。本文已经尽可能采用了比较简单的配置,还有很多美化、私人定制化的内容可以配置,更别提其他很多优秀的第三方插件都还没有提及,这些就留给读者自己去探索发现了

  1. Installing-Neovim ↩︎
  2. Adding a colorscheme/theme ↩︎
  3. jdhao/nvim-config ↩︎
  4. Language Server Protocol - Wiki ↩︎


小讯
上一篇 2025-06-03 21:15
下一篇 2025-06-05 20:44

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/156684.html