【Linux】Vim 设置
零、起因
刚学Linux,有时候会重装Linux系统,然后默认的vi
不太好用,需要进行一些设置,本文简述如何配置一个好用的Vim。
壹、软件安装
sudo apt-get install vim
贰、配置路径
对所有用户生效:
sudo vi /etc/vim/vimrc
对当前用户生效:
vi ~/.vimrc
查看配置位置:
打开vim,输入:version
叁、常用配置
vim-script">" 显示行号
set number" 显示光标行横线
set cursorline" 高亮打开
syntax on" 打开文件检测
filetype on" 设置 tab 键的宽度为 4 个空格
set tabstop=4" 设置当输入 tab 时,实际插入的空格数为 4
set shiftwidth=4" 将 tab 转换为空格
set expandtab" (可选)设置自动缩进时使用空格而不是 tab
set softtabstop=4" 设置自动缩进
set autoindent" 设置使用 c/c++ 语言的自动缩进方式
set cindent
肆、C/C++代码自动补全
注意:此操作对Vim版本要求较高(Vim 9.1.0016+),请先确认版本是否支持!
YouCompleteMe 是一个功能强大的语义级代码补全插件,支持 C/C++ 的智能提示和跳转。下文介绍 YouCompleteMe 如何配置。
安装依赖
基础工具链
sudo apt install g++ gcc cmake git python3-dev clangd
Vim 插件管理器 Vundle
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
vimrc_65">配置 .vimrc
添加以下内容到 ~/.vimrc
:
vim-script">" Vundle 插件配置
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'Valloric/YouCompleteMe' " 自动补全插件
Plugin 'scrooloose/nerdtree' " 可选:文件树插件
Plugin 'yianwillis/vimcdoc' " 中文文档插件
call vundle#end()" YCM 自动补全配置
let g:ycm_global_ycm_extra_conf = '~/.vim/.ycm_extra_conf.py'
let g:ycm_clangd_binary_path = 'clangd' " 需安装 clangd
let g:ycm_auto_trigger = 1 " 自动触发补全
let g:ycm_key_list_select_completion = ['<Tab>', '<Down>']
let g:ycm_key_list_previous_completion = ['<S-Tab>', '<Up>']
安装 YCM
在 Vim 中执行插件安装命令(VIM会显示正在处理插件,等处理完再退出):
vim-script">:PluginInstall
安装完成后,进入 YCM 目录编译:
cd ~/.vim/bundle/YouCompleteMe
python3 install.py --clangd-completer
代码补全
C项目中,若项目比较复杂,需要生成compile_commands.json
文件便于YCM处理,对于Make项目,可以使用bear来辅助生成。
安装bear
sudo apt install bear
生成compile_commands.json
在make项目目录下执行:
bear -- make
完成
再次使用vi
打开C文件时,有提示了。