Neovim 配置

01. VIM 配置
02. Neovim 配置
03. IdeaVim 进阶配置
04. VsVim 配置

前言

Vim 是一款拥有强大社区且仍不断发展的功能强大的文本编辑器。尽管 Vim 开发至今已有20年左右,人们仍然会扩展并希望改进它,最常用的就是使用 Vimscript 或其他一种受支持的脚本语言。

无可否认,Vim 是一款功能异常强大的文本编辑器,虽然上手难度陡峭,但一旦熟悉掌握,绝对会为你的文本编辑带来极大的便利。然而,由于历史架构原因,在 Vim 开发至今的20余年里,其代码累计已达恐怖的300k行C89代码,很少有人可以看懂,甚至说没有勇气去查阅。

这同时导致对于 Vim 的升级维护也异常困难,如果想为 Vim 添加功能,则维护者必须十分仔细地进行补丁检测,否则,一旦合并出现问题,那就是维护者的责任了。

这些问题导致了很难为 Vim 的核心代码进行新特性开发和 bug 修复。Vim 的开发速度已无法跟上其插件生态的开发建设了。

因此,Neovim 便应运而生了。

Neovim 简介

Neovim 对 Vim 的源码进行了积极的重构,以期达成如下目标:

  • 简化代码维护,提高漏洞修复和新特性开发速度。
  • 切分工作,分配给多个开发者共同进行开发。
  • 无需修改核心代码就可以实现高级 UI。
  • 使用基于协程的新型插件架构,使得可以以任意语言进行插件代码编写,无需编辑器的内置支持,大大增强插件编写的灵活性。

Neovim 意图并不是从头开始重新编码 Vim,或者将其开发成一个 IDE。一般来说,这里新的变更应当对 Vim 的编辑模式和 Vimscript 没有影响。大多数 Vimscript 插件应当能继续正常运行。

也就是说,我们的 vimrc 配置文件一般可以直接应用于 Neovim 中。

Neovim 特性

  • 现代化 GUI。
  • 提供多种语言的 api 接口,包括: C/C++, C#, Clojure, D, Elixir, Go, Haskell, Java, JavaScript/Node.js, Julia, Lisp, Lua, Perl, Python, Racket, Ruby, Rust。
  • 内置可编程终端模拟器。
  • 异步任务控制。
  • 可在多个编辑器实例中进行数据共享。
  • 支持基于 XDG的目录结构。
  • 兼容大多数 Vim 插件,包括 Ruby 和 Python 插件。具体相关项目,请查看:related projects

更多详细内容,请查看::help nvim-features

Neovim 配置

  • 安装:具体安装方法可查看:Neovim install,这里着重介绍下 Windows 10 上的安装步骤:
    下载 nvim-win64.zip,解压到本地路径,并将其配置到环境变量上:
Neovim 配置_第1张图片

   到此,控制台输入:nvim,即可调出 Neovim。

  • 配置:这里我们让 Neovim 直接使用我们的 Vim 配置,具体步骤如下:
  1. 首先,为 Neovim 创建一个配置文件:init.vim
" 先启动 neovim
nvim
" 然后再 neovim 中输入如下两条命令
:call mkdir(stdpath('config'), 'p')
:exe 'edit '.stdpath('config').'/init.vim'

到这里,Neovim 的配置文件就创建成功了,其路径位于:C:\Users\\AppData\Local\nvim\init.vim

  1. init.vim 中添加如下内容:
set runtimepath^=~/.vim runtimepath+=~/.vim/after
let &packpath = &runtimepath
" ~/.vimrc 表示: C:\Users\\.vimrc,此处的.vimrc就是我们vim的配置文件,这里我们让 neovim 也使用该配置文件
source ~/.vimrc
  1. 配置主题:网上下载相应模板(具体可查看:更改 colorscheme),放入到目录:
system path
Widows ~\AppData\Local\nvim\colors
Linux ~/.config/nvim/colors

这里放上两个本人使用的主题:colors

最后在init.vim上进行配置:

colorscheme zenburn

到这里,Neovim 的配置就已经完成了。

插件安装

以下是博主自己安装的 Neovim 插件:

  • vim-plug:下载 plug.vim,并放置到路径:~\AppData\Local\nvim\autoload
    其余配置及使用方法,请查看:gvim 安装 vim-plug

  • semshi:为 Python 提供语义高亮
    安装:
    1)首先需要为 Neovim 提供 Python3 支持(:echo has("python3")):

pip3 install pynvim --upgrade 

2)下载:这里我们使用包管理器 vim-plug:

Plug 'numirias/semshi', {'do': ':UpdateRemotePlugins'}

3)然后进行安装::PlugInstall
4)最后更新下远程插件菜单::UpdateRemotePlugins

  • [ncm2](替换为 coc.nvim):轻量级高效代码补全插件,支持多种语言。
    前提:
    1)Neovim 版本::echo has("nvim-0.2.2"),返回 1 表示支持。
    2)Python3 版本::echo has("python3"),返回 1 表示支持。如果返回 0,可尝试如下方法:
" shell command
python3 -m pip install pynvim

" vimrc
let g:python3_host_prog=/path/to/python/executable/ 

   3)安装:nvim-yarp

安装:

" assuming you're using vim-plug: https://github.com/junegunn/vim-plug
Plug 'ncm2/ncm2'
Plug 'roxma/nvim-yarp'

" NOTE: you need to install completion sources to get completions. Check
" our wiki page for a list of sources: https://github.com/ncm2/ncm2/wiki
Plug 'ncm2/ncm2-bufword'
Plug 'ncm2/ncm2-path'

" enable ncm2 for all buffers
autocmd BufEnter * call ncm2#enable_for_buffer()

" IMPORTANT: :help Ncm2PopupOpen for more information
set completeopt=noinsert,menuone,noselect
  • ncm2-jedi:基于 jedi 库的为 ncm2 提供的 Python 代码补全插件
    前提:由于该插件基于 jedi,因此需要先安装 jedi:
pip install jedi

   配置:

" 指定 Python 版本
let g:ncm2_jedi#python_version = 3
  • ncm2-bufword:基于当前缓冲区的字段补全

  • ncm2-path:自动补全路径,路径会从以下3个地方进行补全:
    1)bufpath:基于当前文件缓冲区的路径补全
    2)cwdpath:基于当前工作目录的路径补全
    3)rootpath:基于根目录的路径补全

  • ncm2-match-highlight:依据 Mathematical_Alphanumeric_Symbols 为 ncm2 提供的匹配高亮显示。(提示显示方块乱码,故去除)
    安装及配置:

" 该插件需先安装 ncm2
Plug 'ncm2/ncm2'
Plug 'roxma/nvim-yarp'
Plug "ncm2/ncm2-match-highlight"

let g:ncm2#match_highlight = 'sans-serif'
  • ncm2-markdown-subscope:为 ncm2 提供 markdown 文件的代码块检测。

其余插件,请查看:VIM 配置

你可能感兴趣的:(Neovim 配置)