Linux环境下写代码虽然没有IDE,但经过给vim配置几个插件也足够好用。通常经常使用的插件主要包括几类,查找文件,查找符号的定义或者声明(函数,变量等)以及自动补全功能。通常流程都是下载须要的工具,而后在vimrc文件中配置加载工具选项,一直这么用也没以为啥。但最近发现经过vundle工具能够很方便的管理多个插件,很是方便,介绍给你们。python
1.安装vimgit
./configure --prefix=/usr \ --with-features=huge \ --enable-pythoninterp \ --enable-rubyinterp --enable-luainterp \ --enable-multibyte --enable-sniff --enable-fontset \ --with-features=huge \ --enable-pythoninterp \ --enable-rubyinterp \ --enable-luainterp \ --enable-multibyte \ --enable-sniff \ --enable-cscope make sudo make install
2.安装配置vundle
(1).vundle代码所有托管在git上,首先下载源码github
git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
(2).配置.vimrc文件shell
set rtp+=~/.vim/bundle/vundle/ call vundle#rc() Bundle 'gmarik/vundle' Bundle 'Valloric/YouCompleteMe' Bundle 'ctrlpvim/ctrlp.vim'
每一个Bundle声明一个要用Vundle安装的插件,上面的内容配置了插件YouCompleteMe和ctrlp.vim。
(3).使用vundle
经过命令:BundleList能够查看咱们配置的插件,经过命令:BundleInstall,能够安装全部BundleList显示的插件,这个过程是所有由vundle代劳。若是须要删除插件,先在~/.vimrc中移除插件声明,而后执行命令:BundleClean便可。vundle管理插件的命令以下:
:BundleList -列举出列表中(.vimrc中)配置的全部插件
:BundleInstall -安装列表中所有插件
:BundleInstall! -更新列表中所有插件
:BundleSearch foo -查找foo插件
:BundleClean -清除列表中没有的插件
vim
3.配置cscope/ctags/taglist
(1).安装配置Ctags
下载源码安装,在源码目录经过命令ctags -R * 生成索引文件,若是只针对部分文件类型,能够先经过find命令输出文件列表,而后经过ctags -L参数来生成标签,好比:ruby
find . -name "*.h" -o -name "*.c" -o -name "*.cc" -o -name "*.ic" > tags.files ctags -L tags.files
(2).安装配置Taglist
Taglist依赖于ctags,实质只包含几个配置文件,将taglist.txt和taglist.vim拷贝到指定目录bash
$cd taglist/ $cp doc/taglist.txt ~/.vim/doc $cp plugin/taglist.vim ~/.vim/plugin/
(3).关联ctags和taglist
在.vimrc中加入以下代码:函数
let Tlist_Ctags_Cmd="/usr/bin/ctags"
vim中执行:Tlist能够在tag列表则表示安装ok了。工具
(4).安装配置cscopelua
find . -name "*.h" -o -name "*.c" -o -name "*.cc" -o -name "*.ic" > cscope.files cscope -bkq -i cscope.files
-R: 在生成索引文件时,搜索子目录树中的代码
-b: 只生成索引文件,不进入cscope的界面
-q: 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
-k: 在生成索引文件时,不搜索/usr/include目录
(5).经常使用快捷键
cs add path/cscope.out (加载cscope索引文件) cs find c|d|e|f|g|i|s|t name
s: 查找C语言符号,即查找函数名、宏、枚举值等出现的地方
g: 查找函数、宏、枚举等定义的位置,相似ctags所提供的功能
t: 查找指定的字符串
e: 查找egrep模式,至关于egrep功能,但查找速度快多了
d: 查找本函数调用的函数
c: 查找调用本函数的函数
f: 查找并打开文件,相似vim的find功能
i: 查找包含本文件的文件
(6).设置快捷键映射
nmap ffs :cs find s <C-R>=expand("<cword>")<CR><CR> nmap ffg :cs find g <C-R>=expand("<cword>")<CR><CR> nmap fft :cs find t <C-R>=expand("<cword>")<CR><CR> nmap ffe :cs find e <C-R>=expand("<cword>")<CR><CR>
4.vim经常使用的快捷键
(1)跳转
% 跳转到相配对的括号
$ 跳转至行尾
0 数字0,跳转至行首
[] 跳往上一个函数的结束大括号 (在函数中间时,调到函数头)
][ 跳往下一个函数的结束大括号 (在函数中间时,调到函数尾)
ctrl+b 向后翻一页
ctrl+f 向前翻一页
gg 跳转到文件头
GG 跳转到文件尾
(2).编辑
set cursorline (显示横线,方便看清楚在哪一行)
set shiftwidth=2 (块操做,选中块,按下>表示向右移动2列,按下<表示向左移动2列)
Ndd (N为数字,表示删除N行,相似剪切功能)
Nyy (N为数字,表示复制N行)
(3).多标签
:vsplit (垂直切分窗口,能够参考代码)
ctrl+w (窗口切换)
(4).经常使用快捷键
Ngt (切换到第几个标签)
:tabc (关闭当前的tab)
:tabo (关闭全部其余的tab)
:tablast (最后一个tab)
:tabfirst (第一个tab)
:tabnext (下一个tab)
:tabpre (上一个tab)
gt,gT (在tab之间切换)
(5).快捷键映射
nmap ff1 1gt nmap ff2 2gt nmap ff3 3gt nmap ff4 4gt nmap ff5 5gt nmap ff6 6gt nmap ff7 7gt nmap ff8 8gt nmap ff9 9gt nmap ffc :tabc<CR> nmap ffo :tabo<CR> nmap fff :tabfirst<CR> nmap ffl :tablast<CR> nmap ffn :tabnext<CR> nmap ffp :tabpre<CR>
(6).其它
:so ~/.vimrc (动态加载vimrc修改)
:shell (vim与shell切换)
:exit (返回vim)