前言
对于使用 Ubuntu 用户来说,通过编译方式安装最新稳定版 Neovim,能尽可能地获取最新功能特性。
本文将详细演示从依赖准备到编译安装的完整流程,帮助用户在不同 Ubuntu 版本中顺利部署这一强大的文本编辑器。并将结合 Bash Shell 自动化脚本进行各步骤的错误提示,以提供安装过程的调试。
- 本文不用修改任何一个步骤同时兼容 Ubuntu 24.04, 22.04 和 20.04 LTS。
- 本文所用的脚本是 Bash Shell,如果您用的 Shell 是 zsh 或 fish,那么需要进入 Bash Shell 环境中运行这些脚本。
- 在命令行终端运行
bash命令进入 Bash Shell,退出时运行exit。
Neovim VS Vim
| 特性 | Vim | Neovim |
|---|---|---|
| 可扩展性 | 基于 Vimscript | 内置异步架构,支持 Lua 插件 |
| 内置 LSP 支持 | 需手动配置插件 | 原生内置语言服务器协议(LSP)支持 |
| UI 与终端分离 | 无 | 支持 GUI 客户端与异步渲染 |
| 社区与生态 | 历史悠久,插件丰富 | 现代化开发,更易维护 |
| 性能优化 | 单线程执行 | 异步执行,提高性能与响应速度 |
步骤一、 安装编译依赖工具
通过 apt 包管理器安装必要的开发工具和依赖项。脚本中包含循环机制,确保依赖安装失败时自动重试:
cat>/tmp/installer.sh<<EOF
echo '+++++++++++++++++安装依赖:'
sudo apt update
sudo apt-get install -y git ninja-build gettext cmake curl build-essential
code=\$?
TOTAL_CNT=5
while [ \$code -gt 0 ]; do
if [ \$TOTAL_CNT -eq 0 ]; then
break
fi
sudo apt-get install -y git ninja-build gettext cmake curl build-essential
code=\$?
sleep 1
TOTAL_CNT=\$((\$TOTAL_CNT - 1))
done
if [ \$code -eq 0 ]; then
echo '+++++++++++++++++成功安装依赖项软件包!'
else
echo '+++++++++++++++++安装依赖项软件包失败!'
exit
fi
EOF
bash /tmp/installer.sh
依赖项包括代码版本管理工具 git、构建工具 ninja-build 和 cmake、编译环境 build-essential 等,这些都是编译开源项目的基础组件。
步骤二、克隆代码仓库
为应对网络波动,脚本提供了官方 GitHub 仓库和镜像加速两种克隆方式(详情请参阅站内文章《GitHub国内访问慢?5种加速方案解决克隆失败,提升下载速度》)。
由于 GitHub 仓库的拉取在国内的速度时好时坏,除非您有网络代理,否则请老实使用镜像加速。
故,本文在克隆代码仓库时优先使用加速域名的方式:
用此方式可能有个不太严重的后果:可能加速服务器会缓存仓库内容,或许获取的 Stable 版本会旧一点点,但在合理范围内。
设立一个全局变量,用于存放加速域名:
export GHPROXY_DOAMIN=https://ghfast.top
2.1、 测试镜像是否有效
运行以下命令,如果无法正常下载,那么上文的加速域名很有可能已经失效:
cat>/tmp/installer.sh<<EOF
cd /tmp
wget -O test-README.md \$GHPROXY_DOAMIN/https://github.com/neovim/neovim/blob/master/README.md
EOF
bash /tmp/installer.sh
2.2、 加速域名无效时做的应对措施
若是加速域名失效,可根据上文的《解决 GitHub 国内访问慢,五种解决方案》来获得最新有用的加速域名,然后将获取到的加速域名替换原来的(替换上文 GHPROXY_DOAMIN 变量的值)。
2.3、 通过 Github 镜像克隆代码仓库
# 如果 3 失效,请依次尝试 2 和 1
# 如果使用了网络代理,可选择 1
export USING=3
cat>/tmp/installer.sh<<EOF
echo '+++++++++++++++++1. 进入临时工作目录:'
cd /tmp
echo '+++++++++++++++++2. 克隆 Github 代码仓库:'
## USING=3
if [ \$USING -eq 1 ]; then
# 1.
GITHUB_URL=https://github.com/neovim/neovim.git
elif [ \$USING -eq 2 ]; then
# 2.
GITHUB_URL=https://gitclone.com/github.com/neovim/neovim.git
elif [ \$USING -eq 3 ]; then
# 3.
GITHUB_URL=\$GHPROXY_DOAMIN/https://github.com/neovim/neovim.git
else
GITHUB_URL=\$GHPROXY_DOAMIN/https://github.com/neovim/neovim.git
fi
git clone "\$GITHUB_URL"
code=\$?
TOTAL_CNT=5
while [ \$code -gt 0 ]; do
if [ \$TOTAL_CNT -eq 0 ]; then
break
fi
git clone "\$GITHUB_URL"
code=\$?
sleep 1
TOTAL_CNT=\$((\$TOTAL_CNT - 1))
done
if [ \$code -eq 0 ]; then
echo '+++++++++++++++++成功克隆代码仓库!'
else
echo '+++++++++++++++++代码仓库克隆失败!'
exit
fi
EOF
bash /tmp/installer.sh
若克隆失败请换一种方式,重复上述脚本的运行。
步骤三、切换到稳定版分支
关注微信公众号:程序知路( fileio )
回复关键词 post4782 获取解锁密码
总结
通过以上步骤,用户可在 Ubuntu 24.04、22.04 和 20.04 中完成最新稳定版 Neovim 的编译安装,整个流程涵盖依赖管理、代码获取、编译配置与执行安装的过程、环境变量的设置,以及桌面启动器的相关配置。
Neovim 相较于 Vim,在可扩展性、异步执行与内置 LSP 支持等方面具有显著优势,适合现代开发者使用。祝您使用愉快!
鉴于本人的相关知识储备以及能力有限,本博客的观点和描述如有错漏或是有考虑不周到的地方还请多多包涵,欢迎互相探讨,一起学习,共同进步。
本文章可以转载,但是需要说明来源出处!
本文使用的部分图片来源于网上,若是侵权,请与本文作者联系删除: admin@icxzl.com

