如何安装NeoVim和使用vim-plug安装相关插件?

什么是NeoVim?

如果您是系统管理员或软件开发人员,那么你每天都需要使用的工具中一定有一种强健的文本编辑器。您很可能已经使用过vi或vim编辑器,它们已经在Unix和Linux社区中用了几十年了。

虽然vim仍然是处于活跃开发的状态,但它已经包含了大约30万行的C89编码代码。因为Bram Moolenaar是唯一维护其大型代码库的人了,所以现在的vim除了难以维护之外,其问题和新的代码合并取请求都无法很快解决。

由于这些难题和缺乏对如异步插件等所需功能的支持,这促使NeoVim成为vim的一个分支。该项目的主要目标是完全重构vim,以便简化维护,并且实现快速添加新特性并将bug修复添加到源代码中。

从NeoVim可以期待什么?

在NeoVim分支后的短时间中,其已经实现了两个突出的特性:异步插件和用于编程实现控制NeoVim的远程调用(RPC)API。

异步插件可以在不干扰主编辑器进程的条件下就实现插件后台运行。

RPC API允许GUI图形界面程序(以及使用msgpack-rpc消息传递协议的其他软件)连接到正在运行的NeoVim实例。这意味着您可以将Atom、Visual Studio Code和Sublime Text这样众所周知的文本编辑器与NeoVim集成,并在它们之间进行双向同步修改。以这种方式,您就可以在使用nvim进行远程调用来利用GUI程序的所有特性。

本文将详细说明NeoVim的安装和配置,同时说明两个异步插件nvim-completion-managerfar.vim

准备工作

  1. 熟悉我们的入门指南并完成Linode主机名和时区的设置步骤。
  2. 本文将尽可能使用sudo来实现命令。完成“ 保护您的服务器 ”部分以创建标准用户帐户。
  3. 安装必要的工具: - 在CentOS和类似的发行版中,启用Extra Packages(EPEL)第三方源存储库,然后安装相关依赖包: sudo yum install epel-release -y sudo yum install wget fuse fuse-libs git ack python34-pip -y - 在Debian,Ubuntu及其衍生版本中: sudo apt-get install fuse libfuse2 git python3-pip ack-grep -y

在本教程中,我们通过下载appimage来安装NeoVim,这是一个包含应用程序及其依赖项的二进制文件(没有包含FUSE库文件,它们仍需要单独安装)。此方法与Linux版本无关并且其可以提供最新版本的软件包。

请注意,NeoVim appimage目前仅适用于64位系统。如果您使用的是其他架构系统,或者想要查看NeoVim是否可从您的发行版存储库中获得,则可以参考NeoVim wiki中的安装说明。

虽然FUSE库使得appimage可以由非root用户在它们的主目录运行,但我们通常会将其放入/usr/bin来时的所有用户都可以使用。这将允许用户使用相同的应用程序的同时,进行单独配置以满足他们的特定需求。

安装NeoVim Appimage

  1. 下载并安装appimage,使用output-document选项将其重命名为nvimwget --quiet https://github.com/neovim/neovim/releases/download/nightly/nvim.appimage --output-document nvim
  2. 将所有者设置为root,并使所有用户都可以访问nvim: chmod +x nvim sudo chown root:root nvim
  3. 将二进制文件移动到/usr/binsudo mv nvim /usr/bin
  4. 进入主目录并创建子文件夹以存储配置文件: cd ~ mkdir -p .config/nvim

安装Vim-plug插件管理器

为了更方便安装插件,请使用Vim-plug插件管理器。该插件管理器使用git来管理大多数插件:

 curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

(可选项)导入现有vim配置

如果您已经拥有vim配置,那么可以将其重用于nvim。虽然vim和nvim可以共享相同的配置文件,但是为了避免在没有为vim配置Vim-plug时出错,请为vim创建一个单独的配置文件,:

ln -s ~/.vimrc ~/.config/nvim/init.vim

或者以当前目录路径下创建一个单独的配置文件,使用~/.vimrc

cp ~/.vimrc ~/.config/nvim/init.vim

运行NeoVim

启动nvim,输入:

nvim

如果不保存更改就推出,请按ESC键进入命令模式,之后输入:

:q!

安装NeoVim插件

Nvim-completion-manager插件

nvim-completion-manager是一个快速、可扩展的完整框架,支持各种编程语言和代码段解决方案。其中一些是开箱即用的,而另一些则需要安装额外的Python 3模块才能工作。在本文中,我们将介绍此插件与UltiSnips的合作使用,后者是一个强健的代码段解决方案。

  1. 安装NeoVim Python模块: pip3 install --user neovim
  2. ~/.config/nvim/init.vim文件底部添加以下行,以容纳UltiSnips和vim-snippets提供的代码段:
  3. 启动nvim,执行PlugInstall,更新插件,然后退出: nvim :PlugInstall :UpdateRemotePlugins :q! :q!
  4. 重新启动nvim后,该插件即可使用。如果需要测试它,请如下创建一个名为helloworld.py.py的文件: nvim helloworld.pyi进入插入模式,然后输入def。您应该看到一个类似于下图所示的下拉列表。使用键盘上的向上和向下箭头高亮其中一个选项,然后按Tab键。代码段将插入文件的正文中:
    有关其他编程语言中的更多示例,请参阅插件文档

Far.vim插件

far-vim是一个用于对一组文件(通常在同一目录中)执行异步搜索和替换操作的插件。

  1. 之前插入以下行call plug#end()~/.config/nvim/init.vim
  2. 打开nvim并执行PlugInstall,更新插件,然后退出。重新启动nvim时,该插件将可用: nvim :PlugInstall :UpdateRemotePlugins :q! :q!
  3. 如果要测试Far.vim,请创建一个名为myproject的目录并在目录中创建两个文件: mkdir myproject cd myproject
  4. 使用nvim打开任一文件并使用命令模式: :Far name nombre .py$ --source=acknvim nvim窗口将分为两个窗格。左侧显示文件,如果更改应用于当前目录中的所有.py文件,右侧则显示相应结果。使用Fardo应用更改(仍处于命令模式): :Fardo 如果需要撤消更改: :Farundo

Neomake—— 另一种选择

您可能还想看看neomake,一个类似于vim中syntastics的插件。每当你保存更改,syntastucs在检查大文件的语法时,它可能会假死,neomake在不造成任何中断的情况下实现相同功能。

蓝图和未来

有超过300名开发人员在GitHub中为NeoVim做出贡献,预计该项目将以比过去更快的速度增长。您可以访问官方GitHub,来查看milestones里程碑事件和下一版本的roadmap蓝图。

更多信息

有关此主题的其他信息,您可能会需要参考以下资源。虽然我们希望提供的资源是有效的,但请注意,我们无法保证外部托管材料的准确性或及时性。

本文的版权归 PantaZheng 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员叨叨叨

【9】全民博客时代的到来——20分钟简要教程

很久以前就想搭建一个个人技术博客的网站了,但是那时候接触的东西不多,没有听说过hexo、jekyll、wordpress等快速blog生成工具,自己在网上找了博...

13830
来自专栏哈雷彗星撞地球

Mac 下安装node.js

Node.js 是一个用Chrome's V8 JavaScript engine 构建的 JavaScript 运行时框架。Node.js 使用事件驱动、非阻...

22050
来自专栏程序猿DD

Jenkins:配置信息变更历史

作者:sparkdev 出处:http://www.cnblogs.com/sparkdev/ 像 Jenkins 这样的系统,使用的过程就是配置文件变更的过程...

26650
来自专栏散尽浮华

线上mongodb 数据库用户到期时间修改的操作记录

登陆版权数据库,显示"此用户已到期",数据库使用的是mongodb,顾 需要将此用户的到期时间延长。 ? ? 解决过程: 1)到网站对应tomcat配置里找出等...

19170
来自专栏L宝宝聊IT

服务器监控cacti

53440
来自专栏Jerry的SAP技术分享

找出OData service出错根源的小技巧

SAP的Fiori应用是通过OData和后台交互的。在使用Fiori应用时您可能会遇到这样的错误消息:

22890
来自专栏从零开始学自动化测试

selenium+python在mac环境上的搭建

前言 mac自带了python2.7的环境,所以在mac上安装selenium环境是非常简单的,输入2个指令就能安装好 需要安装的软件: 1.pip 2.sel...

30340
来自专栏SpringBoot 核心技术

Git核心技术:在Ubuntu下为Gitolite添加客户端

在之前的章节完成了服务端、管理客户端的配置,基础的配置已经完成,下面就可以开始把团队的开发人员添加到服务端了,客户端的配置要比管理客户端更简单一些,只需要把客...

11930
来自专栏轮子工厂

来谈一谈你在编程过程中都遇到过哪些奇葩的问题

1、Jquery插件一个通用函数一直报错,尤其是很明显是存在的函数,很有可能就是你没有引入jquery。。。或者版本不对

8210
来自专栏地方网络工作室的专栏

Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(十)打包项目并发布到子目录

Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(十)打包项目并发布到子目录 前情回顾 通过上一章《Vue2+VueRou...

25680

扫码关注云+社区

领取腾讯云代金券