基于 LunarVim 搭建不同编程语言 IDE

本文介绍,如何基于 LunarVim 搭建不同编程语言的 Neovim IDE 开发环境。

前言

本文将用几行命令快速安装 Neovim IDE,完成不同编程语言的环境搭建。尽量不涉及到自定义配置,将完全基于 LunarVim 作者维护的配置实现。

两个 Github 核心仓库,分别是:

starter.lvim 以分支形式保不同语言的配置,具体自行查看仓库。

为了测试方便,介绍 LunarVim 提供的一个能力,通过 Lunarvim 通过 LUNARVIM_CONFIG_DIR 变量决定配置文件目录。

接下来的测试,我会将不同语言的配置,放到不同的目录中。

如果希望一个配置支持大部分语言,则要将这些配置合并,进行配置自定义,对 Lunarvim 的 configlua 代码进行大的改动,不易维护。

安装

LunarVim 提供了安装脚本,使用如下命令安装即可。

bash 复制代码
LV_BRANCH='release-1.3/neovim-0.9' bash <(curl -s https://raw.githubusercontent.com/LunarVim/LunarVim/release-1.3/neovim-0.9/utils/installer/install.sh)

安装过程中要下载一些依赖,如 pynvimcargo 之类的,如果已经安装可选择 no

注:部分语言环境和命令要提前安装。如 pythonmake, git

如果要 dev icon 支持,安装 Nerd 字体,macOS 安装命令如下:

bash 复制代码
brew tab homebrew/cask-fonts
brew install --cask font-hack-nerd-font

安装成功,将终端字体更新为 Hack Nerd Font 相关字体。

如下所示,以 iTerm2 为例:

现在执行 lvim,将看到 lazy.nvim 开始自动下载插件,如下是效果图:

初步体验

体验下 Lunarvim 默认配置,与语言无关的能力。

目录浏览

使用 "<空格>+e" 显示文件树,再次 "<空格>+e" 关闭,效果如下:

查找文件

使用 "<空格>+f",查看文件,如下:

查找符号

输入 "<空格>+lS",全部符号搜索,如下:

重构变量名

输入 "<空格>+lr",将 'anyMethods' 更新为 'anyMethodList',如下:

类型引用查找

输入 "gr",查找 "RouterGroup" 被引用的地方。

定义跳转

输入 "gd",跳转到 "RouterGroup" 定义。

Git 支持

内置 lazygit 处理复杂事务,同时内置对部分 ShortCut 和简单的 Git 命令的进行了绑定。

LunarVim 默认支持的能力还是挺丰富的。

详细内容可查看它的文档,或者 "<空格>" 显示 whch-key 菜单,自行探索。深入了解的话,最好是阅读 Lunarvim 的 lua 配置源码。如果能独立配置 Neovim,再看它的源码会有更好的体悟。

配置

前面已经介绍 LunarVim 和 starter.lvim 的关系。实操的话,如何配置呢?

Golang

首先,以 go-ide 为例,使用如下命令启动 lvim:

bash 复制代码
alias lv-go="LUNARVIM_CONFIG_DIR=~/.config/lvims/golang lvim "

将 starter.lvim 的 go-ide 分支下载到 ~/.config/lvims/golang/ 目录下。

bash 复制代码
git clone https://github.com/Lunarvim/starter.lvim --branch go-ide ~/.config/lvims/golang

下载完成,记得在原有的 config.lua 中的新增一行配置,如下所示;

lua 复制代码
lvim.format_on_save.enabled = true

实现保存后的通过 goimportsgofumpt 实现代码的自动格式化。

运行 lv-go 开启 Go 项目。

首次进入,通过 Mason 安装一些 Go 相关的工具,如下:

bash 复制代码
:MasonInstall gopls golangci-lint-langserver delve goimports gofumpt gomodifytags gotests impl

体验下效果:

错误提示,自动补全能力,都已经支持的很棒了。

Python

配置 python-ide,使用如下命令启动 lvim:

bash 复制代码
alias lv-py="LUNARVIM_CONFIG_DIR=~/.config/lvims/python lvim "

将 starter.lvim 的 go-ide 分支下载到 ~/.config/lvims/python/ 目录下。

bash 复制代码
git clone https://github.com/Lunarvim/starter.lvim --branch python-ide ~/.config/lvims/python

运行 lv-py 开启 Python 项目。效果图如下:

其他语言 IDE 的安装就不详细说了,类似步骤。另外,starter.lvim 支持编程语言很多,按需要取用。

最后说明

本文只是快速使用体验教程,如希望更深入了解,可自行查看配置。诸如了解它的快捷键如何使用,只有直接看配置才能知道。

另外,这里的配置除了支持 lsp,language server,基本也都支持 dap,即调试能力。

由于,这些配置的使用细则都没有提供文档,而且既然已经用 neovim 了。至少还是要能看懂和写写配置的,不然是没有办法用好 Neovim 的,更谈不上,个人偏好的配置自定义。

相关推荐
恋猫de小郭20 小时前
Flutter Zero 是什么?它的出现有什么意义?为什么你需要了解下?
android·前端·flutter
牛奔21 小时前
Go 如何避免频繁抢占?
开发语言·后端·golang
想用offer打牌1 天前
MCP (Model Context Protocol) 技术理解 - 第二篇
后端·aigc·mcp
崔庆才丨静觅1 天前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60611 天前
完成前端时间处理的另一块版图
前端·github·web components
KYGALYX1 天前
服务异步通信
开发语言·后端·微服务·ruby
掘了1 天前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅1 天前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅1 天前
5分钟快速搭建 AI 平台并用它赚钱!
前端
爬山算法1 天前
Hibernate(90)如何在故障注入测试中使用Hibernate?
java·后端·hibernate