neovim在linux下配置

neovim配置文件夹

一个现代化成品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,但同时需要安装gitcurl,安装的命令是:
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


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
}

获得进度完成插件


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
}

关于NerdCommenter

可以看这篇文章
NEOVIM键位映射

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值