Linux环境下写代码虽然没有IDE,但通过给vim配置几个插件也足够好用。一般常用的插件主要包括几类,查找文件,查找符号的定义或者声明(函数,变量等)以及自动补全功能。一般流程都是下载需要的工具,然后在vimrc文件中配置加载工具选项,一直这么用也没觉得啥。但最近发现通过vundle工具可以很方便的管理多个插件,非常方便,介绍给大家。

1.安装vim

./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上,首先下载源码

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

(2).配置.vimrc文件

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 -清除列表中没有的插件

3.配置cscope/ctags/taglist
(1).安装配置Ctags
下载源码安装,在源码目录通过命令ctags -R * 生成索引文件,如果只针对部分文件类型,可以先通过find命令输出文件列表,然后通过ctags -L参数来生成标签,比如:

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拷贝到指定目录

$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).安装配置cscope

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)

vim+vundle配置的更多相关文章

  1. Vim Vundle 插件管理器

    /********************************************************************** * Vim Vundle 插件管理器 * 说明: * 话 ...

  2. [转] vim自定义配置 和 在ubnetu中安装vim

    Ubuntu 12.04安装vim和配置   问题: ubuntu默认没有安装vim,出现: jyg@ubuntu:~$ vim test.cThe program 'vim' can be foun ...

  3. 为了让vi命令也可以使用vim的配置,需要修改 vi /etc/bashrc 增加一行 alias vi=&#39;vim&#39;此时,经过上面配置已经可以显示语法高亮了

    为了让vi命令也可以使用vim的配置,需要修改 vi /etc/bashrc 增加一行 aliasvi='vim'此时,经过上面配置已经可以显示语法高亮了

  4. linux环境下Vim的配置

    原文链接:http://blog.chinaunix.net/uid-26826958-id-3272375.html  (本文转自此链接中的部分内容,但做了适当修改) 安装vim命令:sudo ap ...

  5. windows下LINUX模拟终端Cypwin以及Vim的配置使用

    Cypwin的安装 从官网下载相应版本后,直接安装. 官网地址:Cypwin 安装过程中可以选择相应的Packages,我们需要安装的Vim就需要在这一步中选择相应的包. Cypwin的使用 纯命令行 ...

  6. 我的 vim 基本配置

    " required 使用 vundle 需要先设置这两项 set nocompatible filetype off " 设置 vundle 插件 使用帮助:https://gi ...

  7. vim的配置与使用

    经历了一次source insight 一言不合就崩溃之后,决定还是花点时间好好配置和学习以下vim 于是找到大神的配置 https://github.com/humiaozuzu/dot-vimrc ...

  8. 「个人vim插件+配置」

    2016.10.4 filetype indent on syntax on set nu ai ci si set sw= ts= set autochdir set backspace= colo ...

  9. ubuntu vim YouComlpeteMe配置

    使用vundle安装时,在.vimrc中添加 Plugin 'Valloric/YouCompleteMe' 使用Bundle会安装失败原因未知 YCM编译时附加选项--system-libclang ...

随机推荐

  1. GitHub管理代码-随笔

    公司一直用的SVN进行项目管理,平时便自己折腾了下Git,这里做下GitHub的最简单的记录... 在git上创建仓库等就免谈了,网上也有好多教程,直接从创建之后记录: 在github的readme文 ...

  2. React JS的基本用法[ES5,纯前端写法]

    1.配置webpack npm install -g webpack #webpack的cli npm install -g webpack-dev-server #webpack自带的服务器 npm ...

  3. 在 .NET 中开发基于 Chrome 内核的浏览器-创建一个简单浏览器

    首先在 http://www.cftea.com/tools/downloads/Cef.zip 下载文件包. 一.将文件解压拖入到 Visual Studio 对应的 WinForm 项目中. 二. ...

  4. 模块(configparser+shutil+logging)

    一.configparser模块 1.模块介绍 configparser用于处理特定格式的文件,其本质上是利用open来操作文件. *注:(这里解释一下特定格式的文件) a.有section和opti ...

  5. WPF 数据绑定Binding

    什么是数据绑定? Windows Presentation Foundation (WPF) 数据绑定为应用程序提供了一种简单而一致的方法来显示数据以及与数据交互. 通过数据绑定,您可以对两个不同对象 ...

  6. 推荐12款实用的 JavaScript 书页翻转效果插件

    Flipbooks(书页)或者页面翻转已成为在网页设计中最流行的交互动画之一.他们可以用在 Flash,网页或者在线杂志中.使用书页动画或者页面翻转的网页设计效果方便人们展示他们的产品,作品或者其它内 ...

  7. Kali Linux渗透基础知识整理(四):维持访问

    Kali Linux渗透基础知识整理系列文章回顾 维持访问 在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限.使用木马程序.后门程序和rootkit来达到这一目的.维持访问是一种艺术形式 ...

  8. JavaScript 中介者模式与观察者模式有何不同?

    http://addyosmani.com/resources/essentialjsdesignpatterns/book/#detailmvp 感觉二者非常像,都是pub/sub机制,如何进行区分 ...

  9. crontab 指定执行用户

    linux下可以通过配置crontab来定时执行任务,执行体可以是一条系统命令或自己写的一个脚本,同时可以指派用户来执行.配置crontab有两种方法.方法1.使用crontab命令,例如添加一个新的 ...

  10. Beaglebone Back学习五(PWM测试)

    PWM测试 参考链接 1 Enable PWM on BeagleBone with Device Tree overlays 2Using PWM on the Beaglebone Black 3 ...