vim完全配置指南

时间:2021-10-06 17:20:55

linux下的IDE普遍不好用,写代码看代码的活还是交给编辑器的神吧

安装vim

工欲善其事必先利其器,所以我们还是先安装一个vim吧。后续需要从github上面下载插件,所以我们一并将git也安装上

sudo apt-get install vim git

安装vundle

vundle是用于管理vim插件的一个工具,使用它可以很方便地从Github上面下载想要的插件和删除相关插件。
同步vundle.vim到~/.vim/bundle/目录下

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

将下列配置vundle和插件的语句添加到.vimrc文件的最顶部,确保vim在启动的时候优先加载

"""""""""""""""""""""""""""""""""""""""
" VIM PLUGIN MANAGEMENT CONFIGURATION "
"""""""""""""""""""""""""""""""""""""""
set nocompatible " be iMproved, required
filetype off " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'

" All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin indent on " required

以后需要安装的插件可以使用Plugin格式的语法先在.vimrc中添加,然后在vim软件界面使用:PluginInstall安装即可。

状态栏插件 vim-airline

vim-airline是一个窗口状态插件,集成了buffer显示条,可用于替代Minibuf插件。个人非常喜欢,此插件使用了powerline字体,为了更好的显示,需要提前下载。

下载并安装powerline字体

cd ~/Downloads
git clone https://github.com/powerline/fonts.git

选择一个字体拷贝到$HOME/.local/share/fonts/目录下

cd ~/.local/share/fonts/
cp ~/Downloads/fonts-master/Monofur/Monofur\ for\ Powerline.ttf ./

在终端使用fc-cache命令将字体缓存到系统中
在.vimrc文件中加入下列语句以加载指定字号的字体(GVim)

set guifont=Monofur\ for\ Powerline\ 12

重新启动gvim即可看到效果

安装vim-airline

在.vimrc顶部指定区域添加下列语句以添加插件

Plugin 'vim-airline/vim-airline'

在vim软件界面输入:PluginInstall安装此插件
在.vimrc中添加下列配置以启用vim-airline

let g:airline_powerline_fonts = 1
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#left_sep = ' '
let g:airline#extensions#tabline#left_alt_sep = '|'
set laststatus=2

tab状态栏和快捷键设置

在.vimrc中添加下列配置以设置快捷键和状态栏标签

let g:airline#extensions#tabline#buffer_idx_mode = 1
nmap <leader>1 <Plug>AirlineSelectTab1
nmap <leader>2 <Plug>AirlineSelectTab2
nmap <leader>3 <Plug>AirlineSelectTab3
nmap <leader>4 <Plug>AirlineSelectTab4
nmap <leader>5 <Plug>AirlineSelectTab5
nmap <leader>6 <Plug>AirlineSelectTab6
nmap <leader>7 <Plug>AirlineSelectTab7
nmap <leader>8 <Plug>AirlineSelectTab8
nmap <leader>9 <Plug>AirlineSelectTab9
nmap <leader>- <Plug>AirlineSelectPrevTab
nmap <leader>+ <Plug>AirlineSelectNextTab

使用方法:按''+'x'实现状态标签的跳转和切换

为第三方插件添加状态栏显示

在.vimrc中添加下列配置以添加第三方插件的支持

let g:airline#extensions#tagbar#enabled = 1
let g:airline#extensions#syntastic#enabled = 1

目录树插件 NerdTree

在.vimrc顶部指定区域添加下列语句以添加插件

Plugin 'scrooloose/nerdtree'

在vim软件界面输入:PluginInstall安装此插件
在.vimrc中添加下列配置以启用nerdtree

map <C-n> :NERDTreeToggle<CR>
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif

第一行是用于将ctrl+n快捷键映射为打开nerdtree窗口
第二行是保证只是nerdtree窗口时关闭vim

Outline列表 tagbar

在.vimrc顶部指定区域添加下列语句以添加插件

Plugin 'majutsushi/tagbar'

在vim软件界面输入:PluginInstall安装此插件
在.vimrc中添加下列配置以启用tagbar

map <C-b> :TagbarToggle<CR>

超频的ctags cscope

安装cscope

sudo apt-get install cscope

下载键位映射

wget -P ~/.vim/plugin http://cscope.sourceforge.net/cscope_maps.vim

使用方法:

  1. 在工程根目录下使用命令cscope -Rbq生成cscope.out数据库
  2. 在Vim中使用命令cs add cscope.out添加此数据库
  3. 使用快捷方式ctrl+ x调用即可
    所有快捷方式:

    Ctrl-\ and
    c: Find functions calling this function
    d: Find functions called by this function
    e: Find this egrep pattern
    f: Find this file
    g: Find this definition
    i: Find files #including this file
    s: Find this C symbol
    t: Find assignments to

    语法检测神器 Syntastic配置

    在.vimrc顶部指定区域添加下列语句以添加插件

    Plugin 'scrooloose/syntastic'

    在.vimrc中添加下列配置以启用Syntastic

    set statusline+=%#warningmsg#
    set statusline+=%{SyntasticStatuslineFlag()}
    set statusline+=%*
    let g:syntastic_always_populate_loc_list = 1
    let g:syntastic_auto_loc_list = 1
    let g:syntastic_check_on_open = 1
    let g:syntastic_check_on_wq = 0

    使用.syntastic_c_config配置

    阅读一些源代码时,如果不对syntastic进行相关配置,往往由于目录设置的原因,syntastic会报头文件目录不存在的错误。针对c语言我们可以在项目工程根目录下添加.syntastic_c_config文件进行配置
    .syntastic_c_config文件中每条选项独立一行
    示例

    -I/home/sammy/workspace/hostapd-2.5/src
    -I/home/sammy/workspace/hostapd-2.5/src/utils

    内嵌Git diff显示 Gitgutter

    在.vimrc顶部指定区域添加下列语句以添加插件

    Plugin 'airblade/vim-gitgutter'

    在.vimrc中添加下列配置以启用Syntastic

    set updatetime=250
    let g:gitgutter_sign_column_always = 1

    Gvim 简易配置

    使用下面的配置可以很方便地控制Gvim的窗口风格

    if has("gui_running")
    set guioptions-=m " 隐藏菜单栏
    set guioptions-=T " 隐藏工具栏
    set guioptions-=L " 隐藏左侧滚动条
    set guioptions-=r " 隐藏右侧滚动条
    set guioptions-=b " 隐藏底部滚动条
    set showtabline=0 " 隐藏Tab栏
    endif

效果图

vim完全配置指南