其他分享
首页 > 其他分享> > 打造vim最简使用IDE

打造vim最简使用IDE

作者:互联网

目录

打造vim最简使用IDE

开发平台:archlinux

必要软件

必要插件

安装plug

配置.vimrc

安装vim插件

通过coc.nvim安装插件

第三方库支持  

vim配置文件

界面以及补全效果


打造vim最简使用IDE


开发平台:archlinux

必要软件

  1. sudo pacman -S nodejs     #coc.nvim插件运行需要它
  2. sudo pacman -S bear        #第三方库自动补全需要它,aur或archlinuxcn源有

必要插件

  1. plug                                管理vim插件   
  2. nerdtree                         目录树
  3. tagbar                            函数目录
  4. vim-airline                      顶部显示vim buff,可知道当前打开的文件
  5. 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