前言
对于使用 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
测试镜像是否有效
运行以下命令,如果无法正常下载,那么上文的加速域名很有可能已经失效:
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
加速域名无效时做的应对措施
若是加速域名失效,可根据上文的《解决 GitHub 国内访问慢,五种解决方案》来获得最新有用的加速域名,然后将获取到的加速域名替换原来的(替换上文 GHPROXY_DOAMIN 变量的值)。
通过 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
若克隆失败请换一种方式,重复上述脚本的运行。
三、切换到稳定版分支
八、系统配置与残余文件清理
本章节也是本文的最后一个主要部分,完成以下几方面的工作:
- 添加刚刚安装的二进制目录到系统环境变量中;
- 修改桌面启动器的程序图标和完整的命令执行路径;
- 清理编译安装过程留下的文件和目录;
- 验证安装的成败。
添加环境变量
将可执行文件路径写入用户环境变量配置文件,确保全局调用:
cat>/tmp/installer.sh<<EOF
echo '+++++++++++++++++将新安装的可执行文件目录添加进系统的环境变量中:'
if [ -d /usr/local/neovim-stable/bin ]; then
echo \$SHELL | grep -i bash
if [ \$? -eq 0 ]; then
echo ''>>~/.bashrc
echo 'export PATH="\${PATH}:/usr/local/neovim-stable/bin"' >>~/.bashrc
fi
echo \$SHELL | grep -i fish
# 如果默认 Shell 为 Fish,那么须执行以下的命令:
if [ \$? -eq 0 ]; then
echo ''>>~/.config/fish/config.fish
echo 'set PATH \$PATH "/usr/local/neovim-stable/bin"' >>~/.config/fish/config.fish
fi
fi
EOF
bash /tmp/installer.sh
桌面环境适配
修改桌面启动器配置,确保图标和执行路径正确,并复制到系统应用目录,方便图形界面调用:
cat>/tmp/installer.sh<<EOF
echo '+++++++++++++++++更改启动路径和图标:'
if [ -d /usr/local/neovim-stable/share/applications ]; then
sudo sed -i 's@TryExec=nvim@TryExec=/usr/local/neovim-stable/bin/nvim@g' /usr/local/neovim-stable/share/applications/nvim.desktop
sudo sed -i 's@Exec=nvim@Exec=/usr/local/neovim-stable/bin/nvim@g' /usr/local/neovim-stable/share/applications/nvim.desktop
sudo sed -i 's@Icon=nvim@Icon=/usr/local/neovim-stable/share/icons/hicolor/128x128/apps/nvim.png@g' /usr/local/neovim-stable/share/applications/nvim.desktop
sudo cp /usr/local/neovim-stable/share/applications/nvim.desktop /usr/share/applications/
fi
EOF
bash /tmp/installer.sh
清理临时文件
安装完成后删除临时目录,释放磁盘空间:
cat>/tmp/installer.sh<<EOF
echo '+++++++++++++++++删除源代码目录!'
sudo rm -rfv /tmp/neovim
EOF
bash /tmp/installer.sh
rm -fv /tmp/installer.sh
验证是否安装成功
- 有图形界面的系统,在启动器或者软件列表中搜索“neovim”是否会出现相应的图标,点击图标是否会正常启动程序;
- 另起一个命令行终端,运行
nvim命令,看看是否启动文本编辑器; - 或者另开终端,执行命令
nvim --version即可验证。 - 如果遇到没有图形界面的系统,需要退出(/注销)当前用户,再登录系统才会使环境变量生效。
总结
通过以上步骤,用户可在 Ubuntu 24.04、22.04 和 20.04 中完成最新稳定版 Neovim 的编译安装,整个流程涵盖依赖管理、代码获取、编译配置与执行安装的过程、环境变量的设置,以及桌面启动器的相关配置。
Neovim 相较于 Vim,在可扩展性、异步执行与内置 LSP 支持等方面具有显著优势,适合现代开发者使用。祝您使用愉快!
鉴于本人的相关知识储备以及能力有限,本博客的观点和描述如有错漏或是有考虑不周到的地方还请多多包涵,欢迎互相探讨,一起学习,共同进步。
本文章可以转载,但是需要说明来源出处!
本文使用的部分图片来源于网上,若是侵权,请与本文作者联系删除: admin@icxzl.com


