[Editor][001][vim]VIM的辅助工具们
1 shell command
1.1 利用grep来查找某个文件夹下的某个文件中所含的字符:
这个命令用于在VM下,查找需要的变量和函数.
grep -nirw 是最经常用的的选项组合 + 后面你要查找的路径 + 你要显示的上下文
-n 显示行号
-i 忽略大小写
-r 搜索整个目录
-w 全字符合
- grep -nr functionname * //所有目录下所有文件,带行号查找包括functionname 的地方
- grep -nr function test* // 所有test开头的目录包括function 的地方
- grep -nr function test* -C5 // 所有test开头的目录包括function 的地方,并且向上下看5行,这个很有用,就不用进去vm去看了
- grep -nr ^gst * -C5 //查询gstreamer的相关的函数的时候,往往是gst开头的函数,如果只是查询gst那么很多不是这个开头的相关文件也有
2 VIM command:
2.0 VIM 打开文件的时候自动到某行, VIM [要打开的文件] + [行号]
2.01 复制几行的选择
2.01.1 press "v" 进入VISUAL模式
2.01.2 选择你想V复制的行
2.01.3 press “Y” 屏幕下方会通知你yanked行数
【注意】如果这时候输入‘p’是无效的,因为p是在VISUAL模式下,而你y的时候已经自动退出了VISUAL
2.01.3 press "v" 再次进入VISUAL模式
2.01.3 press "p"这时候可以正确粘贴来了。
2.1 文本选择和编辑
.1 选择一个单词,方便查找: gd ,然后又n进行查找
.2 复制光标所在的单词:yiw
.3''跳转到光标上次停靠的地方, 是两个', 而不是一个"
.4 %跳转到配对的括号去
.5[[跳转到代码块的开头去(但要求代码块中'{'必须单独占一行)
.6 gD跳转到局部变量的定义处
.7 mx设置书签,x只能是a-z的26个字母
.8`x跳转到书签处("`"是1左边的键)
.9>增加缩进,"x>"表示增加以下x行的缩进
.a<减少缩进,"x<"表示减少以下x行的缩进
2.2 基本插件
2.2.1 Ctags 的使用:
2.2.1.1 首先要生成 Tag 的列表
通过下面的命令,在需要构建tag的文件夹下面运行:
ctags -R *
【案】ctags 的版本有很多,有是有有一个emacs的版本,这个版本里面是没有递归查找的,就是没有-R项目,
ctags: skipping arpa: it is not a regular file
ctags --version
如果是如下的版本
ctags (GNU Emacs 23.1)
Copyright (C) 2009 Free Software Foundation, Inc.
This program is distributed under the terms in ETAGS.README
那是不行的,需要更新到Exuberant Ctags
sudo apt-get install exuberant-ctags
2.2.1.2 tag路径设定
:set tags=/home/wooin/vim71/tags
在vim的窗口下(单次),或者 ~/.vimrc 下面加入上面的路径设定。
2.2.1.3 常用的tag的命令
Keyboard command |
Action |
---|---|
Ctrl-] |
Jump to the tag underneath the cursor |
:ts <tag> <RET> |
Search for a particular tag |
:tn |
Go to the next definition for the last tag |
:tp |
Go to the previous definition for the last tag |
:ts |
List all of the definitions of the last tag |
Ctrl-t |
Jump back up in the tag stack |
2.2.2 listtab的使用:
:Tlist 打开list
TlistOpen 打开list 焦点切换:
TlistClose
let Tlist_Ctags_Cmd='C:\Progra~1\Ctags\ctags.exe'
http://easwy.com/blog/archives/advanced-vim-skills-taglist-plugin/
http://vim-taglist.sourceforge.net/faq.html
2.2.3 cscope的使用
2.2.3.1 生成数据库
cscope -R 首次生成会自动进入cscope菜单
生成.out 数据库,
如果不想让他进去菜单,可以加 -b 只生成索引就好,不过如果进去菜单操作也比较方便,主要注意Ctrl+D退出就好了。
进入菜单,会自动给出列表和打开你需要的文件。
2.2.3.2 打开曾经生成的数据库
cscope add D:\src\myproject\cscope.out
cscope D:\src\myproject\cscope.out
直接在代码树的根目录下输入上述命令,就可以打开cscope原来设定的数据库。
2.2.3.3 加入C以外的文件
Cscope缺省只解析C文件(.c和.h)、lex文件(.l)和yacc文件(.y),虽然它也可以支持C++以及Java,但它在扫描目录时会跳过C++及Java后缀的文件。
如果你希望cscope解析C++或Java文件,需要把这些文件的名字和路径保存在一个名为cscope.files的文件。
当cscope发现在当前目录中存在cscope.files时,就会为cscope.files中列出的所有文件生成索引数据库。
通常我们使用find来生成cscope.files文件,仍以vim 7.0的源代码为例:
cd ~/src/vim70
find . –type f > cscope.files
cscope -bq
这条命令把~src/vim70目录下的所有普通文件都加入了cscope.files,这样,cscope会解析该目录下的每一个文件。上面的cscope命令并没有使用”-R“参数递归查找子目录,因为在cscope.files中已经包含了子目录中的文件。
注意:find命令输出的文件以相对路径表示,所以cscope.out的索引也相对于当前路径。如果你要在其它路径中使用当前的cscope.out,需要使用下面介绍的-P选项。
2.2.3.3 Cscope 常用参数
-b: 只生成索引文件,不进入cscope的界面
-q: 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
-k: 在生成索引文件时,不搜索/usr/include目录
-i: 如果保存文件列表的文件名不是cscope.files时,需要加此选项告诉cscope到哪儿去找源文件列表。可以使用”–“,表示由标准输入获得文件列表。
-Idir: 在-I选项指出的目录中查找头文件
-u: 扫描所有文件,重新生成交叉索引文件
-C: 在搜索时忽略大小写
-Ppath: 在以相对路径表示的文件前加上的path,这样,你不用切换到你数据库文件所在的目录也可以使用它了。
2.3 VIM 的基本配置
2.3.1 VIM配置文件
2.3.2 VIM配置文件的基本设定选项
79 :inoremap ) <C-R>=ClosePair(')')<CR>
2.2 基本替换命令
3 文件查找命令:
1 利用find来查找文件
find . -type f -iname "*.[chS]" | xargs etags -a
==============================================================================
ref:
1
http://www.eguidedog.net/linux-tutorial/05-grep.php
2
http://blog.csdn.net/namecyf/article/details/7787479
3 配置vim环境
http://jingyan.baidu.com/article/7e440953cdeb1f2fc1e2ef7c.html
4 Cscope的使用(领略Vim + Cscope的强大魅力)
http://blog.csdn.net/dengxiayehu/article/details/6330200
5 vi/vim使用进阶: 程序员的利器 – cscope
http://easwy.com/blog/archives/advanced-vim-skills-cscope/
[Editor][001][vim]VIM的辅助工具们相关推荐
- 《深入分析GCC 》——第2章 GCC源代码分析工具2.1 vim+ctags代码阅读工具
本节书摘来自华章出版社<深入分析GCC >一书中的第1章,第2.1节,作者 王亚刚 ,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第2章 GCC源代码分析工 ...
- 关于出现Not an editor command: Bundle ‘**/*.vim‘的解决方案【转】
关于出现Not an editor command: Bundle '**/*.vim'的解决方案[转] 参考文章: (1)关于出现Not an editor command: Bundle '**/ ...
- 【网络游戏§绿色DOTA2魔笛V1.001 官方最新版§DOTA游戏辅助工具§】
[网络游戏§绿色DOTA2魔笛V1.001 官方最新版§DOTA游戏辅助工具§] 软件大小:11.53MB 软件语言:简体中文 软件授权:免费软件 更新时间:2013-06-19 01:27:40 应 ...
- 2021-05-10 打造自己的vim c/c++开发工具
文章目录 打造自己的vim c/c++开发工具 0. Ubuntu 1. 需要的必备神器 2. 安装 3. .vimrc 内容如下 4. .zshrc 配置 5. vim 技巧 打造自己的vim c/ ...
- PHP辅助工具安装-phpMyAdmin和论坛
PHP辅助工具安装-phpMyAdmin和论坛 phpMyAdmin安装 1.解压 2.复制 3.重命名 4.编辑 5.验证 论坛安装 1.解压Discuz_7.2_FULL_SC_UTF8.zip ...
- Hadoop辅助工具——Flume、Sqoop
前言 在一个完整的离线大数据处理系统中,除了hdfs+mapreduce+hive组成分析系统的核心之外,还需要数据采集.结果数据导出.任务调度等不可或缺的辅助系统,而这些辅助工具在hadoop生态体 ...
- .net的辅助工具列表
.net的辅助工具列表: Code generation NVelocity CodeSmith X-Code .NET XGoF - NMatrix / DEVerest Compilation e ...
- Unity - Timeline 自定义剪辑,轨道,混合轨道,Inspector属性显示(使用Default Playables辅助工具)
Timeline中,可以通过脚本扩展自定义的剪辑,轨道,混合轨道,Inspector属性显示器. 我这里参考了官方的 Default Playables的一个节点扩展方式,它也提供了一个辅助工具,非常 ...
- Java服务端和客户端开发辅助工具Utils
包括了各种工具类.辅助类.管理类等 Awesome_API: https://github.com/marktony/Awesome_API/blob/master/Chinese.md 收集中国国内 ...
- Android开发辅助工具类 Utils
包括了各种工具类.辅助类.管理类等 都可以 在Git 里找到代码 来研究,深入 Awesome_API: https://github.com/marktony/Awesome_API/blo ...
最新文章
- java操作mongodb基础(查询 排序 输出list)
- 批量替换文本中字符代码-python3
- Spring Boot 2.x基础教程:使用 ECharts 绘制各种华丽的数据图表
- Node.js- sublime搭建node的编译环境
- 配置 postCSS 自动添加 css 的兼容前缀||打包样式表中的图片和字体文件||打包处理 js 文件中的高级语法
- 快速接入 GitHub、QQ 第三方登录方式
- php申请系统,PHP+MYSQL的文章管理系统(一)_php
- 初探PostgreSql
- css 点击效果_使用CSS实现逼真的水波纹点击效果
- 广西移动计算机面试题,广西移动笔试经验分享
- 你必须具有权限才能读取此对象_为啥手机APP要获取权限?这些权限不能随便同意...
- VMware centos7配置以及SecureCRT连接
- MTP管理才能发展专家
- 关于:在 Office 2021 中自定义模板
- 计算机rapter 流程图,Raptor设计程序流程图并运行的具体操作步骤
- 麒麟KY-RTI分布仿真技术:第一章 简介
- Python实现商场管理系统
- macOS Monterey 怎么升级?macOS 12升级教程
- 谷歌2018年IO大会
- 安卓手机做电脑摄像头(USB连接1080P 60FPS低延迟非常稳定)