vim学习笔记
本文介绍如何配置 vim,搭建一个简易的 c/c++编码环境,主要配置:树形目录文件查看、代码格式化、代码自动补全、括号配对
安装 vim(要求 8.0 以上)
sudo apt install vim -y
# 安装vim vim
# 查看vim版本
# 其它安装
# 安装git:vimplug插件执行的时候需要git
# unzip:解压zip包用
sudo apt install git unzip -y
插件安装
因为 git 拉取网速很慢,我安装插件都是用离线的方法安装的,就是先下载 github 仓库的 zip 包下来,然后自己解压放到指定的文件夹就可以了,这样压缩包可以反复使用。下面的所有插件都是基于 vim-plug 插件来管理的,用 vim-plug 插件管理其它插件。
安装 vim-plug:插件管理器(必备)
github 地址:https://github.com/junegunn/vim-plug
安装方式:下载 vim-plug 仓库下的plug.vim
文件放到~/.vim/autoload/
目录下,就安装成功了。
nerdtree:树形目录插件
github 地址:https://github.com/preservim/nerdtree
安装方式:下载 nerdtree 插件的 github 仓库源码,解压放到~/.vim/
目录下,然后修改 vimrc 配置文件
call plug#begin() "vimplug插件开始
Plug '~/.vim/nerdtree-master' "主要添加这一行,路径就是刚才解压的路径
call plug#end() "vimplug插件结束
" nerdtree插件的快捷键设置,按ctrl n就可以显示、隐藏目录
map <C-n> :NERDTreeToggle<CR>
vim-autoformat:代码格式化插件
github 地址:https://github.com/vim-autoformat/vim-autoformat
安装方式:下载 vim-autoformat 插件的 github 仓库源码,解压放到~/.vim/
目录下,然后修改 vimrc 配置文件,主要在 vimplug 插件的内部添加解压好的路径,在外部添加快捷键设置
call plug#begin()
Plug '~/.vim/vim-autoformat-master' "主要添加这一行,路径就是刚才解压的路径
call plug#end()
" Autoformat插件的快捷键设置,按F3自动格式化
noremap <F3> :Autoformat<CR>
" Autoformat插件设置,保存时自动格式化
au BufWrite \* :Autoformat
修改 vimrc 配置完成之后,还要安装 clang-format,不然代码格式化插件没法工作
# 安装clang
sudo apt install clang clang-format -y
# 生成.clang-format文件
clang-format -style=LLVM -dump-config > .clang-format
安装完 clang-format,并且生成 clang-format 文件之后,vim 的代码格式化插件才可以正常工作
另:单独使用 clang-format 命令去格式化代码,语法如下
clang-format 源代码.c -style=llvm
# -style指定要用什么样式去格式化代码
# 可选项有:GNU、LLVM、 Google、Chromium、 Mozilla、WebKit.
# 我一般用LLVM
coc.vim:代码自动补全插件
coc.vim
基于 nodejs,所以需要安装 nodejs,这里使用绿色版方式安装 nodejs(即:解压文件、添加到环境变量)
注意,解压文件,添加到环境变量这种方式安装 nodejs,在 ubuntu server 上似乎没有效果,在 desktop 版本下可以正常使用,server 版本可以用 apt 方式安装 nodejs
coc.vim
相当于另一个插件管理,安装完之后,要用coc.vim
去安装自动补全插件,比如 clangd 之类的。
这里的逻辑是:先安装 vim-plug 插件,用
vim-plug
插件安装coc.vim
,然后用coc.vim
安装各种代码自动补全的功能。
安装代码补全、括号配对等插件步骤:
- 安装 nodejs
- 安装 coc.vim
- 安装代码补全、括号配对等功能
前面两个步骤只需执行一次,之后需要安装什么功能,只需要用 coc.vim 去安装就可以了。
- 1.安装 nodejs
nodejs 压缩包下载:https://nodejs.org/dist/
我目前使用 18.13.0 版本
# 创建一个目录,存放解压的文件
mkdir -p ~/programs/
# 解压文件到该目录
tar xvf node-v18.13.0-linux-x64.tar.xz -C ~/programs/
# 添加bin路径到环境变量
sudo ln -s /home/${USER}/programs/node-v18.13.0-linux-x64/bin/npm /usr/local/bin/npm
sudo ln -s /home/${USER}/programs/node-v18.13.0-linux-x64/bin/node /usr/local/bin/node
# 这里也可以使用apt安装nodejs,只不过不好指定版本
# sudo apt install node npm -y
# 切换为淘宝镜像
npm config set registry https://registry.npm.taobao.org
# 安装yarn,可不装
# npm install -g yarn
- 2.安装 coc.vim 插件
github:https://github.com/neoclide/coc.nvim
安装方式:下载源码压缩包,解压到~/.vim/
目录下
# 安装coc.vim,即解压到.vim目录下即可
unzip coc.nvim-0.0.82.zip -d ~/.vim/
然后修改 vimrc 配置文件
call plug#begin()
Plug '~/.vim/coc.nvim-0.0.82' " 添加插件路径
call plug#end()
" coc.vim插件配置
" utf-8
set encoding=utf-8
" 不自动备份,某些服务器的备份文件有问题
set nobackup
set nowritebackup
" 代码补全更新时间,毫秒
set updatetime=300
" 始终显示符号列,否则每次都会移动文本
set signcolumn=yes
" tab键补全
inoremap <silent><expr> <TAB>
\ coc#pum#visible() ? coc#pum#next(1) :
\ CheckBackspace() ? "\<Tab>" :
\ coc#refresh()
inoremap <expr><S-TAB> coc#pum#visible() ? coc#pum#prev(1) : "\<C-h>"
" 回车键补全
inoremap <silent><expr> <CR> coc#pum#visible() ? coc#pum#confirm()
\: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"
function! CheckBackspace() abort
let col = col('.') - 1
return !col || getline('.')[col - 1] =~# '\s'
endfunction
" 按住光标时高亮显示符号及其引用
autocmd CursorHold * silent call CocActionAsync('highlight')
- 3.安装代码补全、括号自动配对等功能
# 1.安装 C/C++/Objective-C扩展,vim下输入
# 在vim的命令模式下输入以下代码,
:CocInstall coc-clangd # 代码补全
:CocInstall coc-pairs # 括号自动配对
安装 clangd 代码补全依赖(代码补全必备)
sudo apt install clangd -y
其它 vimrc 配置
" 其它设置
" 开启行号显示
set nu
" 语法高亮
syntax on
" 自动缩进
set autoindent
" 调整tab键宽度
set tabstop=4
shell 脚本一键安装
把压缩包和 shell 脚本放到同一个目录下,执行以下脚本
#!/bin/bash
# 安装vimplug插件管理器
mkdir -p ~/.vim/autoload/
unzip vim-plug-master.zip -d ~/Downloads/
cp ~/Downloads/vim-plug-master/plug.vim ~/.vim/autoload/
# 清理解压的垃圾文件
rm -r ~/Downloads/vim-plug-master/
# 安装插件
# nertree插件:树形目录插件,配置ctrl+n快捷键调用
unzip nerdtree-master.zip -d ~/.vim/
# vim-autoformat:自动格式化插件,配置 F3 快捷键调用,保存时自动调用
unzip vim-autoformat-master.zip -d ~/.vim
# 安装clang-formater,自动格式化插件需要
sudo apt install clang clang-format -y
# 生成.clang-format文件
clang-format -style=LLVM -dump-config > .clang-format
然后手动修改 vimrc 配置,代码补全插件还是手动安装吧。