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,解压到本地路径,并将其配置到环境变量上:
到此,控制台输入:nvim
,即可调出 Neovim。
- 首先,为 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
- 在
init.vim
中添加如下内容:
set runtimepath^=~/.vim runtimepath+=~/.vim/after
let &packpath = &runtimepath
" ~/.vimrc 表示: C:\Users\<user>\.vimrc,此处的.vimrc就是我们vim的配置文件,这里我们让 neovim 也使用该配置文件
source ~/.vimrc
- 配置主题:网上下载相应模板(具体可查看:更改 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
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 配置
网友评论