安装Neovim

  1. su - root
  2. tar xvf nvim-linux64.tar.gz
  3. mv nvim-linux64 /usr/local/
  4. cd /bin
  5. ln -s /usr/local/nvim-linux64/bin/nvim nvim
  6. pip3 install --user --upgrade pynvim
  7. curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
  8. sudo yum install nodejs

安装插件管理器

# github克隆代码
https://github.com/junegunn/vim-plug

# 将得到的vim-plug.vim复制到 ~/.local/share/nvim/site/autoload/plug.vim

# 设置文件格式fileformat=unix

# 创建配置文件
mkdir -p ~/.config/nvim/
nvim ~/.config/nvim/init.vim

#设置文件格式fileformat=unix

创建配置文件

~/.config/nvim/init.vim

参考链接 链接

set nu  " 显示行号  
" 插件列表    
" 插件加载目录 .config/nvim/plugged ,也可以是.vim/plugged 随便都可以, 以后太会下载到这个目录,启动vim也会加载这里的插件
" 开始语句    
call plug#begin('~/.config/nvim/plugged')  

" 这是coc.nvim 插件
Plug 'neoclide/coc.nvim', {'branch': 'release'}   

"Golang 
Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }    

"Theme
Plug 'vim-airline/vim-airline'
"彩色括号
Plug 'luochen1990/rainbow' 

"Shell
Plug 'shougo/vimshell.vim' 
Plug 'powerline/powerline'
Plug 'vim-scripts/bash-support.vim' 

"Python
Plug 'davidhalter/jedi-vim' 
Plug 'nvie/vim-flake8'
Plug 'sirver/ultisnips' 

"Markdown 必要插件,安装在vim-markdown前面
Plug 'godlygeek/tabular' 
Plug 'plasticboy/vim-markdown'
"markdown预览
Plug 'plasticboy/markdown-syntax' 
" 结束语句
call plug#end() 


" coc.nvim settings
" ---

let g:coc_global_extensions = ['coc-snippets', 'coc-python', 'coc-json']

inoremap <silent><expr> <TAB>
      \ pumvisible() ? coc#_select_confirm() :
      \ coc#expandableOrJumpable() ? "\<C-r>=coc#rpc#request('doKeymap', ['snippets-expand-jump',''])\<CR>" :
      \ <SID>check_back_space() ? "\<TAB>" :
      \ coc#refresh()

inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"

function! s:check_back_space() abort
    let col = col('.') - 1
    return ! col || getline('.')[col - 1] =~? '\s'
endfunction

augroup user_plugin_coc
    autocmd!
    autocmd CompleteDone * if pumvisible() == 0 | pclose | endif
augroup END

" use <c-space>for trigger completion
inoremap <silent><expr> <C-space> coc#refresh()

" Movement within 'ins-completion-menu'
imap <expr><C-j>   pumvisible() ? "\<Down>" : "\<C-j>"
imap <expr><C-k>   pumvisible() ? "\<Up>" : "\<C-k>"

" Scroll pages in menu
inoremap <expr><C-f> pumvisible() ? "\<PageDown>" : "\<Right>"
inoremap <expr><C-b> pumvisible() ? "\<PageUp>" : "\<Left>"
imap     <expr><C-d> pumvisible() ? "\<PageDown>" : "\<C-d>"
imap     <expr><C-u> pumvisible() ? "\<PageUp>" : "\<C-u>"

" Use `[c` and `]c` to navigate diagnostics
nmap <silent> [c <Plug>(coc-diagnostic-prev)
nmap <silent> ]c <Plug>(coc-diagnostic-next)

" Remap keys for gotos
nmap <silent> gd <Plug>(coc-definition)
nmap <silent> gy <Plug>(coc-type-definition)
nmap <silent> gi <Plug>(coc-implementation)
nmap <silent> gr <Plug>(coc-references)
nmap <Leader>p <Plug>(coc-format)

nmap gs <Plug>(coc-git-chunkinfo)
nmap [g <Plug>(coc-git-prevchunk)
nmap ]g <Plug>(coc-git-nextchunk)
" show commit contains current position
nmap gC <Plug>(coc-git-commit)

" Use K to show documentation in preview window
nnoremap <silent> K :call <SID>show_documentation()<CR>

function! s:show_documentation()
    if (index(['vim', 'help'], &filetype) >= 0)
        execute 'h '.expand('<cword>')
    else
        let l:found = CocAction('doHover')
    endif
endfunction
" Specify a directory for plugins
" - For Neovim: stdpath('data') . '/plugged'
" - Avoid using standard Vim directory names like 'plugin'
call plug#begin('~/.config/nvim/plugged')

" Make sure you use single quotes

" Shorthand notation; fetches https://github.com/junegunn/vim-easy-align
Plug 'junegunn/vim-easy-align'

" Any valid git URL is allowed
Plug 'https://github.com/junegunn/vim-github-dashboard.git'

" Multiple Plug commands can be written in a single line using | separators
Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets'

" On-demand loading
Plug 'scrooloose/nerdtree', { 'on':  'NERDTreeToggle' }
Plug 'tpope/vim-fireplace', { 'for': 'clojure' }

" Using a non-default branch
Plug 'rdnetto/YCM-Generator', { 'branch': 'stable' }

" Using a tagged release; wildcard allowed (requires git 1.9.2 or above)
Plug 'fatih/vim-go', { 'tag': '*' }

" Plugin options
Plug 'nsf/gocode', { 'tag': 'v.20150303', 'rtp': 'vim' }

" Plugin outside ~/.vim/plugged with post-update hook
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }

" Unmanaged plugin (manually installed and updated)
Plug '~/my-prototype-plugin'

Plug 'neoclide/coc.nvim'

Plug 'shougo/vimshell.vim'

Plug 'tpope/vim-surround'

Plug 'vim-airline/vim-airline'

Plug 'sirver/ultisnips'

Plug 'stephpy/vim-yaml'

Plug 'ekalinin/dockerfile.vim'

Plug 'docker/docker'

Plug 'neoclide/coc-tabnine'

Plug 'zxqfl/tabnine-vim'

Plug 'scrooloose/nerdtree'

Plug 'yggdroot/indentline'

Plug 'vim-airline/vim-airline-themes'

Plug 'joshdick/onedark.vim'

Plug 'thanethomson/vim-jenkinsfile'

Plug 'burnettk/vim-jenkins'

Plug 'luochen1990/rainbow'

Plug 'joshdick/onedark.vim'

Plug 'vim-scripts/bash-support.vim'



" Initialize plugin system
call plug#end()
" 彩色括号
let g:rainbow_active = 1 "set to 0 if you want to enable it later via :RainbowToggle

let g:lightline = {
  \ 'colorscheme': 'onedark',
  \ }