1、What's Neovim

Bram Moolenaar 在写 Vim 时还是 90 年代初,至今已经 20 多年 过去了。其中,不仅包含了大量的遗留代码,而且程序的维护、Bug 的 修复、以及新特性的添加都变得越来越困难。为了解决这些问题,Neovim 项目应运而生。Neo 即“新”之意,它是 Vim 在这个新时代的重生。

根据 Neovim 的自述说明,在总体上,它将达到下列目的:

通过简化维护以改进 Bug 修复及特性添加的速度;
分派各个开发人员的工作;
实现新的、现代化的用户界面,而不必修改核心源代码;
利用新的、基于协同进程的新插件架构改善扩展性,并支持使用任何语言 编写插件

以上介绍来自linuxtoy

此外, 在最近的版本中, 还有非常值得注意的几点:

实现了嵌入式终端模拟器, 可以跟各种REPL插件说再见了
使用远程API(好像是socket), 不光能使用各种语言编写插件, 而且可以很方便的编写GUI版本, 甚至嵌入至IDE中
由于内部优化了事件监听器还是什么的, 代码粘贴的时候, 可以自动识别, 不像vim里一样需要:set paste, 不然会出现蜜汁缩进和括号对
直接支持剪贴板, 不需要重新编译

1.安装

sudo apt update
sudo apt install -y neovim
pip3 install neovim jedi python-language-server --user

2.配置

mkdir -p ~/.config
cd ~/.config/
# 如果你在 HH-B
wget http://oss.hh-b.brainpp.cn/wyz-share/dotfiles/nvim.tar.gz
# 如果你在其它 site
wget http://oss-internal-hh-b.proxy.brainpp.cn/wyz-share/dotfiles/nvim.tar.gz
# 解压配置文件
tar xf nvim.tar.gz
ln -s ~/.config/nvim/coc ~/.config/coc # 让 neovim 成为默认的 vim
sudo update-alternatives --install /usr/bin/vim vim /usr/bin/nvim 60
sudo update-alternatives --config vim
sudo update-alternatives --install /usr/bin/editor editor /usr/bin/nvim 60
sudo update-alternatives --config editor # 刷新插件
nvim -c UpdateRemotePlugins 以及,在 ~/.tmux.conf 里写一句
set -sg escape-time 10
~/.vim/plugged/YouCompleteMe 下运行 install.py
p.s.该 vim 对 python 程序能自动补全、提示函数参数,在普通模式下按 \g (先按\,再按g) 即可跳转到定义,\u 即可查找函数被调用的地点等。

3.常用neovim配置

neovim的配置文件地址在

~/.config/nvim/init.vim

我们推荐使用vim-plug来管理插件。

安装vim-plug

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

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

" vim-plug plugins {
call plug#begin('~/.vim/plugged') " some common practice are in vim-sensible
Plug 'tpope/vim-sensible' " Nerdtree to navigate among directories
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } " YouCompleteMe for auto completion
function! BuildYCM(info)
" info is a dictionary with 3 fields
" - name: name of the plugin
" - status: 'installed', 'updated', or 'unchanged'
" - force: set on PlugInstall! or PlugUpdate!
if a:info.status == 'installed' || a:info.force
!./install.py
endif
endfunction Plug 'Valloric/YouCompleteMe', { 'do': function('BuildYCM') } " fzf for fuzzy search {
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plug 'junegunn/fzf.vim' " activate fzf by ctrl-p
nnoremap <silent> <C-p> :Files<CR>
" } " mundo for navigate in undo-tree {
Plug 'simnalamburt/vim-mundo'
nnoremap <F5> :MundoToggle<CR>
" } " vim-airline for pretty status bar
Plug 'vim-airline/vim-airline'
call plug#end()
" } " show line number all the time
set number " python: set indent to 4 spaces {
" autocmd BufNewFile,BufRead *.py set tabstop=4 softtabstop=4 shiftwidth=4 expandtab
autocmd FileType python set tabstop=4 softtabstop=4 shiftwidth=4 expandtab " } " shortcuts for common python boilerplates {
" `ipeb` for ipython embed
abbr ipeb from IPython import embed; embed() " `agps` for argparse
abbr agps parser = argparse.ArgumentParser()
\<CR>parser.add_argument(dest='')
\<CR>args = parser.parse_args()
" } " Move cursor in insert mode {
inoremap <c-h> <Left>
inoremap <c-j> <Down>
inoremap <c-k> <Up>
inoremap <c-l> <Right>
inoremap <c-e> <End>
inoremap <c-f> <Home>
inoremap <c-w> <Right><Esc>wi
inoremap <c-b> <Right><Esc>bi
inoremap <c-O> <Esc>O
" }

安装插件

vim +PlugInstall

vim cheat sheet

https://www.fprintf.net/vimCheatSheet.html

NeoVIM安装使用的更多相关文章

  1. Vim和Neovim安装YouCompleteMe

    确定支持Python,Vim一般支持,Neovim默认不支持 Vim的就不介绍方法了,很多系统都不一样.Neovim添加Python支持 pip install setuptools pip inst ...

  2. neovim在win10下安装配置

    安装 github安装包地址 在Windows的Pre-built archives下 点击nvim-win64.zip,下载. 解压安装包,放入适合的文件中,比如 D:\Editor中. 双击 nv ...

  3. linux中neovim+tmux安装与配置遇到的问题

    Neovim 安装与配置 安装 pip3 install neovim 之前安装过anaconda,默认安装python3和pip3 检查状态 :checkhealth 终端输入'nvim' 进入nv ...

  4. SpaceVim的基本安装和常见问题

    SpaceVim官网:https://spacevim.org/ SpaceVim中文官网:http://spacevim.org/cn/ SpaceVim的Github页面:https://gith ...

  5. 关于Vim/Neovim/SpaceVim的一些思考

    1 前言 最近看到了Neovim以及SpaceVim,于是上手试了一下. 2 Neovim与SpaceVim Neovim是Vim的一个分支,具有更加现代的GUI.嵌入式以及脚本化的终端.异步工作控制 ...

  6. Sublime Text 3安装完美的Vim支持,ActualVim/NeoVim

    很多IDE和编辑器都有Vim插件用于支持Vim模式,但大多数都有些问题,拿我一直用的Idea来说,它的vim在ctrl+v后,选择多行的行前插入,如果这几行中有空行,它不会把空格算在内,所以最终是会少 ...

  7. neovim初次安装使用

    github下载neovim代码 按readme中安装,中间可能 要安装一些库 将vim的配置关联到nvim,发现和vim是一样的 ln -s ~/.vim ~/.config/nvim ln -s ...

  8. neovim的新体验

    A. 缘由  vim下的CtrlP插件好用,但是当文件较多时,不能很快检索,时有卡死的情况发生.听说neovim引入了很多新的功能,例如异步处理,job管理等. B. 安装neovim1. Ubunt ...

  9. Neovim中提示Error: Required vim compiled with +python

    Neovim在编辑python文件时出现错误提示,如下图 原因 出现该错误的原因说明未安装Python2/3的支持 解决方法 使用包管理器安装Neovim的Python支持python-neovim ...

随机推荐

  1. Flask+微信公众号开发(接入指南)

    目录 一.注册公众号 二.启用开发者 三.配置服务器配置 四.开发自己的需求 五.写在最后 一.注册公众号 具体的注册过程,根据官方文档一步一步来即可.这里需注意的是订阅号还是服务号:有些比较好的开发 ...

  2. Python os.write() 方法

    write()方法语法格式如下:高佣联盟 www.cgewang.com os.write(fd, str) 参数 fd -- 文件描述符. str -- 写入的字符串. 返回值 该方法返回写入的实际 ...

  3. PHP cal_days_in_month() 函数

    ------------恢复内容开始------------ 实例 针对指定的年份和历法,获取一个月中的天数: <?php$d=cal_days_in_month(CAL_GREGORIAN,1 ...

  4. PHP tmpfile() 函数

    定义和用法 tmpfile() 函数以读写(w+)模式创建一个具有唯一文件名的临时文件. 语法 tmpfile() 提示和注释 注释:临时文件会在文件关闭后(用 fclose())或当脚本结束后自动被 ...

  5. C/C++编程笔记:C语言自增(++)和自减(--)运算符详解,笔记分享

    一个整数类型的变量自身加 1 可以这样写: a = a + 1; 或者 a += 1; 不过,C语言还支持另外一种更加简洁的写法,就是: a++; 或者 ++a; 这种写法叫做自加或自增,意思很明确, ...

  6. 5.29 省选模拟赛 树的染色 dp 最优性优化

    LINK:树的染色 考场上以为这道题要爆蛋了 没想到 推出正解来了. 反正是先写了爆搜的 爆搜最近越写越熟练了 容易想到dp 容易设出状态 f[i][j]表示以i为根的子树内白色的值为j此时黑色的值怎 ...

  7. 使用jsdelivr + GitHub + PicGo搭建免费图床

    前言 之前一直有开通有道云笔记会员,主要是为了会员markdown图片可以在线保存的功能,前一阵子会员到期,考虑这个功能可不可以自己单独实现,从而替代使用有道云会员. 通过网上搜索的方式,查询到了几种 ...

  8. 每日一道 LeetCode (5):最长公共前缀

    前文合集 每日一道 LeetCode 前文合集 代码仓库 GitHub: https://github.com/meteor1993/LeetCode Gitee: https://gitee.com ...

  9. Android Studio--Activity实现跳转功能

    首先,完成一个布局文件,名字就叫做activity_text_view.xml <?xml version="1.0" encoding="utf-8"? ...

  10. mongodb学习这篇你就成功入门了,springboot2.0整合mongodb

    本文演示以window10系统. 一:环境搭建: 1:mongodb下载和安装: http://www.mongodb.org/官网下载压缩包或者exe傻瓜式安装都行. 2:mongodb配置和搭建服 ...