一、安装Vunble

Vunble是一个vim插件管理器,可以通过它安装各类插件

需要安装依赖软件:gitsudo apt install git

使用git从github上下载Vundle放到vim的bundle路径下:

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

在.vimrc中添加配置

"插件管理Vundle
 filetype plugin indent on
 set rtp+=~/.vim/bundle/Vundle.vim
 call vundle#begin()
 Plugin ‘gmarik/Vundle.vim’
 call vundle#end()

运行vim,在命令模式下输入:PluginInstall

此时插件管理Vunble已经安装完成,若想安装其他插件,只需在call vundle#begin()与call vundle#end()中间写入安装的插件,并运行vim命令模式下输入PluginInstall即可。

二、 NERDTree

此插件为目录树

在vunble配置中添加:

Plugin 'scrooloose/nerdtree'

运行vim,在命令模式下输入:PluginInstall 等待NERDTree安装完成

给插件NERDTree配置快捷键,在 .vimrc 文件中,添加以下内容

"F3打开 q退出
"NERDTree config

map <F3> :NERDTreeToggle<CR>

"close vim if the only window left open is a NERDTree
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif

用vim打开一个文件之后,按下 <F3> 即可打开目录,按下q退出

三、Ctags

Ctags工具是用来遍历源代码文件生成tags文件,这些tags文件能被编辑器或其它工具用来快速查找定位源代码中的符号(tag/symbol),如变量名,函数名等。

安装指令:sudo apt-get install ctags

四、Taglist

效果图如下:

在容器内安装vim vim 安装插件_linux


下载路径:https://sourceforge.net/projects/vim-taglist/

将文件里面的内容解压到 ~/.vim 目录下,此时在 ~/.vim 目录下会多出plugin、doc.

打开配置文件~/.vimrc,加入以下几行

let Tlist_Ctags_Cmd="/usr/bin/ctags" "将taglist与ctags关联 
let Tlist_Show_One_File=1     "不同时显示多个文件的tag,只显示当前文件的    
let Tlist_Exit_OnlyWindow=1   "如果taglist窗口是最后一个窗口,则退出vim   
let Tlist_Use_Right_Window = 1 "在右侧窗口中显示taglist窗口
map <F9> :TlistToggle<CR> "按下F9打开Tlist窗口或关闭
noremap <F6> :!ctags -R . <CR>

五、美化状态栏

先看效果图

在容器内安装vim vim 安装插件_git_02

在容器内安装vim vim 安装插件_在容器内安装vim_03


在容器内安装vim vim 安装插件_快捷键_04


Github 地址链接如下:vim-ariline

使用 vunbld 安装指令

Plugin 'vim-airline/vim-airline'
Plugin 'vim-airline/vim-airline-themes'

在命令模式下依次执行:

source ~/.vimrc
PluginInstall

在.vimrc中添加配置:

let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#left_alt_sep = '|'
let g:airline#extensions#tabline#buffer_nr_show = 0
let g:airline#extensions#tabline#formatter = 'default'
let g:airline_theme = 'desertink'  " 主题
let g:airline#extensions#keymap#enabled = 1
let g:airline#extensions#tabline#buffer_idx_mode = 1
let g:airline#extensions#tabline#buffer_idx_format = {
       \ '0': '0 ',
       \ '1': '1 ',
       \ '2': '2 ',
       \ '3': '3 ',
       \ '4': '4 ',
       \ '5': '5 ',
       \ '6': '6 ',
       \ '7': '7 ',
       \ '8': '8 ',
       \ '9': '9 '
       \}
" 设置切换tab的快捷键 <\> + <i> 切换到第i个 tab
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
" 设置切换tab的快捷键 <\> + <-> 切换到前一个 tab
nmap <leader>- <Plug>AirlineSelectPrevTab
" 设置切换tab的快捷键 <\> + <+> 切换到后一个 tab
nmap <leader>+ <Plug>AirlineSelectNextTab
" 设置切换tab的快捷键 <\> + <q> 退出当前的 tab
nmap <leader>q :bp<cr>:bd #<cr>

再次打开 vim 即可看到效果

六、 VIM 主题

1、hybrid主题

效果图如下:

在容器内安装vim vim 安装插件_git_05


首先将文件下载到本地

git clone https://github.com/w0ng/vim-hybrid.git ~/hybrid

再将**~/hybrid/colors**文件下的内容移到 ~/.vim/colors

mv ~/hybrid/colors/*  ~/.vim/colors

此时hybrid文件夹可以删除了

紧接着在~/.vimrc文件中添加以下内容即可

set background=dark
colorscheme hybrid

再次打开 vim 即可看到效果

2、monokai主题

效果图如下:

在容器内安装vim vim 安装插件_vim_06


首先将文件下载到本地

git clone https://github.com/sickill/vim-monokai.git ~/monokai

再将**~/monokai/colors**文件下的内容移到 ~/.vim/colors

mv ~/monokai/colors/*  ~/.vim/colors

此时monokai文件夹可以删除了

紧接着在~/.vimrc文件中添加以下内容即可

syntax enable
colorscheme monokai

再次打开 vim 即可看到效果

七、彩虹括号

使用 vunbld 安装指令

Plugin 'luochen1990/rainbow'

在命令模式下依次执行:PluginInstall

然后,将以下句子,加入到你的vim配置文件中

let g:rainbow_active = 1 "0 if you want to enable it later via :RainbowToggle

vim配置文件

仅供参考

set go=             " 不要图形按钮  

set guifont=Courier_New:h10:cANSI   " 设置字体  

set syntax=on           " 语法高亮  

set showcmd         " 输入的命令显示出来,看的清楚些  

set cmdheight=1     " 命令行(在状态行下)的高度,设置为1  


set foldenable      " 允许折叠  

set foldmethod=manual   " 手动折叠  

set nocompatible  "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限  


function! CompileRunGcc()
    exec "w"
    if &filetype == 'c'
        exec '!gcc % -o %<'
        exec '!time ./%<'
    elseif &filetype == 'cpp'
        exec '!g++ % -o %<'
        exec '!time ./%<'
    elseif &filetype == 'python'
        exec '!time python %'
    elseif &filetype == 'sh'
        :!time bash %
    endif
endfunction

" F5一键编译运行
nmap <F5> :call CompileRunGcc()<CR>


" 设置当文件被改动时自动载入

set autoread

"允许插件  

filetype plugin on

"共享剪贴板  ubuntu系统需要先安装 vim-gtk
"sudo apt install vim-gtk
"Ctrl + c :复制
"Ctrl + v :粘贴
set clipboard=unnamed
vnoremap <C-c> "+yy<cr>  
vnoremap <C-v> "+p<cr>




"自动保存

set autowrite

set ruler                   " 打开状态栏标尺

set cursorline              " 突出显示当前行
set cursorcolumn            " 突出显示当前列

" highlight cursorline    cterm=NONE ctermbg=black ctermfg=gray guibg=NONE guifg=NONE
highlight cursorColumn  cterm=NONE ctermbg=black ctermfg=gray guibg=NONE guifg=NONE


set magic                   " 设置魔术

set guioptions-=T           " 隐藏工具栏

set guioptions-=m           " 隐藏菜单栏


" 设置在状态行显示的信息

set foldcolumn=0

set foldmethod=indent 

set foldlevel=3 

set foldenable              " 开始折叠

" 不要使用vi的键盘模式,而是vim自己的

set nocompatible


" 去掉输入错误的提示声音

set noeb

" 在处理未保存或只读文件的时候,弹出确认

set confirm

" 自动缩进

set autoindent

set cindent

" Tab键的宽度

set tabstop=4

" 统一缩进为4

set softtabstop=4

set shiftwidth=4

" 不要用空格代替制表符

set noexpandtab

" 在行和段开始处使用制表符

set smarttab

" 显示行号

set number

" 打开相对行号
set relativenumber

" 历史记录数

set history=1000

"禁止生成临时文件

set nobackup

set noswapfile

"搜索忽略大小写

set ignorecase

"搜索逐字符高亮

set hlsearch

set incsearch

"行内替换

set gdefault

"编码设置

set enc=utf-8

set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936

set termencoding=utf-8

set encoding=utf-8

set fileencodings=ucs-bom,utf-8,cp936

set fileencoding=utf-8

"语言设置

set langmenu=zh_CN.UTF-8

set helplang=cn


" 命令行(在状态行下)的高度,默认为1,这里是2

set cmdheight=2

" 侦测文件类型

filetype on

" 载入文件类型插件

filetype plugin on

" 为特定文件类型载入相关缩进文件

filetype indent on

" 保存全局变量

set viminfo+=!

" 带有如下符号的单词不要被换行分割

set iskeyword+=_,$,@,%,#,-

" 字符间插入的像素行数目

set linespace=0

" 增强模式中的命令行自动完成操作

set wildmenu

" 使回格键(backspace)正常处理in安装dent, eol, start等

set backspace=2

" 允许backspace和光标键跨越行边界

set whichwrap+=<,>,h,l

" 通过使用: commands命令,告诉我们文件的哪一行被改变过

set report=0

" 在被分割的窗口间显示空白,便于阅读

set fillchars=vert:\ ,stl:\ ,stlnc:\

" 高亮显示匹配的括号

set showmatch

" 匹配括号高亮的时间(单位是十分之一秒)

set matchtime=1

" 光标移动到buffer的顶部和底部时保持3行距离

set scrolloff=3

" 为C程序提供自动缩进

set smartindent


"自动补全

:inoremap ( ()<ESC>i

:inoremap ) <c-r>=ClosePair(')')<CR>

:inoremap { {<CR>}<ESC>O

:inoremap } <c-r>=ClosePair('}')<CR>

:inoremap [ []<ESC>i

:inoremap ] <c-r>=ClosePair(']')<CR>

:inoremap " ""<ESC>i

:inoremap ' ''<ESC>i


filetype plugin indent on 

"打开文件类型检测, 加了这句才可以用智能补全

set completeopt=longest,menu