看下文时要知道我的<leader>键就是\

ctags

C程序阅读辅助工具。在看C/C++代码的时候经常需要在文件之间跳来跳去,这是很麻烦的事,ctags就是解决这种问题的。ctags是linux的工具,但是它是用来生成tags文件给vim用的,vim无需额外插件即可使用。

$ctags -R 在终端,生成tags文件

ctrl + ] 在vim,跳到光标所指的符号的定义处,跳转时会有栈记录跳转的过程,可以回跳

ctrl + t 在vim,与上条命令相反,即回跳

:ts 在vim,如果找到多处tag的话可以用这个命令将所有tag以列表显示出来

注:经常碰到在回跳时ctrl+t显示已经到达栈底,其实这是不对的,应该重新生成tags文件,我在生成tags文件的路径下打开vim后发现正常了,:tags命令可看栈内容。

可参考文档ctags使用细节

cscope

C程序阅读辅助工具。cscope经常是和ctags搭配使用的,这个工具可以知道哪里调用了当前的函数,哪里包含了当前文件,从而进行跳转,这是它的主要功能。但是不像ctags,这个工具不提供回跳的方法。它也可以用来找符号的定义,如类、函数、变量等,还有些非核心的功能请自行了解。

cscope -Rbq 生成cscope相关数据文件,一般是3个。

注意,cscope与ctags不同的是,还不能直接在vim中使用它,所以需要vim插件cscope.vim,用vundle直接写Bundle 'cscope.vim'即可。具体用法看文档。在vim中使用cscope时需要先连接数据库,也就是连接上面产生的3个文件,使用时如果没有连接会提示你连接的。

配合使用cscope的还有插件autoload_cscope.vim自动加载cscope文件,haolongzhangm/auto_update_cscope_ctags_database自动更新cscope和tags。

-R: 在生成索引文件时,搜索子目录树中的代码
-b: 只生成索引文件,不进入cscope的界面
-q: 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
-k: 在生成索引文件时,不搜索/usr/include目录
-i: 如果保存文件列表的文件名不是cscope.files时,需要加此选项告诉cscope到哪儿去找源文件列表。可以使用"-",表示由标准输入获得文件列表。
-Idir: 在-I选项指出的目录中查找头文件
-u: 扫描所有文件,重新生成交叉索引文件
-C: 在搜索时忽略大小写
-Ppath: 在以相对路径表示的文件前加上的path,这样,你不用切换到你数据库文件所在的目录也可以使用它了。

可参考文档Cscope的使用(领略Vim + Cscope的强大魅力)

The-NERD-Commenter

代码注释插件,主要是和注释相关的操作,如多行注释、注释选中代码块。

\cc 注释当前行和选中行,也可以在\前面加数字,表示从当前行开始的n行进行注释
\cn 没有发现和\cc有区别
\c<空格> 如果被选区域有部分被注释,则对被选区域执行取消注释操作,其它情况执行反转注释操作(常用)
\cm 对被选区域用一对注释符进行注释,前面的注释对每一行都会添加注释
\ci 执行反转注释操作,选中区域注释部分取消注释,非注释部分添加注释
\cs 添加性感的注释,代码开头介绍部分通常使用该注释
\cy 添加注释,并复制被添加注释的部分
\c$ 注释当前光标到改行结尾的内容
\cA 跳转到该行结尾添加注释,并进入编辑模式
\ca 转换注释的方式,比如: /**/和//
\cl \cb 左对齐和左右对其,左右对其主要针对/**/
\cu 取消注释
注意其中的\符号是<leader>键,上面的快捷键需要按3个。

easymotion

光标定位插件,跨行跳转时可以用这个插件,跳得更快,使用方便简单。

\\b    按词往上寻找
\\w 按词往下寻找
\\j 按行往下寻找
\\k 按行往上寻找

Tagbar

C变量名列表插件,以列表的形式展示出本文件的变量、函数、结构体等等。

p 光标停留在tagbar栏,文件的光标调至对应的位置。
P(大写)  光标不动,但是新开一个预览窗口。
ctrl+n  光标跳至下一个折叠目录处
ctrl+p  功能同上,但与上相反。
空格   在控制命令行显示当前tag的原型。
s  切换排序规则:名字 or 定义顺序
x  全屏显示tagbar
q  关闭tagbar(对于有映射键来讲,没有用)
-  折叠当前标签
+  打开折叠的标签

The-NERD-tree

目录树插件,在vim中显示当前路径下的目录树,不知道文件名时找文件时比较方便。

ctrl + w + h    光标 focus 左侧树形目录
ctrl + w + l 光标 focus 右侧文件显示窗口
ctrl + w + w 光标自动在左右侧窗口切换
ctrl + w + r 移动当前窗口的布局位置
o 在已有窗口中打开文件、目录或书签,并跳到该窗口
go 在已有窗口 中打开文件、目录或书签,但不跳到该窗口
t 在新 Tab 中打开选中文件/书签,并跳到新 Tab
T 在新 Tab 中打开选中文件/书签,但不跳到新 Tab
i split 一个新窗口打开选中文件,并跳到该窗口
gi split 一个新窗口打开选中文件,但不跳到该窗口
s vsplit 一个新窗口打开选中文件,并跳到该窗口
gs vsplit 一个新 窗口打开选中文件,但不跳到该窗口
! 执行当前文件
O 递归打开选中 结点下的所有目录
x 合拢选中结点的父目录
X 递归 合拢选中结点下的所有目录
e Edit the current dif
双击 相当于 NERDTree-o
中键 对文件相当于 NERDTree-i,对目录相当于 NERDTree-e
D 删除当前书签
P 跳到根结点
p 跳到父结点
K 跳到当前目录下同级的第一个结点
J 跳到当前目录下同级的最后一个结点
k 跳到当前目录下同级的前一个结点
j 跳到当前目录下同级的后一个结点
C 将选中目录或选中文件的父目录设为根结点
u 将当前根结点的父目录设为根目录,并变成合拢原根结点
U 将当前根结点的父目录设为根目录,但保持展开原根结点
m 显示文件系统菜单
cd 将 CWD 设为选中目录
I 切换是否显示隐藏文件
f 切换是否使用文件过滤器
F 切换是否显示文件
B 切换是否显示书签
q 关闭 NerdTree 窗口
? 切换是否显示 Quick Help
r 递归刷新选中目录(很重要)
R 递归刷新根结点(很重要)

Vim插件推荐的更多相关文章

  1. 【IDEA】intellij idea 插件推荐

    CSDN 2016博客之星评选结果公布    [系列直播]零基础学习微信小程序!      "我的2016"主题征文活动   博客的神秘功能 [IDEA]intellij idea ...

  2. vim插件ctags的安装和使用

    vim插件ctags的安装和使用 2013-11-19 20:47 17064人阅读 评论(0) 收藏 举报  分类: 开发工具(3)  linux编程(9)  c/c++编程(11)  版权声明:本 ...

  3. sublime Text3配置及快捷键、插件推荐总结

    一.基础 1.重要文档: sublime Text3官方文档中文版:http://feliving.github.io/Sublime-Text-3-Documentation/ sublime Te ...

  4. Eclipse vim插件安装使用

    在eclipse移动关闭位置感觉非常不爽,经常要用到方向键和鼠标,导致经常要移来移去.果断受不了了,去网上搜了下发现eclipse有许多vim插件可以使用.有一个大家都比较推荐的是 vrapper   ...

  5. intellij idea 13&14 插件推荐及快速上手建议 (已更新!)

    原文:intellij idea 13&14 插件推荐及快速上手建议 (已更新!) 早些年 在外企的时候,公司用的是intellij idea ,当时也是从eclipse.MyEclipse转 ...

  6. Vim插件之插件管理器Vundle

    Vim插件之插件管理器Vundle 1.介绍下载 相比Sublime.Text2等现代编辑器,Vim缺乏默认的插件管理器,所有插件的文件都散布在~/.vim下的几个文件夹中,配置Vim的过程, 就是在 ...

  7. 【转载】跟我一起学习VIM - vim插件

    目录 写在前面:Life Changing Editor 什么是VIM 为什么选VIM 为什么选其它 为什么犹豫选择它们 VIM >= SUM(现代编辑器) 如何学习VIM 一秒钟变记事本 VI ...

  8. linux 下程序员专用搜索源码用来替代grep的软件ack(后来发现一个更快的: ag), 且有vim插件的

    发现一个比ack更快更好用的:  https://github.com/ggreer/the_silver_searcher   , 使用时命令为ag,它是基于ack的代码二次开发的,所有使用方法基本 ...

  9. ATOM常用插件推荐

    转载:http://blog.csdn.net/qq_30100043/article/details/53558381 ATOM常用插件推荐 simplified-chinese-menu ATOM ...

随机推荐

  1. Navicat安装教程、建表教程

    1.安装教程: 转自:https://www.jianshu.com/p/5f693b4c9468 2.使用教程(建表操作): https://jingyan.baidu.com/article/e6 ...

  2. 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_类型转换

    1. C# 不要求任何特殊语法即可将一个对象转换为它的任何基类型,因为向基类型的转换被认为是一种安全的隐式转换: 2. 然而,将对象转换为它的某个派生类型时,C#要求开发人员只能进行显示转换,因为这样 ...

  3. python3 unittest数据驱动

    我们在自动化测试的时候,有没有遇到这样的问题?例如一个登录的接口要做自动化,会有很多case(用例),密码错误,密码正确这种.在继承unittest.TestCase的类中,凡是以“test”开头的方 ...

  4. js中url有中文的转码方法

    转载:https://www.cnblogs.com/chiangfai/p/6073000.html

  5. spring aop实现log 日志跟踪

    之前写的那篇是基于springboot的(https://www.cnblogs.com/yaoyuan2/p/10302802.html),由于遗留项目用的是spring,因此需要在spring基础 ...

  6. WindowsMTU修改

    MTU是英文Maximum Transmission Unit的缩写,意为"最大传输单位".也就是通过TCP/IP协议所传输的数据包最大有多少字节,对于网速有极大的影响, MTU并 ...

  7. Problem01 不死神兔

    题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 程序分析:兔子的规律为数列1,1,2,3,5,8,13,21 ...

  8. find 根据时间查找,详解

    https://blog.csdn.net/u010181136/article/details/73322738 find可谓是aix/linux上使用较多的维护用命令,但很多时候需要用到针对时间的 ...

  9. my.资料

    领回梦丹 http://ka.gamedog.cn/card/2036517.html 1. 普陀的加点没有优点缺点之分,只有是否和你的装备般配.这里可以给一些小数据参考. 60级物理防御达到900, ...

  10. Serializable深入理解

    1.什么是序列化,解决什么问题 序列化可以对象的状态信息转换成可以持久化或者可以传输形式的过程.一般是转为字节数据.而把字节数组还原成原来同等对象的过程成为反序列化. 在Java中,对象的序列化与反序 ...