1 python模块下载
sudo apt-get install python-dev python-pip python3-dev python3-pip
2 添加仓库并下载
sudo add-apt-repository ppa:neovim-ppa/stable
sudo apt-get update
sudo apt-get install neovim
检查版本:
nvim -v
3 更改域名解析
访问这个网站:https://ipaddress.com/website/raw.githubusercontent.com 出现403就点击Goto Homepage
选择Data项下面的第一个就可以了 复制下来 然后打开/etc/hosts追加下面一行,保存就行 注意可能要使用root身份:sudo nvim /etc/hosts
182.199.105.133 raw.githubusercontent.com
加快git访问速度
安装插件管理器:vim-plug
有了上面一步,就可以快速下载vim-plug了:
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
一般来说会秒下成功,但是如果遇到错误类似errorno104:
curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104
这是因为服务器的SSL证书没有经过第三方机构的签署,所以才报错
git config --global http.sslVerify "false"
VIM-PLUG下载插件
插件下载的NVIM语句的模板是这样的: 这两句之间填充你要下载的插件就可以了
call plug
call plug
但是如果你下载出现了问题,你需要在plug开始声明之后添加这一句才能成功访问到github:
let g:plug_url_format='git@github.com:%s.git'
好了现在你可以放肆的往其中插入plug声明了,想要什么只要按格式:
plug ' xxxxxx'
记录下来就可以了,最后保存,再执行:PlugInstall 即可出现下载插件的分屏界面 放心吧,应该没有问题了,vim-plug支持多线程下载的,比vundle快很多倍
插件推荐以及配置
NERDTree 文件树
实现文件目录功能 下载: Plug 'scrooloose/nerdtree' 配置文件追加:let g:NERDTreeWinSize=20
Airline 状态栏
下载:‘Vim-airline/vim-airline’ 配置文件追加:
" 配置 vim-airline 标签栏插件
let g:airline
Coc.vim 代码补全与检测
可以自行学习
Ranger 文件浏览器
下载:Plug 'kevinhwang91/rnvimr' 配置文件追加:
let g:rnvimr_ex_enable = 1
nnoremap <silent> <M-o> : RnvimrToggle<CR>
nnoremap <M-+> :bp<CR>
nnoremap <M--> :bn<CR>
snazzy 主题
"nazzy 主题插件
colorscheme snazzy
let g:SnazzyTransparent = 1
indentLine 缩进显示
暂时没有使用
ctags cscope 阅读代码的函数跳转和查找
ctags
安装:
sudo apt-get install exuberant-ctags
cscope
使用命令: cscope find [option] [filename] 其中 option: 0或者s —— 查找这个C符号 1或者g —— 查找这个定义 2或者d —— 查找被这个函数调用的函数(们) 3或者c —— 查找调用这个函数的函数(们) 4或者t —— 查找这个字符串 6或者e —— 查找这个egrep匹配模式 7或者f —— 查找这个文件 8或者i —— 查找#include这个文件的文件(们)
nmap zs :cs find s =expand(“”) nmap zg :cs find g =expand(“”) nmap zc :cs find c =expand(“”) nmap zt :cs find t =expand(“”) nmap ze :cs find e =expand(“”) nmap zf :cs find f =expand(“”) nmap zi :cs find i =expand(“”) nmap zd :cs find d =expand(“”)
NerdCommenter
下载 Plug 'scrooloose/nerdcommenter' 快速注释 配置leader:let mapleader = ","
使用:
,ca 在可选的注释方式之间切换,比如C/C++ 的块注释/* */和行注释//
,cc 注释当前行
,c 切换注释/非注释状态
,cs 以”性感”的方式注释
,cA 在当前行尾添加注释符,并进入Insert模式
,cu 取消注释
配置init.vim基本设置
找一篇经典的复制粘贴上去就行,都差不多。 建议将jj映射为esc 为上面的插件的使用映射一些快捷键,方便使用
Tips
不管是本地开发还是远程登陆服务器开发 都建议使用原生CMD和Windows Terminal,不要使用Fluent Terminal,会让NVIM变得很卡,亲身经历 VIM还得是自己养出来的配置文件才用着舒心,对于VIM的语法也应该在平时多积累一点。
我的配置
set nu
let mapleader = ","
" 插件安装
call plug#begin('~/.config/nvim/plugged')
let g:plug_url_format='git@github.com:%s.git'
Plug 'scrooloose/nerdtree' , {'on':'NERDTreeToggle'}
Plug 'ervandew/supertab'
Plug 'scrooloose/nerdcommenter'
" Coc 智能补全插件引擎
Plug 'neoclide/coc.nvim', {'branch': 'release'}
"标签栏插件
Plug 'Vim-airline/vim-airline'
Plug 'kevinhwang91/rnvimr'
Plug 'mhinz/vim-startify'
Plug 'connorholyday/vim-snazzy'
" markdown 预览插件
Plug 'iamcco/markdown-preview.nvim'
" gtags
Plug 'jsfaint/gen_tags.vim'
call plug#end()
" 配置 Nerdtree 的窗口宽度默认值
let g:NERDTreeWinSize=20
" 配置 vim-airline 标签栏插件
let g:airline#extensions#tabline#enabled = 1
let g:gen_tags#gtags_default_map = 1
let g:airline#extensions#gen_tags#enabled = 1
" 配置 ranger 文件浏览器插件
let g:rnvimr_ex_enable = 1
" " Alt+o 打开 ranger
nnoremap <silent> <M-o> :RnvimrToggle<CR>
"Alt+加号 切换至下一个标签,减号则是切换回上一个
nnoremap <M-+> :bp<CR>
nnoremap <M--> :bn<CR>
"nazzy 主题插件
colorscheme snazzy
let g:SnazzyTransparent = 1
set nowrap "不自动折行
set showmatch "光标遇到括号高亮另一半
set cc=80 "标尺线
set encoding=utf-8
set fenc=utf-8 "编码
set mouse=a "支持鼠标
set tabstop=2 "Tab = 4空格
set expandtab "Tab 转空格
set cursorline "光标所在行高亮
set scrolloff=5 "垂直滚动时光标距离底部的行数
set hlsearch "搜索时高亮匹配结果
set foldmethod=indent "代码折叠
set foldcolumn=0 "折叠宽度
setlocal foldlevel=14159 "折叠层数
set foldlevelstart=99 "打开文件默认不折叠代码
set paste "设置粘贴模式
filetype plugin indent on "文件类型检测
syntax on "语法高亮
nnoremap <leader>gt :!find -name "*.c" -o -name "*.cpp" -o -name "*.h" -o -name "*.hpp" > FileList.txt && ctags -L -< FileList.txt && cscope -bkq -i FileList.txt <CR>
inoremap jk <ESC>
if has("cscope")
set csto=0
set nocsverb
" add any database in current directory
if filereadable("cscope.out")
cs add cscope.out
endif
set csverb
"set cst 这两句会将cscope当作tag,当找不到时会卡住,因此注释掉
"set cscopetag
endif
" Cscope map mode 1
nmap zs :cs find s <C-R>=expand("<cword>")<CR><CR>
nmap zg :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap zc :cs find c <C-R>=expand("<cword>")<CR><CR>
nmap zt :cs find t <C-R>=expand("<cword>")<CR><CR>
nmap ze :cs find e <C-R>=expand("<cword>")<CR><CR>
nmap zf :cs find f <C-R>=expand("<cfile>")<CR><CR>
nmap zi :cs find i <C-R>=expand("<cfile>")<CR><CR>
nmap zd :cs find d <C-R>=expand("<cword>")<CR><CR>
" Cscope map mode 2
nmap <C-\>s :cs find s <C-R>=expand("<cword>")<CR><CR>
nmap <C-\>g :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap <C-\>c :cs find c <C-R>=expand("<cword>")<CR><CR>
nmap <C-\>t :cs find t <C-R>=expand("<cword>")<CR><CR>
nmap <C-\>e :cs find e <C-R>=expand("<cword>")<CR><CR>
nmap <C-\>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
nmap <C-\>i :cs find i <C-R>=expand("<cfile>")<CR><CR>
nmap <C-\>d :cs find d <C-R>=expand("<cword>")<CR><CR>
nnoremap <C-n> :NERDTreeToggle<CR>
nnoremap <C-f> :NERDTreeFind<CR>
let g:gen_tags
let g:gen_tags
|