neovim配置文件夹
mkdir ~/.config/nvim
nvim ~/.config/nvim/init.vim
其余配置类似vim。
neovim在linux下的配置:
- 建议首先将linux内核版本更新,不然很多插件版本不够.
- vim在linux下配置依靠/etc/vim目录中的vimrc,命令是:
sudo nvim ~/config/nvim/init.vim
- 这种配置是在根目录下的进入方式,另外一种方式是在home文件中的个人账户中进行配置,这种配置方式会覆盖之前的配置文件.
cd ~ //进入home/xxxx/目录
nvim ~/config/nvim/init.vim //创建配置文件
vim-plug配置
==vim-plug
是一个安装管理器,用来管理vim中的插件安装.==相较于vundle
,它现在是仍然维护的.
- vim-plug安装地址,根据提示选择
vim linux
的即可. - 使用
vimplug
配置管理vim,但同时需要安装git
和curl
,安装的命令是:
sudo apt-get install git
sudo apt-get install curl
- 安装完成之后,可以进入配置文件:
nvim ~/.config/nvim/init.vim
- 在末尾添加:
call plug#begin()
call plug#end()
- 然后将需要的插件放入这两个中间即可.
- 它的安装命令是在vim命令行中输入
PlugInstall
.
插件安装网站
- 插件的安装在vimawesome之中,直接打开网址搜索需要的插件,在插件中选择vim-plug进行安装,将插件放入上段代码之中即可,(先进行保存退出之后再进行安装)至于安装的命令,是使用
PlugInstall
,这个在vimplug里面有相关的说明.
安装coc.nvim
- 相较于令人头疼的youcompleteme,更好用的插件显然是coc.nvim
nvim懒人配置 - 使用coc.nvim
- 使用配置
coc.nvim配置
coc.nvim的基本命令
:CocInstall **
:CocUninstall **
Coc扩展安装:
:CocInstall coc-json
Coc现存扩展
:CocList extensions
- 在这个命令之中可以使用<“Tab”>来查看其他内敛命令
- *代表插件已经启用,+号代表插件存在但是未启动
CocCommand
- coc本身插件的指令
Coc扩展商店
:CocList marketplace
- 使用jk或者上下来进行勾选。直接输入关键字来进行搜索。然后使用回车进行安装
Coc扩展帮助
:h 插件名称
- 查看是否有某函数
:echo exists('*complete_info')
通过在neovim中init.vim预留位置来配置coc.nvim
- 对照官方文档,在nvim中使用下面的一些配置,不要直接复制粘贴
"设置缓存,因为vim不允许在保存之前进行跳转,所以设置缓存之后,coc可以帮助你跳转函数声明等。
set hidden
"设置响应时间,让vim更快
set updatetime=100
"设置行号共用
set signcolumn=number
"设置少输出无用信息
set shortmess+=c
"设置tab键补全和shift——tab进行关闭terminal
inoremap <silent><expr> <TAB>
\ pumvisible() ? "\<C-n>" :
\ <SID>check_back_space() ? "\TAB" :
\ coc#refresh()
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
function! s:check_back_space() abort
let col = col('.') - 1
return !col || getline('.')[col - 1] =~# '\s'
endfunction
"设置ctrl+o调出补全
inoremap <silent><expr> <c-o> coc#refresh()
coc-settings.json配置coc自己的参数
- 作用和coc插件类似,打开方式:
The user configuration is named as coc-settings.json and placed inside
the folder $XDG_CONFIG_HOME/nvim or $HOME/.config/nvim by default (or
$HOME/.vim for vim). Run the command :CocConfig to open your user
configuration file.
- 即打开方式为:
nvim ~/.config/nvim/coc-setting.json
- 或者
:CocConfig
- 在这个文件夹中配置了自动更新每天检查,回车补全扩展
{
"clangd.path": "~/.config/coc/extensions/coc-clangd-data/install/15.0.3/clangd_15.0.3/bin/clangd",
"coc.preferences.extensionUpdateCheck":"daily",
"suggest.noselect": true,
"suggest.enablePreselect":false
}
获得进度完成插件
- 安装vim-dart(平台优化开发框架)
- 安装coc-flutter,安装了也用不上。
coc-snippets可以添加自定义的补全
- 最后的结果是:ctrl+l显示tab补全,回车进行补全,检查错误使用的是[g和]g,使用gd进行关键字搜索,\h进行相关文档介绍。,重命名函数使用关键字\r。
- 最后是重新安装了NerdTree,使用的快捷键是F4
- 目前的配置
let g:loaded_perl_provider = 0
"use the jsonc as configure file for coc.nvim
autocmd FileType json syntax match Comment +\/\/.\+$+
"##########################################################
"##########################################################
call plug#begin()
"use the dart skim
Plug 'dart-lang/dart-vim-plugin'
"use the vim-snippets
Plug 'honza/vim-snippets'
"use the complete"[,(,{" and delete double
Plug 'jiangmiao/auto-pairs'
"use the theme tools
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
"use the theme tools
Plug 'morhetz/gruvbox'
"use the completion tools
Plug 'neoclide/coc.nvim', {'branch': 'release'}
"use NerdTree
Plug 'preservim/nerdtree'
call plug#end()
"##########################################################
"use the theme
set bg=light
" colorscheme one
autocmd vimenter * ++nested colorscheme gruvbox
"###########################################################
"use vim-airline_theme
set laststatus=2 "永远显示状态栏
let g:airline_powerline_fonts = 1 " 支持 powerline 字体
let g:airline_solarized_bg='light'
" solarized light,other theme are in Screenshots,first
" use the :ArilineTheme solarized
if !exists('g:airline_symbols')
let g:airline_symbols = {}
endif
let g:airline_left_sep = '▶'
let g:airline_left_alt_sep = '❯'
let g:airline_right_sep = '◀'
let g:airline_right_alt_sep = '❮'
let g:airline_symbols.linenr = '¶'
let g:airline_symbols.branch = '⎇'
"###########################################################
"-------------------------------------------------------
"##########################################################
"use the auto-pairs
au Filetype FILETYPE let b:AutoPairs = {"(": ")"}
au FileType php let b:AutoPairs = AutoPairsDefine({'<?' : '?>', '<?php': '?>'})
"###########################################################
"
"use NerdTree
map <F4> :NERDTreeToggle<CR>
"###########################################################
"coc.nvim
"coc-vimlsp is a tool to use in vim,not_like
"other language
let g:coc_global_extensions = [
\'coc-rust-analyzer',
\'coc-rome',
\'coc-python',
\'coc-clangd',
\'coc-marketplace',
\'coc-vimlsp',
\'coc-json']
"set cache
set hidden
"set updatetime
set updatetime=100
"set merge signcolumn
set signcolumn=number
"set don't pass message to |ins-completion-menu|
set shortmess+=c
"set tab can do the completion
inoremap <silent><expr> <TAB>
\ pumvisible() ? "\<C-n>" :
\ <SID>check_back_space() ? "\TAB" :
\ coc#refresh()
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
function! s:check_back_space() abort
let col = col('.') - 1
return !col || getline('.')[col - 1] =~# '\s'
endfunction
"set trigger can open the completion,only use in insert
inoremap <silent><expr> <c-l> coc#refresh()
"set enter to complete the completion
inoremap <expr> <cr> complete_info()["selected"] != "-1" ? "\<C-y>" :"\<C-g>u\<CR>"
"use "g[" and "]g"check the error of code
nmap <silent> [g <Plug>(coc-diagnostic-prev)
nmap <silent> ]g <Plug>(coc-diagnostic-next)
" GoTo code navigation.use gd to navigate and use ctrl+o back
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)
"use "\"+h to find the document of functions
nnoremap <silent> <LEADER>h :call <SID>show_documentation()<CR>
"use rename fuction
nmap <leader>r <Plug>(coc-rename)
- coc-setting.json
{
"clangd.path": "~/.config/coc/extensions/coc-clangd-data/install/15.0.3/clangd_15.0.3/bin/clangd",
"coc.preferences.extensionUpdateCheck": "daily",
"suggest.noselect": true,
"suggest.enablePreselect": false,
"codeLens.enable": true,
"coc.preferences.formatOnSaveFiletypes": [
"json",
"rust-analyzer",
"rust",
"clangd"
],
"suggest.completionItemKindLabels": {
"class": "\uf0e8",
"color": "\ue22b",
"constant": "\uf8fe",
"default": "\uf29c",
"enum": "\uf435",
"enumMember": "\uf02b",
"event": "\ufacd",
"field": "\uf93d",
"file": "\uf723",
"folder": "\uf115",
"function": "\u0192",
"interface": "\uf417",
"keyword": "\uf1de",
"method": "\uf6a6",
"module": "\uf40d",
"operator": "\uf915",
"property": "\ue624",
"reference": "\ufa46",
"snippet": "\ue60b",
"struct": "\ufb44",
"text": "\ue612",
"typeParameter": "\uf728",
"unit": "\uf475",
"value": "\uf89f",
"variable": "\ue71b"
},
"diagnostic.errorSign": "\uf467",
"diagnostic.warningSign": "\uf071",
"diagnostic.infoSign": "\uf129",
"diagnostic.hintSign": "\uf864",
"diagnostic.displayByAle": false,
"diagnostic.refreshOnInsertMode": false,
"diagnostic.checkCurrentLine": true,
"diagnostic.virtualTextPrefix": " ❯❯❯ ",
"diagnostic.virtualText": true
}