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 简介

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

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

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

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

Neovim 特性

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

Neovim 配置

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

   到此,控制台输入: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\<user>\AppData\Local\nvim\init.vim

  1. init.vim 中添加如下内容:
set runtimepath^=~/.vim runtimepath+=~/.vim/after
let &packpath = &runtimepath
" ~/.vimrc 表示: C:\Users\<user>\.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_Symbolsncm2 提供的匹配高亮显示。(提示显示方块乱码,故去除)
    安装及配置:

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

let g:ncm2#match_highlight = 'sans-serif'

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容

  • macvim配置 最终效果如下: 系统环境 macos10.12.4 homebrew1.2.1 python3....
    Like_eb56阅读 68,678评论 5 65
  • win7 + gvim 打造Python IDE 考虑到有的软件下载地址不能正确访问(原因你懂的),本文中用到的所...
    尔牛阅读 7,221评论 3 9
  • 一、前言 环境: ubuntu16.04 vim7.4 python3.5 最终效果预览 如果想充分地利用好本文,...
    MiracleJQ阅读 4,386评论 0 11
  • 真实有效的Vim配置记录(macOS) 以前在Ubuntu里配置了两次Vim,macOS中配置了一次,都没有配置成...
    染微言阅读 11,354评论 0 8
  • 世界那么大,没有导航App出门怎么办?在美东晃荡数月,总结了几种情况下使用App导航的体验。 希望后来者对这些坑有...
    chen4w阅读 1,247评论 0 0