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-cscopemake
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)

转载于:https://www.cnblogs.com/cchust/p/6218005.html

vim+vundle配置相关推荐

  1. ubuntu下vim的配置

    写在前面,我写本文的目的不在于教大家怎么来配置VIM,因为我是新手,我也是参考了各位前辈的方法,在此只是记录一下过程,当然我个人觉得更重要的是心得体会.其实大家可能也发觉,国内的抄袭转载现象很严重,基 ...

  2. Vim Vundle 插件管理器

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

  3. 用Vim编程——配置与技巧

    本文介绍如何用强大的文本编辑器 Vim编程.只要配置得当,效果堪比一个IDE. 配置 基本配置: "开启语法高亮 syntax on "依文件类型设置自动缩进 filetype i ...

  4. Vim Vundle YouCompleteMe

    /*************************************************************************************** Vim Vundle ...

  5. linux vim ddyd,vim环境配置

    ctags ctags对浏览代码非常的方便,可以在函数.变量之间跳来跳去等等. 下载 我已经下载过了,路径:/home1/fujun/software/ctags-5.8.tar.gz 编译& ...

  6. Mac vim环境配置

    Mac vim环境配置 vim环境安装 vimrc配置文件 vim插件安装 vim环境安装 # mac下安装brew $ ruby -e "$(curl -fsSL https://raw. ...

  7. Manjaro 安装 Vim 并配置

    系统版本:Manjaro 20.0.3 Lysia 桌面环境:Gnome (我的是 Manjaro 系统,安装命令跟 Ubuntu 不一样,Ubuntu 安装命令只用将下面的 pacman -Sy 换 ...

  8. 【从入门到进阶】vim基础配置+ 常用插件(NERDTree, cscope, rainbow等)

    文章目录 前言 一.vim基础配置 二.常用插件 2.1 Vundle 2.1.1 Vundle安装 2.1.2 Vundle配置 2.1.3 安装插件 2.1.4 Vundle常用指令 2.2 NE ...

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

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

最新文章

  1. pip install scipy和matplotlib报错的问题详解:(pip install其它时报错通用)
  2. 我的Android进阶之旅------Android二级ListView列表的实现
  3. MSN空间上的以往技术贴整理
  4. scrollview复用节点_利用ScrollView实现TableView效果(实现复用)
  5. e3是合法浮点数吗_下列哪些是不合法的浮点数的选项是 123 2e4.2 .e5 -e3 .234 1e3
  6. mysql一对多_mysql一对多查询合并多的一方的数据。
  7. 2021中国音乐市场年度综合分析
  8. 在线考试 ajax,关于在线考试使用ajax一问?
  9. 思科BFD协议帮助侦测网络失败
  10. 小学计算机纸牌教案,小学信息技术《玩好纸牌》教案
  11. 《Puppet权威指南》——第1章 运维工程师的利器——自动化运维工具
  12. python运行快捷键是什么_Python快捷键
  13. 浅读艾宾浩斯遗忘曲线
  14. 网站ping端口的操作方法和命令介绍
  15. 基于PyQt5与opencv制作的证件照尺寸变换应用程序
  16. 思维导图的10种类型有哪些?思维导图结构详解
  17. python星号怎么输入_如何将密码显示为星号
  18. 赛前练习(百度之星资格赛及初赛真题+Codeforces(div2级别))
  19. 实用工具推荐【待更新】
  20. TCP与UDP的区别是什么?

热门文章

  1. javabean实体类与实体类之间的快速转换
  2. 【CentOS】利用Kubeadm部署Kubernetes (K8s)
  3. ireport如何给static text加边框_html amp;amp; css 解决li浮动边框为2的问题
  4. Python 标准库之 commands
  5. 使用python建立简单的树机构
  6. c语言使用指定字符串替换特定的子串
  7. 【Springboot】日志
  8. python编程问题--第二次
  9. Pass Infrastructure基础架构(下)
  10. 从C到C++过渡的3个原因