打造vim最简使用IDE
作者:互联网
目录
打造vim最简使用IDE
开发平台:archlinux
必要软件
- sudo pacman -S nodejs #coc.nvim插件运行需要它
- sudo pacman -S bear #第三方库自动补全需要它,aur或archlinuxcn源有
必要插件
- plug 管理vim插件
- nerdtree 目录树
- tagbar 函数目录
- vim-airline 顶部显示vim buff,可知道当前打开的文件
- coc.nvim 自动补全插件
安装plug
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
- 如果遇到Failed connect to raw.githubusercontent.com:443; Connection refused;报错,可以通过以下方法解决:
1.在/etc/hosts最后添加以下内容后再执行即可。
199.232.28.133 raw.githubusercontent.com
配置.vimrc
附在后面
安装vim插件
#vim 打开vim
:PlugInstall 通过plug自动安装插件,安装完退出插件下次打开生效
通过coc.nvim安装插件
#vim 打开vim
:CocInstall coc-clangd 针对C语言家族补全
coc.nvim提供很多语言的插件,根据自己需要安装即可
https://github.com/neoclide/coc.nvim/wiki/Using-coc-extensions
第三方库支持
要支持第三方库需要配置配置文件compile_commands.json.它可自动生成。这里我使用bear来自动生成,生成之前先清除所有编译信息
make clean
bear -- make #会自动生成配置文件,有了它就可以自动补全,运行一次即可,或者添加新库时运行一次,之后直接执行make即可
vim配置文件
" ==============================================================
" 文档说明
" 'n 左侧显示当前目录下目录和文件
" :copen 下边显示编译输出,通常make后产生输出在这里显示
" 't 右侧显示当前打开文件函数列表
" ctrl+ h/j/k/l 快速窗口移动
" 鼠标点击即定位编辑位置,双击可打开/关闭目录,打开文件,函数跳转
" 等
" ctrl + ] 跳转函数
" ctrl + t 回到跳转
" ==============================================================
" 配置leader键,组合快捷键
let mapleader = "'"
" ===============================================================
" 简单配置
" ===============================================================
set nocompatible " 关闭 vi 兼容模式
set number " 显示行号
set expandtab " 将制表符扩展为空格
set tabstop=4 " 设置编辑时制表符占用空格数
set shiftwidth=4 " 设置格式化时制表符占用空格数
set softtabstop=4 " 设置4个空格为制表符
set mouse=a " 可以鼠标点击位置来定位和其他双击操作
" ================================================================
" 保留历史,可以通过ctrl + R 或u来回撤销恢复,记录一直保留,即使vim
" 关闭下次启动一样能撤回
" ===============================================================
"保留修改历史
set undofile "
"设置undo保存位置,undodir文件夹需要手动建立,否则不会保存
set undodir=~/.vim/undodir
" ================================================================
" 设置中文字体,否则部分中文乱码
" ================================================================
" 设置字体 以及中文支持
if has("win32")
set guifont=Inconsolata:h12:cANSI
endif
" 配置多语言环境
if has("multi_byte")
" UTF-8 编码
set encoding=utf-8
set termencoding=utf-8
set formatoptions+=mM
set fencs=utf-8,gbk
if v:lang =~? '^\(zh\)\|\(ja\)\|\(ko\)'
set ambiwidth=double
endif
if has("win32")
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
language messages zh_CN.utf-8
endif
else
echoerr "Sorry, this version of (g)vim was not compiled with +multi_byte"
endif
" 文件打开光标停留在上次退出位置
au BufReadPost * if line("'\"") > 0 | if line("'\"") <= line("$") | exe("norm '\"") | else |exe "norm $"| endif | endif
"================================================================
" 插件管理,自行安装plug插件
"================================================================
filetype plugin indent on " 开启插件
call plug#begin('~/.vim/plugged')
""以下定义要安装的插件
Plug 'scrooloose/nerdtree'
Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'chxuan/tagbar'
Plug 'vim-airline/vim-airline'
call plug#end()
" 按键映射,设置快捷键,这样设置能较快移动界面
" 分屏窗口移动,原来cw指令后再窗口移动,改一下映射,ctrl + 方向直接移动屏幕
nnoremap <c-j> <c-w>j
nnoremap <c-k> <c-w>k
nnoremap <c-h> <c-w>h
nnoremap <c-l> <c-w>l
"================================================================
" nerdtree配置
" 做了一些文件过滤,其他基本可以不修改
"================================================================
" nerdtree ======================================================
nnoremap <silent> <leader>n :NERDTreeToggle<cr>
let g:NERDTreeFileExtensionHighlightFullName = 1
let g:NERDTreeExactMatchHighlightFullName = 1
let g:NERDTreePatternMatchHighlightFullName = 1
let g:NERDTreeHighlightFolders = 1
let g:NERDTreeHighlightFoldersFullName = 1
let g:NERDTreeDirArrowExpandable='▷'
let g:NERDTreeDirArrowCollapsible='▼'
"let g:NERDTreeDirArrowExpandable='▷'
"let g:NERDTreeDirArrowCollapsible='▼'
let NERDTreeIgnore = ['\.o','\.lst','\.hex','\.bin'] "过滤某些文件
" ==============================================================
" tagbar 侧栏现实函数列表
" ==============================================================
let g:tagbar_width = 30
nnoremap <silent> <leader>t :TagbarToggle<cr>
" =============================================================
" buffer显示栏,在顶栏显示各个打开的文件buff
" ============================================================
let g:ariline_theme="luna"
let g:airline#extensions#tabline#enabled=1
let g:airline#extensions#tabline#buffer_nr_show=1
" 设置vim项目配置文件
if filereadable(" ./vimrc")
source ./vimrc
endif
界面以及补全效果
结构体补全和第三方函数补全是完全没有问题。
标签:最简,set,补全,插件,vim,coc,let,IDE 来源: https://blog.csdn.net/skeyzero/article/details/116118983