基于 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 的,更谈不上,个人偏好的配置自定义。

相关推荐
王哈哈^_^41 分钟前
【数据集】【YOLO】【目标检测】交通事故识别数据集 8939 张,YOLO道路事故目标检测实战训练教程!
前端·人工智能·深度学习·yolo·目标检测·计算机视觉·pyqt
Chrikk1 小时前
Go-性能调优实战案例
开发语言·后端·golang
幼儿园老大*1 小时前
Go的环境搭建以及GoLand安装教程
开发语言·经验分享·后端·golang·go
canyuemanyue1 小时前
go语言连续监控事件并回调处理
开发语言·后端·golang
杜杜的man1 小时前
【go从零单排】go语言中的指针
开发语言·后端·golang
cs_dn_Jie1 小时前
钉钉 H5 微应用 手机端调试
前端·javascript·vue.js·vue·钉钉
开心工作室_kaic2 小时前
ssm068海鲜自助餐厅系统+vue(论文+源码)_kaic
前端·javascript·vue.js
有梦想的刺儿2 小时前
webWorker基本用法
前端·javascript·vue.js
cy玩具2 小时前
点击评论详情,跳到评论页面,携带对象参数写法:
前端
customer083 小时前
【开源免费】基于SpringBoot+Vue.JS周边产品销售网站(JAVA毕业设计)
java·vue.js·spring boot·后端·spring cloud·java-ee·开源