vim阅读c++代码的快捷键
未完,待总结
1. 首先适用ctags建立当前工作目录的标签:
cd /home/wanglc/WorkDirectory
ctags -R or ctags -R *
命令结束以后,会生成一个tags文件。
还有一个:ctags --sort=yes -R ,可以是ctags查找更快速,适用二分查找法,个人觉得这应该做成一个默认的选项。
2. 将这个生成的tags文件配置到vim中去。方法如下:
vi /etc/vimrc
打开以后,添加以下语句:
set tags=/home/wanglc/WorkDirectory/tags
source /etc/vimrc
3. 配置vim的缩进,符合语言规则
set cindent "设置c风格的缩进
4. 配置自动代码补全功能
在编写代码的时调用CTRL+P、CTRL+N也会自动搜索tag信息来进行补齐。
5. 设置鼠标
set mouse=a
 set scroll=5
Ctrl+[鼠标点击函数名] 跳转到函数定义
Ctrl+[鼠标右击函数名] 返回原处
改正程序中的错误
6. 在VIM编辑器中使用":make"就可以编译程序,当然其前提是在当前目录下有Makefile文件。运行完":make"之后,如果程序中有错误,就会显示出来。此时,光标会自动指向第一个出现错误的地方,而且你还可以看到错误的提示。
其他命令:
> ":cl" 列出错误
> ":cn" 跳到下一个错误
> ":cp" 跳到上一个错误
> ":cnew" 跳到第一个错误
提示:
通过设置"errorformat"的值,可以让VIM识别出编译器(非gcc)的出错提示。
"errorformat"的值是一个字符串,它的格式和C语言的scanf的字符串格式相似。
gcc的"errorformat"的值为:%f:%l:"%m。其中"%f"表示文件名,"%l"表示行号,"%m"表示出错信息。
用":h errorformat"查看详细的帮助信息。
用":h quickfix"、":h make"、":h makeprg"、":h errorfile"查看其它的信息。
10. 使用命令定位
vim -t [需要定位的名称]
在vim内部,命令模式下,执行 :ta [函数名] 。可以跳转到函数定义出。
注:
如果有多处匹配,可以在命令模式下,用下面的命令来操作:
可用:tfirst跳转到第一个匹配,:tlast跳转到最后一个匹配,:tprevious跳转到前一个匹配,:tnext跳转到下一个匹配,:tselect选择要跳转的匹配。
6.常用命令助记
 ta[g] $tag+TAB
 tf[irst]
 tr[ewind]与tfirst等价
 tl[ast]
 number+tp[revious]
 number+tn[ext]
 number+tN[ext]与tprevious等价
 ts[elect] $tag
 tj[ump] $tag与tselect相似,但当只有一个匹配时,直接跳转到定义。
 sts[elect] $tag与tselect相似,但是会在新建水平分割窗口是显示所选的tag的定义。
 stj[ump] $tag是tj与sts相结合的产物
g CTRL+] 与tjump等价
下面这些命令与上面类似,但是都是在预览(preview)窗口中显示tag定义。
 pt[ag] $tag+TAB
 ptf[irst]
 ptr[ewind]与ptfirst等价
 ptl[ast]
 number+ptp[revious]
 number+ptn[ext]
 number+ptN[ext]
[[ 转到上一个位于第一列的"{"
]]  转到下一个位于第一列的"{"
{   转到上一个空行
}   转到下一个空行
gd 转到当前光标所指的局部变量的定义
ctrl+] 跳转到函数或者类或者变量的定义,Ctrl-o或者Ctrl-t回退到原来的地方。
*   转到当前光标所指的单词下一次出现的地方
#   转到当前光标所指的单词上一次出现的地方
% 匹配当前光标指向的符号(小括号、中括号和大括号)
VIM支持语法制导和自动缩进
VIM会根据文件的后缀名,如:*.c、*.cpp、*.cc,等,自动设置语法制导(Syntax Highlighting)。C/C++中的一些保留字,如:if、for、include,等等,就会有不同的颜色,这样就会减少程序员犯错的可能,阅读程序的时候相对来说也轻松很多。用下面这些命令在VIM中查看有关语法制导的帮助:“:h syntax”、“:h syn-qstart”、“:h syntax-printing”。
VIM也支持根据GNU的风格自动缩进,这样程序员编写出来的代码就更易阅读,而且也有利于培养好的编程风格。用下面这些命令在VIM中查看有关自动缩进的帮助:“:h cindent”、“:h cinoptions”、“:h cinoptions-values”、“:h cinkeys”、“:h cinwords”。
使用Ctags
配VIM,使其能一键编译单文件源码程序.
 在.vimrc文件添加如下函数:
点击(此处)折叠或打开 
nmap <F4> :call DoOneFileMake()<CR>
function DoOneFileMake()
     if(expand("%:p:h")!=getcwd())
         echohl WarningMsg | echo "Fail to make! This file is not in the current dir! Press redirect to the dir of this file."
     endif
exec "w"
     call SetCompilation()
     exec "make"
     exec "copen"
 endfunction
SetCompilation()
     if &filetype=='c'    
         set makeprg=gcc\ %\ -o\ %<
     elseif &filetype=='cpp'
         set makeprg=g++ \ %\ -o\ %<根据不同
     endif
 endfunction 
第1行:表示映射快捷键F4,即按F4则调用这个一键编译的函数.
第3-5行:判断这个文件是否在当前文件夹.
第7行:相当于执行命令w
第8行:调用函数SetCompilation(),用来设置编译器或者说设定编译命令.
第9行:执行make命令
 第10行:打开quickfix窗口,用于显示编译产生的错误.
 第13-19行:根据不同的文件类型,来配置makeprg,也就是make命令调用的编译器或编译命令.
 第14行:判断当前的文件类型是否是C 程序.
 第15行:设定make命令所调用的编译命令.
 说明:这样来设定的好处就是编译产生的错误可以直接在\quickfix窗口中显示出来.
 第16-17行,分析同14-15行.
vim阅读c++代码的快捷键的更多相关文章
- 使用VIM插件ctags来阅读C代码
		
说明 Ctags是vim下方便代码阅读的工具.尽管ctags也可以支持其它编辑器,但是它正式支持的只有vim.并且vim中已经默认安装ctags,它可以帮助程序员很容易地浏览源代码:ctags最先是用 ...
 - 使用SftpDrive+SourceInsight阅读开源代码
		
在虚拟机环境下使用Linux编写和阅读代码,我之前一直是通过Xshell利用ssh登录至虚拟机从而在命令行下使用vim来进行的.目前有阅读开源代码的需要,虽然vim+ctags+cscope可以完成这 ...
 - C# 展开和折叠代码的快捷键(总结)
		
C# 展开和折叠代码的快捷键 VS2005代码编辑器的展开和折叠代码确实很方便和实用.以下是展开代码和折叠代码所用到的快捷键,很常用: Ctrl + M + O: 折叠所有方法 Ctrl + M + ...
 - C# 展开和折叠代码的快捷键
		
C# 展开和折叠代码的快捷键 VS2005代码编辑器的展开和折叠代码确实很方便和实用.以下是展开代码和折叠代码所用到的快捷键,很常用: Ctrl + M + O: 折叠所有方法 Ctrl + M + ...
 - vim的几种模式&快捷键
		
vim的几种模式&快捷键 2017年01月01日 14:05:24 阅读数:3060 一.vim的模式 基本上vim可以分为三种模式:命令模式,插入模式和底行模式,其实vim有多种模式,我们只 ...
 - XCODE多行代码缩进快捷键
		
转自:http://xiagudao.com/xcode多行代码缩进快捷键 在XCODE中无法使用TAB键对多行代码进行缩进.想多行缩进,选中需要缩进的代码使用快捷键command(花键)+] 即可右 ...
 - VS2010 代码自动对齐 快捷键
		
VS2010 代码自动对齐 快捷键 先全选代码 ctrl+K+F MATLAB代码自动对齐 快捷键 先全选代码 ctrl+I
 - vs code代码对齐快捷键
		
vscode缩进快捷键: 选中文本: Ctrl + [ 和 Ctrl + ] 实现文本的向左移动或者向右移动: vscode代码对齐快捷键: 选中文本: Shift + ...
 - Visual Studio不显示智能提示代码,快捷键Alt+→也不出现
		
最近安装了Dev Express的控件,我的vs2017 Enterprise版的环境,智能提示补全代码的快捷键功能,好像被修改了,不能使用了. 我原来的时候,比如在代码中输入如下代码: Consol ...
 
随机推荐
- java 常用基本数据类型的默认值
			
在使用基本数据类型作为类成员的时候,有时只初始化了而没有给变量赋值,那么此时,java会给你的变量赋一个默认初始值. boolean false char '/ ...
 - SDUT 2352	Run Length Encoding
			
点我看题目 题意 :将给定的字符串编码,编码的规则根据两条,1.如果字符串里有连续相等的字符,就变为两个字符,一个是这些连续相同的字符的个数,另一个是这个字符,但是如果数量超过了9个,那就输出9再输出 ...
 - [cocos2d]cocos2d 2.1与ios 6.0
			
最近把xcode升级到4.5了,ios也编程6.0 mark一下需要修改的地方(针对于cocos2d 2.1版本),虽然都是warning,但是对于强迫症患者来说无法忍受啊~ 修改一 libs-Coc ...
 - C#利用NPOI生成具有精确列宽行高的Excel文件
			
前言 NPOI是操作Excel的神器,导出导入快如闪电, 但是SetColumnWidth函数个人感觉不会用,怎么弄都无法控制好,因为他是以字符数量去设置宽度,实际上Excel列宽还有个像素的概念,更 ...
 - ☀【jQuery插件】DOM 延迟渲染
			
test.html <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset=&q ...
 - 论游戏中Buff的实现 [转]
			
论游戏中Buff的实现 分类: C/C++ 游戏开发2012-09-13 14:30 574人阅读 评论(6) 收藏 举报 c++游戏开发 源地址:http://blog.codingnow.com/ ...
 - Devexpress之dxErrorProvider
			
DXErrorProvider:错误提示控件,用法类似于VS的winform控件中的ErrorProvider. 下面为一个使用实例,验证文本框输入是否为数字: ①.添加System.Text.Reg ...
 - 用vmware安装gho文件
			
方法1:diskgenius+ghostexp 用vm新建一个空白硬盘虚拟机, 记住虚拟机文件的存储位置, 最好将默认的scsi硬盘移除另外新建ide的硬盘(否则可能开机蓝屏),然后用host机DIS ...
 - HDOJ/HDU 1015 Safecracker(枚举、暴力)
			
Problem Description === Op tech briefing, 2002/11/02 06:42 CST === "The item is locked in a Kle ...
 - HDOJ/HDU 1256 画8(绞下思维~水题)
			
Problem Description 谁画8画的好,画的快,今后就发的快,学业发达,事业发达,祝大家发,发,发. Input 输入的第一行为一个整数N,表示后面有N组数据. 每组数据中有一个字符和一 ...