Linux上配置LunarVim:快速初始化Neovim,让你的文本编辑更加清爽和强大

本文最后更新于 2023年9月17日 上午

Neovim&LunarVim

Neovim最近几年的热度十分高,甚至我这个Vim用户,都开始转向使用Neovim了。相比之前使用Vim(尤其是Vim7.x之前,还未使用异步任务时),Neovim明显更快。同时Neovim使用Lua脚本化语言进行配置,确实更加方便。

但是手动配置Neovim,总归有点麻烦。尤其是刚转向Neovim,对Lua的语法还不是很熟悉的情况下,怎么才能快速配置,让它先跑起来呢?

答案很简单,就是用别人整合好的配置。网上有非常多别人整合好的GitHub仓库包,这里介绍一个特殊的项目:LunarVim

通过LunarVim的配置,可以让你的Neovim瞬间在Linux服务器上变身成为IDE。

LunarVim

其实,LunarVim的官网就有总结性的描述:

1
2
3
4
5
Interstellar Development Experience
The IDE that's too cool for planet Earth.
A stellar Neovim experience.
The universe's most lightweight IDE.
……

官网描述

这个可能是使用Vim/Neovim,在没有安装插件时候的效果:
使用vim或neovim未安装插件

这个就是使用LunarVim的效果:
使用lvim进行编辑

不过,安装起来还是有点麻烦,主要的原因:

  • 国内网络环境GitHub无法连接问题

本文就尽可能帮大家解决啦。

辅助视频

部分东西,还是视频比较清晰。

这里做个视频,主要内容:

  • 如何安装Nvim和Lvim
  • 如何卸载Nvim和Lvim
  • Lvim的部分功能展示
  • 使用建议

嘿嘿,做教程视频不易(B站根本不会推荐引流),请务必一键三连嗷~B站视频地址:https://www.bilibili.com/video/BV1hR4y1Y7CS

支持创作

制作教程不易,如果热心的小伙伴,想支持创作,可以加入我们的「爱发电」电圈(还可以解锁远程协助、好友位😃):

当然,也欢迎在B站或YouTube上关注我们:

更多:

准备工具

其实就是个Shell工具,不管是Linux还是macOS都可以安装。(Windows的话,就没试过了~~)

Windwos的Neovim,LunarVim也是支持;但是我用Windows很少,就算用…… 我一般也是直接用Vscode作为文本编辑。

我使用的镜像

如果你并没有Linux设备,需要一个Linux设备来练手,强烈推荐:

另外,为大家争取到优惠*(੭ˊᵕˋ)੭ଘ:

安装用户

Lunarvim是可以给root和非root用户安装的。但是用root用户操作,终归有点不安全。

建议给非root用户安装。比如:我一般会在服务器上创建我自己的用户:

1
2
3
4
# 当前root用户
useradd -s /bin/zsh -m mintimate
# 设置用户密码
passwd mintimate

之后,根据自己喜好,决定是否添加到sudo权限内。并切换到用户,进行后续neovim和lunarvim的安装操作。

Neovim安装

首先我们需要安装Neovim,安装的方法很多:

  • 软件包管理器安装
  • 软件包安装
  • 编译安装

没有说那种方法就最好,但是如果说麻烦…… 还是编译安装麻烦点,但是目前arm架构的Linux,目前只能用编译安装。

好在,编译安装的Neovim兼容性最好。

软件包管理器

你可以使用软件包管理器进行安装:

1
2
3
4
5
6
# Debian(include Ubuntu)
apt install neovim
# CentOS
yum install neovim
# macOS(需要Homebrew支持)
brew install neovim

macOS安装Neovim

这样就安装完成了,并且版本是V0.8.2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
mintimate at MacBookPro in ~
$ nvim --version
NVIM v0.8.2
Build type: Release
LuaJIT 2.1.0-beta3
Compiled by brew@Ventura

Features: +acl +iconv +tui
See ":help feature-compile"

system vimrc file: "$VIM/sysinit.vim"
fall-back for $VIM: "/usr/local/Cellar/neovim/0.8.2/share/nvim"

Run :checkhealth for more info

Neovim版本

但是,有时候,软件包管理器若安装的Neovim版本过低,就需要下载软件包安装或者手动编译安装了。

软件包

当然,有时候软件包管理器安装的Neovim过低,我们可以下载软件包安装。Neovim发布地址有提供Debian和CentOS的软件包:
Neovim发布包

举个例子,我们在腾讯云的Debian/Ubuntu发行版本上进行安装:

1
2
3
4
# 下载发行版本
wget https://github.com/neovim/neovim/releases/download/stable/nvim-linux64.deb
# 使用dpkg包管理器安装
dpkg -i nvim-linux64.deb

Neovim版本

当然,不支持Arm架构,所以在树莓派上安装是不行的:
Neovim安装失败

那么?如何在树莓派上安装呢?

编译安装

上文看到,无法在树莓派上使用软件包管理器或者软件包安装。这里我们就来介绍如何编译安装。

首先,克隆项目,通常我们使用稳定版本:

1
2
3
4
5
6
# 克隆项目
git clone https://github.com/neovim/neovim
# 进入项目内
cd neovim
# 切换分支为稳定版本
git checkout stable

Neovim项目克隆和切换分支

之后,使用cmake进行编译:

1
make CMAKE_BUILD_TYPE=RelWithDebInfo

项目cmake编译

之后,使用命令进行安装:

1
sudo make install

make install

通常情况下,这样就安装完成了:
neovim --version

如果你想卸载neovim,可以在当前目录下执行:sudo cmake --build build/ --target uninstall

LunarVim卸载

在安装之前,先教教大家如何卸载。以便在无法使用的情况下或者不需要的情况下,知道如何卸载。

LunarVim安装不需要root权限,并且是对原有的neovim进行封装,所以只是会有一些仓库文件。最棒的是,它的安装非常合规:

  • $HOME/.config/lvim:lvim的个性化配置文件;
  • $HOME/.local/bin/lvim:lvim的执行文件;
  • $HOME/.cache/lvim:lvim的缓存目录;
  • $HOME/.config/lvim.old:可能存在的lvim个性化文件备份

Lvim的文件

所以,卸载LunarVim:

1
rm -rf ~/.config/lvim ~/.local/share/lunarvim ~/.local/bin/lvim ~/.config/lvim.old

这样就卸载好了,大道至简~~~

LunarVim安装

安装Lunarvim的方法,这里分两种:

  • 官方脚本: 官方的脚本,直接安装上最新的Lunarvim。当时需要连接GitHub,如果网络环境不佳,建议看看手动脚本
  • 手动脚本: 使用Gitee替换LunarVim的主项目更新地址,但是一些附属的插件和初始化步骤还是会从GitHub进行抓取。如果改方法还是卡在初始化,可以下载我预打包的文件进行配合。

官方脚本

我们的网络连接GitHub没有问题的话,用官方的脚本还是很方便的:

1
LV_BRANCH='release-1.2/neovim-0.8' bash <(curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/master/utils/installer/install.sh)

官方脚本安装

如果网络有问题,正常会有一些报错,比如:无法校验插件完整

1
[ERROR]: Unable to verify plugins, make sure to manually run ':PackerSync' when starting lvim for the first time.

无法校验插件

这个解决方法很简单,当时能不能有效,取决于网络能不能连接GitHub上插件的各个库。因为造成这样的原因,是Lunarvim基于packer进行插件的管理(安装、更新)。而它就是同步下载GitHub上各个项目的仓库地址。

如果已经解决网络问题,或者想重新尝试。可以在Lunarvim激活时(lvim命令),使用packer的:PackerSync命令进行更新。

首先,使用lvim命令进入Lunarvim,如果实现没有配置环境变量,通常找不到命令:
找不到命令

我们需要把当前用户“家目录”下的.local/bin添加到环境变量:

1
2
3
4
# 如果你使用bash
echo "export PATH=\$PATH:\$HOME.local/bin" >> ~/.zshrc
# 如果你使用zsh
echo "export PATH=\$PATH:\$HOME.local/bin" >> ~/.zshrc

之后,重载环境变量,应该就可以使用lvim命令:
添加到环境变量

使用命令:

1
lvim

进入Luarnvim,会出现错误:
lvim错误

这个时候,其实是处于命令模式,我们输入:

1
:PackerSync

进行手动初始化(插件拉取载入):
拉去载入

嗯…… 如果网络还是无法连接GitHub……。应该还是一堆的报错:
拉取错误

这个时候,也不用慌。实在无法解决,可以参考手动脚本的下载预编译库进行替换初始化。

手动脚本

首先介绍一下脚本的原理:

  • 替换lunarvim.git为Gitee镜像源。
  • 汉化一些步骤提示
  • 使用基于CloudFare提供的网络CDN进行附属仓库的下载(为了不影响后续服务器上Git,在安装完后,会重置会默认。如果手动终止脚本运行,记得看看下文的恢复Git重定向)

安装脚本:

1
bash <(curl -s https://api.host.mintimate.cn/fileHost/public/download/NMAd)

安装开始

安装成功

如果你卡在启用CloudFare加速步骤:
卡在加速步骤

可以按Ctril+C终止进程,并恢复Git

1
git config --global --unset url."https://fast.github.flyinbug.top/mintimate/https://github.com/".insteadOf "https://github.com/"

并使用我提前打包的镜像文件替换自己的文件。

如果觉得有用或者需要帮助,可以联系我哦:

镜像文件替换

如果使用官方脚本或者手动脚本出现任何问题。可以使用我预先安装打包的文件进行替换,没什么特别的,就是:

  • 提前克隆所有LunarVim所有插件库(共45个)
  • 打包并上传

我会不定期更新,下载地址:
https://alist.flyinbug.top/PublicShare/LunarvimStatic/latest

获取镜像文件

之后,在终端依次执行:

1
2
3
4
5
6
7
8
9
10
# 进入仓库文件存放地址
cd ~/.local/share
# 下载镜像文件
wget -O lunarvim.tar-gz [地址存在Token,请自行复制]
# 删除原本未克隆成功的仓库
rm -rf lunarvim
# 解压文件替换
tar -xf lunarvim.tar-gz
# 归属文件为当前用户
chown -R `whoami`:`whoami` lunarvim

获取镜像文件

之后,编辑文件,如果出现nvim-treesitter库的警告(这个其实是警告,实际上是LSP不工作,但是Lvim还是可以用的),比如:
nvim-treesitter库的警告

解决方法很简单啦: 更新Packer、更新编译器:

1
2
:PackerSync
:TSUpdate

lvim内执行:PackerSync
lvim内执行:TSUpdate

Lvim初始化

现在,我们进行初始化更新。

可以在Lunarvim激活时(lvim命令),:LvimUpdate命令进行更新。

首先,使用lvim命令进入Lunarvim,如果实现没有配置环境变量,通常找不到命令:
找不到命令

我们需要把当前用户“家目录”下的.local/bin添加到环境变量:

1
2
3
4
# 如果你使用bash
echo "export PATH=\$PATH:\$HOME.local/bin" >> ~/.zshrc
# 如果你使用zsh
echo "export PATH=\$PATH:\$HOME.local/bin" >> ~/.zshrc

之后,重载环境变量,应该就可以使用lvim命令:
添加到环境变量

更新操作:
更新

Lvim配置文件

现在我们来看看Lvim(LunarVim)的配置文件:
首先,Lvim的配置,官方为了不与Neovim的配置文件冲突。Lvim的配置文件为:

  • $HOME/.config/lvim/config.lua

配置在原有neovim的基础上,增加了Lvim的个性化配置。
Lvim的配置

你可以添加一些vim或者neovim的配置,比如:

1
2
3
4
5
6
7
8
vim.opt.backup = false -- 创建配置文件
vim.opt.clipboard = "unnamedplus" -- 允许属于unnamedplus插件,共享系统剪贴板
vim.opt.cmdheight = 2 -- 更多的空间展示neovim的信息(默认:1)
vim.opt.fileencoding = "utf-8" -- 设置UTF-8编码
vim.opt.number = true -- 设置行表
vim.opt.relativenumber = false -- 设置相对行标
vim.opt.scrolloff = 8 -- 设置光标发生滚动的距离值
vim.opt.sidescrolloff = 8 -- 设置光标和边距发生滚动的距离值

当然,还有一些Lvim的专属配置,比如:https://www.lunarvim.org/docs/configuration/keybindings

Lvim使用

简单介绍一下Lvim的使用吧。毕竟官方的使用指南是完完整整的一个文档,一篇博客,能简单入门就很不错了。

首先是“文件管理树”:nvim-tree

Lvim默认安装了nvim-tree插件,并且使用<leader>e键进行绑定(<leader>键默认为空格)。

在Lvim成功配置的情况下,可以按上述组合键,呼出“文件管理树”,配合鼠标和键盘进一步实现IDE的效果:
Lvim的tree

其次是内置终端:ToggleTerm

使用Ctrl+4可以快速呼出:
Lvim的toggleterm

最后,就是自带的LSP了。Lvim使用treesitter进行语法提升并下载支持。

所以在编辑文件,Lvim就会自动下载,如果不需要或者想自定义,可以关闭配置文件内的:

1
2
3
4
-- treesitter自动下载
lvim.builtin.treesitter.auto_install = true
-- LSP自动下载
lvim.lsp.automatic_servers_installation = true

具体可以参考:https://www.lunarvim.org/docs/languages

Q&A

其实问题基本都是网络问题比较多。目前先留个空白目录吧,到时候看看大家遇到什么问题,做个追加~~

如果小伙伴对Vim的基础命令不熟悉,可以参考教程:

END

到此,Lvim和它的“好朋友们”就安装并配置完成了。

你也可以配合ZSH,获得更好的Shell体验:

编辑ZSH配置文件

ZSH

参考教程:


有些人可能会说,用Vscode、IDEA之类的编辑器或者集成开发工具不好么?当然好,而且很方便;但是Neovim安装Lvim,是让你的neovim支持更多功能;有时候,我们可能需要修改Python脚本内某些数据,直接在Lighthouse服务器上用Neovim就可以直接操作,亦或者直接编辑Nginx文件,还是挺方便的。

多一个方法,多条路;可不是让你丢弃开发环境,全部使用neovim进行开发哦。

这篇文章这么长…… 会不会劝退很多人呢?那就先点赞、收藏,以后再看吧~~~



Linux上配置LunarVim:快速初始化Neovim,让你的文本编辑更加清爽和强大
https://www.mintimate.cn/2023/01/10/guideForLunarvim/
作者
Mintimate
发布于
2023年1月10日
许可协议