博客:https://www.mintimate.cn Mintimate’s Blog,只为与你分享
Neovim最近几年的热度十分高,甚至我这个Vim用户,都开始转向使用Neovim了。相比之前使用Vim(尤其是Vim7.x之前,还未使用异步任务时),Neovim明显更快。同时Neovim使用Lua脚本化语言进行配置,确实更加方便。
但是手动配置Neovim,总归有点麻烦。尤其是刚转向Neovim,对Lua的语法还不是很熟悉的情况下,怎么才能快速配置,让它先跑起来呢?
答案很简单,就是用别人整合好的配置。网上有非常多别人整合好的GitHub仓库包,这里介绍一个特殊的项目:LunarVim
通过LunarVim的配置,可以让你的Neovim瞬间在Linux服务器上变身成为IDE。
其实,LunarVim的官网就有总结性的描述:
Interstellar Development Experience The IDE that's too cool for planet Earth. A stellar Neovim experience. The universe's most lightweight IDE. ……
这个可能是使用Vim/Neovim,在没有安装插件时候的效果:
这个就是使用LunarVim的效果:
不过,安装起来还是有点麻烦,主要的原因:
本文就尽可能帮大家解决啦。
部分东西,还是视频比较清晰。
这里做个视频,主要内容:
嘿嘿,做教程视频不易(B站根本不会推荐引流),请务必一键三连嗷:
其实就是个Shell工具,不管是Linux还是macOS都可以安装。(Windows的话,就没试过了~~)
Windwos的Neovim,LunarVim也是支持;但是我用Windows很少,就算用…… 我一般也是直接用Vscode作为文本编辑。
如果你并没有Linux设备,需要一个Linux设备来练手,强烈推荐:
另外,为大家争取到优惠*(੭ˊᵕˋ)੭ଘ:
Lunarvim是可以给root和非root用户安装的。但是用root用户操作,终归有点不安全。
建议给非root用户安装。比如:玩一般会在服务器上创建我自己的用户:
# 当前root用户
useradd -s /bin/zsh -m mintimate
# 设置用户密码
passwd mintimate
之后,根据自己喜好,决定是否添加到sudo权限内。并切换到用户,进行后续neovim和lunarvim的安装操作。
首先我们需要安装Neovim,安装的方法很多:
没有说那种方法就最好,但是如果说麻烦…… 还是编译安装麻烦点,但是目前arm架构的Linux,目前只能用编译安装。
好在,编译安装的Neovim兼容性最好。
你可以使用软件包管理器进行安装:
# Debian(include Ubuntu)
apt install neovim
# CentOS
yum install neovim
# macOS(需要Homebrew支持)
brew install neovim
这样就安装完成了,并且版本是V0.8.2
:
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发布地址有提供Debian和CentOS的软件包:
举个例子,我们在腾讯云的Debian/Ubuntu发行版本上进行安装:
# 下载发行版本
wget https://github.com/neovim/neovim/releases/download/stable/nvim-linux64.deb
# 使用dpkg包管理器安装
dpkg -i nvim-linux64.deb
当然,不支持Arm架构,所以在树莓派上安装是不行的:
那么?如何在树莓派上安装呢?
-- 答:编译安装
上文看到,无法在树莓派上使用软件包管理器或者软件包安装。这里我们就来介绍如何编译安装。
首先,克隆项目,通常我们使用稳定版本:
# 克隆项目
git clone https://github.com/neovim/neovim
# 进入项目内
cd neovim
# 切换分支为稳定版本
git checkout stable
之后,使用cmake进行编译:
make CMAKE_BUILD_TYPE=RelWithDebInfo
之后,使用命令进行安装:
sudo make install
通常情况下,这样就安装完成了:
如果你想卸载neovim,可以在当前目录下执行:
sudo cmake --build build/ --target uninstall
在安装之前,先教教大家如何卸载。以便在无法使用的情况下或者不需要的情况下,知道如何卸载。
LunarVim安装不需要root权限,并且是对原有的neovim进行封装,所以只是会有一些仓库文件。最棒的是,它的安装非常合规:
$HOME/.config/lvim
:lvim的个性化配置文件;$HOME/.local/bin/lvim
:lvim的执行文件;$HOME/.cache/lvim
:lvim的缓存目录;$HOME/.config/lvim.old
:可能存在的lvim个性化文件备份所以,卸载LunarVim:
rm -rf ~/.config/lvim ~/.local/share/lunarvim ~/.local/bin/lvim ~/.config/lvim.old
这样就卸载好了,大道至简~~~
安装Lunarvim的方法,这里分两种:
手动脚本
。我们的网络连接GitHub没有问题的话,用官方的脚本还是很方便的:
LV_BRANCH='release-1.2/neovim-0.8' bash <(curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/master/utils/installer/install.sh)
如果网络有问题,正常会有一些报错,比如:无法校验插件完整
[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
添加到环境变量:
# 如果你使用bash
echo "export PATH=\$PATH:\$HOME.local/bin" >> ~/.zshrc
# 如果你使用zsh
echo "export PATH=\$PATH:\$HOME.local/bin" >> ~/.zshrc
之后,重载环境变量,应该就可以使用lvim
命令:
使用命令:
lvim
进入Luarnvim,会出现错误:
这个时候,其实是处于命令模式
,我们输入:
:PackerSync
进行手动初始化(插件拉取载入):
嗯…… 如果网络还是无法连接GitHub……。应该还是一堆的报错:
这个时候,也不用慌。实在无法解决,可以参考手动脚本
的下载预编译库进行替换初始化。
首先介绍一下脚本的原理:
lunarvim.git
为Gitee镜像源。安装脚本:
bash <(curl -s https://api.host.mintimate.cn/fileHost/public/download/NMAd)
如果你卡在启用CloudFare加速
步骤:
可以按Ctril+C
终止进程,并恢复Git:
git config --global --unset url."https://fast.github.flyinbug.top/mintimate/https://github.com/".insteadOf "https://github.com/"
并使用我提前打包的镜像文件替换自己的文件。
如果使用官方脚本
或者手动脚本
出现任何问题。可以使用我预先安装打包的文件进行替换,没什么特别的,就是:
我会不定期更新,下载地址:
https://alist.flyinbug.top/PublicShare/LunarvimStatic/latest
之后,在终端依次执行:
# 进入仓库文件存放地址
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还是可以用的),比如:
解决方法很简单啦: 更新Packer、更新编译器:
:PackerSync
:TSUpdate
现在,我们进行初始化更新。
可以在Lunarvim激活时(lvim命令),:LvimUpdate
命令进行更新。
首先,使用lvim
命令进入Lunarvim,如果实现没有配置环境变量,通常找不到命令:
我们需要把当前用户“家目录”下的.local/bin
添加到环境变量:
# 如果你使用bash
echo "export PATH=\$PATH:\$HOME.local/bin" >> ~/.zshrc
# 如果你使用zsh
echo "export PATH=\$PATH:\$HOME.local/bin" >> ~/.zshrc
之后,重载环境变量,应该就可以使用lvim
命令:
更新操作:
现在我们来看看Lvim(LunarVim)的配置文件:
首先,Lvim的配置,官方为了不与Neovim的配置文件冲突。Lvim的配置文件为:
配置在原有neovim的基础上,增加了Lvim的个性化配置。
你可以添加一些vim或者neovim的配置,比如:
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的使用吧。毕竟官方的使用指南是完完整整的一个文档,一篇博客,能简单入门就很不错了。
首先是“文件管理树”:nvim-tree
Lvim默认安装了nvim-tree插件,并且使用<leader>
和e
键进行绑定(<leader>
键默认为空格)。
在Lvim成功配置的情况下,可以按上述组合键,呼出“文件管理树”,配合鼠标和键盘进一步实现IDE的效果:
其次是内置终端:ToggleTerm
使用Ctrl+4
可以快速呼出:
最后,就是自带的LSP了。Lvim使用treesitter进行语法提升并下载支持。
所以在编辑文件,Lvim就会自动下载,如果不需要或者想自定义,可以关闭配置文件内的:
-- treesitter自动下载
lvim.builtin.treesitter.auto_install = true
-- LSP自动下载
lvim.lsp.automatic_servers_installation = true
具体可以参考:https://www.lunarvim.org/docs/languages
其实问题基本都是网络问题比较多。目前先留个空白目录吧,到时候看看大家遇到什么问题,做个追加~~
如果小伙伴对Vim的基础命令不熟悉,可以参考教程:
到此,Lvim和它的“好朋友们”就安装并配置完成了。
你也可以配合ZSH,获得更好的Shell体验:
参考教程:
有些人可能会说,用Vscode、IDEA之类的编辑器或者集成开发工具不好么?当然好,而且很方便;但是Neovim安装Lvim,是让你的neovim支持更多功能;有时候,我们可能需要修改Python脚本内某些数据,直接在Lighthouse服务器上用Neovim就可以直接操作,亦或者直接编辑Nginx文件,还是挺方便的。
多一个方法,多条路;可不是让你丢弃开发环境,全部使用neovim进行开发哦。
这篇文章这么长…… 会不会劝退很多人呢
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。