Ubuntu 安装 Neovim

更新日期: 2022-04-08 阅读次数: 16405 字数: 477 分类: Vim

GitHub Copilot 支持了 Neovim,但是没有支持 vim。所以,我决定试一把 Neovim。折腾了一天,也仅仅是安装完成,而要兼容之前的 Vim 配置,还遥遥无期。。。

进入正题,在 Ubuntu 18.04 上,我尝试过 3 种方式安装 Neovim

尝试过的安装方式

  • 失败:直接下载编译好的 nvim-linux64.tar.gz。但是运行后,会报错找不到 lua
  • 失败:源码编译安装。make 时会大量从 github 下载,网络问题会超时失败
  • 成功:apt install。唯一成功的方式

apt install Neovim

参考

https://github.com/neovim/neovim/wiki/Installing-Neovim#ubuntu

激进的我选择了安装最新的 unstable 版本

sudo add-apt-repository ppa:neovim-ppa/unstable
sudo apt-get update
sudo apt-get install neovim

保守的做法可以使用官方的 stable:

sudo add-apt-repository ppa:neovim-ppa/stable

ImportError: cannot import name '_gi' from partially initialized module 'gi'

如果 add-apt-repository 报错:

$ sudo add-apt-repository ppa:neovim-ppa/unstable

Traceback (most recent call last):
  File "/usr/bin/add-apt-repository", line 11, in <module>
    from softwareproperties.SoftwareProperties import SoftwareProperties, shortcut_handler
  File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 67, in <module>
    from gi.repository import Gio
  File "/usr/lib/python3/dist-packages/gi/__init__.py", line 42, in <module>
    from . import _gi
ImportError: cannot import name '_gi' from partially initialized module 'gi' (most likely due to a circular import) (/usr/lib/python3/dist-packages/gi/__init__.py)

大概率是由于由默认的 python 3.6 升级到了 python 3.8 造成的。

一种解决方法就是,改用 python3.6 执行 apt-add-repository。因为 apt-add-repository 不过就是一段 python 脚本。

sudo python3.6 /usr/bin/apt-add-repository ppa:neovim-ppa/unstable

查看版本号

> nvim --version
NVIM v0.7.0-dev
Build type: RelWithDebInfo
LuaJIT 2.1.0-beta3

目前 2022-02-08,Neovim 官方的稳定版是 0.6.0 / 0.6.1,采用 unstable 版本直接上了 0.7.0。

注意,如果使用 ubuntu 默认的源,安装的是非常旧的版本 NVIM v0.2.2。

checkhealth provider

E319: No "python3" provider found. Run ":checkhealth provider"

第一次安装时,说找不到 python3 provider,提示运行

:checkhealth provider

这个命令超级方便,可以自动检测依赖的安装情况,同时会给出 python 相关的配置提示,非常友好。

安装 python provider

按照提示,执行

pip3 install neovim

并配置好 ~/.config/nvim/init.vim

let g:python_host_prog = '/usr/bin/python'
let g:python3_host_prog = '/usr/bin/python3'

ModuleNotFoundError: No module named 'pip._internal'

pip3 install neovim

报错:

ModuleNotFoundError: No module named 'pip._internal'

修复:

sudo python3 -m pip install --upgrade pip

更极端一点

把默认的 vim 指向 neovim

sudo update-alternatives --install /usr/bin/vim vim /usr/bin/nvim 60
sudo mv /usr/local/bin/vim /usr/local/bin/vim_bak

tags: neovim

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式

谈笑风生

qwerty

你把下载的压缩包全部解压到 $HOME/.local 里(包括 bin, share 这些子目录,都放过去),执行 $HOME/.local/bin/nvim 应该可以。