linux vim的常用插件及相关配置流程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zz531987464/article/details/83856967

这里首先将自己的.vimrc配置文件贴出来,路径如下:https://download.csdn.net/download/zz531987464/10773213

在刚完成装机的Ubuntu中,我们首先需要安装vim,因为内置的vim方向键有问题

1. sudo apt-get install vim

2. 安装完成后,首先安装vim的插件管理器 vundle,这个vundle在github上的地址是:https://github.com/VundleVim/Vundle.vim.

进入到该网页中,我们可以看到下面的readme.md的介绍,教大家怎么安装vundle。

2.1 首先我们在用户主目录下新建一个.vim的文件夹,并在其中创建一个bundle的文件夹,即创建结为

/home/ubuntu/.vim/bundle

2.2 根据vundle的readme.md介绍:我们clone vundle的源码到bundle文件夹下,即在/home/ubuntu/.vim/bundle文件夹下执行

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

接着会在bundle下会生成一个Vundle.vim的文件夹。

2.3 接着在用户主目录下创建一个vim的配置文件.vimrc ,即 /home/ubuntu/.vimrc,编辑该文件,添加vundle readme.md中描述的所需要添加的配置文件,我这里也直接贴出来

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()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')

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

" The following are examples of different formats supported.
" Keep Plugin commands between vundle#begin/end.
" plugin on GitHub repo
"Plugin 'tpope/vim-fugitive'
" plugin from http://vim-scripts.org/vim/scripts.html
" Plugin 'L9'
" Git plugin not hosted on GitHub
"Plugin 'git://git.wincent.com/command-t.git'
" git repos on your local machine (i.e. when working on your own plugin)
"Plugin 'file:///home/gmarik/path/to/plugin'
" The sparkup vim script is in a subdirectory of this repo called vim.
" Pass the path to set the runtimepath properly.
"Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
" Install L9 and avoid a Naming conflict if you've already installed a
" different version somewhere else.
" Plugin 'ascenator/L9', {'name': 'newL9'}

" All of your Plugins must be added before the following line
call vundle#end()            " required
filetype plugin indent on    " required
" To ignore plugin indent changes, instead use:
"filetype plugin on
"
" Brief help
" :PluginList       - lists configured plugins
" :PluginInstall    - installs plugins; append `!` to update or just :PluginUpdate
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
" :PluginClean      - confirms removal of unused plugins; append `!` to auto-approve removal
"
" see :h vundle for more details or wiki for FAQ
" Put your non-Plugin stuff after this line

这里我将"Plugin 'VundleVim/Vundle.vim' 与 call vundle#end()            " required 之间的所有行数都给注释掉,我们自己添加自己所需要的插件,里面被我注释掉的那几个插件只是一个范例,告诉我们该怎么添加插件而已。当然那些插件如果觉得用得上的话也可以保留不注释。

接着刚才的配置操作在后面继续添加一些常用的简单的不需要插件的配置选项,

set nu
set nobackup
set cursorline
set autoindent
set ruler
syntax on
set tabstop=4
set showmatch

set tags+=/home/ubuntu/personal/baiduSDK/tags

执行 wq,退出保存该文件。

2.4 现在我们打开vi,然后在命令端执行 :PluginInstall,执行该命令后会出现一个弹框,显示当前已经安装的或者正在自动安装的vim插件。每次在.vimrc中添加了一个插件后,需要在vim的命令端执行一次:PluginInstall ,将所需要的插件下载并安装起来。

3 这里我直接将自己目前所使用的插件以及插件的配置选项都列举出来,具体如下:

Plugin 'scrooloose/nerdtree' 

let g:NERDTreeWinPos='right'
let g:NERDTreeSize=30
let g:NERDTreeShowLineNumbers=1
let g:NERDTreeHidden=0
map <F2> :NERDTreeToggle<CR>

这个是nerdtree插件相当于一个文件浏览器,我们在vim 编辑代码的界面下,直接按F2就可以在窗口右侧出现一个显示框,再按一下F2会关闭该窗口。默认是关闭该栏的。里面显示当前打开文件目录下的所有文件,并且有行号,且能够回到上一级目录,打开其他文件等等。

Plugin 'majutsushi/tagbar'

let g:tagbar_autopreview = 1
let g:tagbar_ctags_bin = 'ctags'
let g:tagbar_sort = 0
let g:tagbar_left = 1
let g:tagbar_width = 35
let g:tagbar_autofocus = 1
autocmd FileType c,cpp,h,hpp,cxx,cc,cxx nested :TagbarOpen
nmap <F3> :TagbarToggle<CR>

tagbar插件是一个可以用于C/C++代码跳转的插件,前提是需要我们在Ubuntu中安装ctags,在某一工程中执行ctags -R,会在工程根目录下生成tags,将该tags加入到 .vimrc中(添加方法可以查看前面2.3中最后的配置代码段)。vim打开该工程下的任意文件,会自动在左边打开函数列表变量名等数据的窗口。

Plugin 'vim-airline/vim-airline'

Plugin 'vim-airline-themes'

set laststatus=2
set t_Co=256
set encoding=utf-8
set langmenu=zh_CN.UTF-8
let g:airline_theme='badwolf'
let g:airline_powerline_fonts = 1
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#buffer_nr_show = 1
let g:airline#extensions#whitespace#enabled = 0
let g:airline#extensions#whitespace#symbol = '!'
nnoremap <C-M> :bn<CR>
nnoremap <C-N> :bp<CR>

airline是一个非常良好的状态栏插件,按照如上的配置后我们可以使用Ctrl-M Ctrl-N Enter 三个键进行tab窗口之间的跳转。

我们可以在vim命令行执行 :vim  xxxx.cpp 或者 :tabedit xxx.cpp,会生成一个tab窗口(用前面的文件浏览插件打开其他文件时也会新建tab窗口),我们用上面的三个键进行窗口之间的切换编辑。非常适合需要打开多个文件进行编辑查看的场景。


Plugin 'scrooloose/nerdcommenter'

let g:NERDSpaceDelims=1
let mapleader="/"

该插件是一个注释代码的插件。我们修改leader键为 "/"键,默认的是”\“,因为考虑注释都是这种斜杠。

注释反注释某一行     /c<space> 

切换注释模板/**/ //    /ca

注释当前行                /cc

注释掉某一整块代码只需要ctrl-v进入vim的Visual模式,然后执行上面的这些命令就可以了。

Plugin 'EasyGrep'

let g:EasyGrepMode = 2     " All:0, Open Buffers:1, TrackExt:2, 
let g:EasyGrepCommand = 0  " Use vimgrep:0, grepprg:1
let g:EasyGrepRecursive  = 1 " Recursive searching
let g:EasyGrepIgnoreCase = 1 " not ignorecase:0
let g:EasyGrepFilesToExclude = "*.bak, *~, cscope.*, *.a, *.o, *.so, *.pyc, *.bak"

EasyGrep是一个字符串搜索工具,它本质上实用了vim里面的grep。其实用方法为:

/vv or :Grep: \vv命令将在文件中搜索当前光标下的单词, :Grep word将搜索"word", 如果加叹号:Grep !word表示全词匹配的方式搜索, Grep也可以带参数, 比如:Grep -ir word, r表示递归目录. i表示不区分大小写.
/vV : 全词匹配搜索, 同:Grep !word;
/va : 与vv相似, 搜索结果append在上次搜索结果之后;
/vA : 与vV相似, 搜索结果append在上次搜索结果之后;
/vr or :Replace :替换;
/vo or :GrepOptions: 打开选项菜单;


Plugin 'kien/ctrlp.vim'

let g:ctrlp_map = '<c-p>'
let g:ctrlp_cmd = 'CtrlP'
set wildignore+=*/tmp/*,*.so,*.swp,*.zip     " MacOSX/Linux

let g:ctrlp_custom_ignore = '\v[\/]\.(git|hg|svn)$'
let g:ctrlp_custom_ignore = {
  \ 'dir':  '\v[\/]\.(git|hg|svn)$',
  \ 'file': '\v\.(exe|so|dll)$',
  \ 'link': 'some_bad_symbolic_links',
  \ }

ctrlp插件是用于文件搜索的,在vim中执行 ctrl-P组合键后,就会生成一栏,我们直接输入自己所想找的文件名就会在当前工程下搜索所有的相关的文件,并全部列举出来,非常实用。

最终我的vim界面就是这样子的啦,从现在开始慢慢转入到vim的怀抱中,摒弃sourceinsight。。。

猜你喜欢

转载自blog.csdn.net/zz531987464/article/details/83856967