安装插件
有个很好的同志已经做了一个比较全的插件集,下载就可以用:
mv ~/.vimrc ~/.vimrcbak
mv ~/.vim ~/.vimbak
git clone https://github.com/handy1989/vim.git
mv vim/.vimrc vim/.vim ~/

查找,替换:

:1,%s/strfind/strreplace/gn 查找个数

:1,%s/strfind/strreplace/g 替换

跟踪函数:

ctrl + ], 返回 ctrl + t

上下翻查看过的位置:

ctrl + o 上次光标停留位置, ctrl + i 下一个光标停留位置

全局查找:

vimgrep /strfind/g *.cpp

打开,关闭目录:

ctrl +n 或者:NERDTree NERDTreeclose

上下进行选择,ctrl + o打开一个文件

打开文件中函数列表:

ctrl + a 前提是要安装对应的插件

vim的分屏功能

打开当前文件:ctrl+w,mac中则是ctrl + shift + w,, s横屏,v竖屏

打开某文件::sp filename ,:vsp filename

创建新文件:new

调整窗口大小:vertical resize +10, resize +10 分别为横向和竖着加宽。

折叠方法:

zf%开始折叠,自动匹配到{或者},za打开折叠。

多行注释

vim中多行注释 和 删除多行注释 -------------------------------------------------------------------------------
1.多行注释: a. 按下Ctrl + v,进入列模式; b. 在行首选择需要注释的行; c. 按下“I”,进入插入模式;
d. 然后输入注释符(“//”、“#”等); e. 按下“Esc”键。
2.删除多行注释: a. 按下Ctrl + v, 进入列模式; b. 选定要取消的注释符; c. 按下“x”或者“d”. 

快速注释:

描述:
目前为止已经定义了5个用途:
1. 快速生成许可注释,并且标签可以被修改;
2. 快速生成作者声明框架,标签可修改;
3. 快速为C/C++、Python函数或者类生成注释框架,此框架包含的元素有:@brief, @param(为每一个参数生成一个@param)和@return。标签文本和注释块的头和尾都可以修改(因此,你可以有自己的简介,如果你原义,加上一点成就);
忽 略在#ifdef...#endif(C/C++)块中代码碎片。给块命名的时候一定要考虑到其功能。在所有文件中,所有有联系的块将会放在一个新的块 DOX_SKIP_BLOCK(或者用户定义的名称)。你需要使用当前的新块名更新你的doxygen配置文件中的PREDEFINED变量。而且你还需 要将ENABLE_PREPROCESSING设置为YES。
4. 快速生成一个注释集(开始或者结尾),标签可修改;
使用:
4.1 注释类型(C/C++/// 或者, Python:##和#):
在vim中,默认C++注释为,但是如果你更喜欢使用///,只需要在你的配置文件.vimrc中添加如下语句:
let g:DoxygenToolkit_commentType="C++"。
 
4.2 许可:
在vim中,将光标放在将要写doxygen许可注释的那一行,然后,执行命令:DoxLic。这将会生成许可注释并将光标放置在刚才那一行之后。
 
4.3 作者: 
在vim中,将光标放在想要添加doxygen作者注释的地方。然后执行命令:DoxAuthor。这将会生成一个框架,如果没有为其设置变量则将光标放置在@author标签之后,或者放在在框架之后。
 
4.4 函数/类注释:
在vim中,将光标放置在函数头部那一行(或者函数的返回变量)或者类。然后执行命令:Dox。这将生成框架并且将光标放置在@brief标签后。
 
4.5 忽略代码片段(只有C/C++):
在vim中,如果你想要忽略所有在块中的代码片段,类似:           #ifdef DEBUG ... #endif你只需要执行以下命令:DoxUndoc(DEBUG)!
 
4.6 组:
在vim中,执行命令:DoxBlock在后面的行中插入一个doxygen块。

 
限制:
1. 假设函数名(后面的左括号)至少在当前光标位置后的第三行;
2. 在注释块在写入之前不能再次更新;
3. 块分隔符(头部和尾部)只包含函数注释;
4. 假设已经使用了缩进;
5. 函数参数中得到注释还不支持;(像void foo(int bar ))
6. 定制输出脚本,在脚本文件中,在.vimrc中设置g: DoxygenToolkit_*变量:
举例说明,在我的.vimrc中包含:
let g:DoxygenToolkit_briefTag_pre="@Synopsis  " 
let g:DoxygenToolkit_paramTag_pre="@Param " 
let g:DoxygenToolkit_returnTag="@Returns   " 
let g:DoxygenToolkit_blockHeader="--------------------------------------------------------------------------" 
let g:DoxygenToolkit_blockFooter="----------------------------------------------------------------------------" 
let g:DoxygenToolkit_authorName="Mathias Lorente" 
let g:DoxygenToolkit_licenseTag="My own license"   <-- !!! Does not end with "\<enter>"
 
安装细节:
将DoxygenToolkit.vim拷贝至 '~/.vim/plugin' 目录
 

vim技巧记录的更多相关文章

  1. vim技巧记录底行模式的使用(1)

    若正在编辑文件,临时须要查看目录: (1)直接在底行模式下使用ls命令,完整的为:!ls 在我这里就显示如下的结果: functionpointer    helloWorld.s       tes ...

  2. vim 使用技巧记录

    vim 使用技巧记录 1.批量注释与取消注释 命令格式:起始行号,结束行号s#^#//#g 例如: 注释代码3到15行,"//"可以是其他的"" :3,15s# ...

  3. 最佳vim技巧

    最佳vim技巧----------------------------------------# 信息来源----------------------------------------www.vim ...

  4. vimcommandfilepatchcmdfold VIM技巧之分隔窗口 一级精华

    VIM技巧之分隔窗口 分类: 技术2010-07-08 09:57 754人阅读 评论(1) 收藏 举报   同时显示两个不同的文件, 或者同时查看同一个文件的两个不同位置, 或者是同步显示两个文件的 ...

  5. VIM技巧(2)-删除匹配行

    VIM技巧(2)-删除匹配行 代码如下: * @Company:中国股份有限公司 * @author ymzhao (也有zyyang的) * @Date: Jan 22, 2014 11:25:29 ...

  6. VIM技巧(1)

    VIM技巧(1) 替换 36s/^\(.* = \)entity.\(.*\)$/\1this.GetShowName("\2",\2); 删除空行 %g/^$/d %g/^\s* ...

  7. vim技巧:折叠快捷键

    vim技巧:折叠快捷键 以前用的挺熟的,一段时间不用了,快捷键又忘了,不得不重新再看手册,今天专门整理一下,以后查找起来也比较方便. zc 折叠,只折叠最外层的折叠zC 对所在范围内所有嵌套的折叠点进 ...

  8. vim技巧4 删除/保留文本中匹配行

    vim技巧:如何删除/保留文本中特定的行呢? <ol><a href="/ss/ss/www"> show invisibles</a> < ...

  9. Vim技巧之四大模式_普通模式

    Vim技巧之四大模式_普通模式 一见不钟情的普通模式 普通模式以下的强悍操作 什么是操作符 什么是动作命令 误操作怎么办 那种操作更划算 普通模式下的神奇大招 Vim技巧之四大模式_普通模式 众所周知 ...

随机推荐

  1. Runtime.getRuntime().exec()需要注意的地方

    文章出处http://www.cnblogs.com/fclbky/p/6112180.html 有时候我们可能需要调用系统外部的某个程序,此时就可以用Runtime.getRuntime().exe ...

  2. Java并发(6):concurrent包中的Copy-On-Write容器

    一. concurrent包介绍 在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完成代码实现,而当针对高质量Java多线程并发程序设计时,为防止死蹦等现象的出现,比如使用java ...

  3. Node.js API学习笔记(一)

    此文章已经发表于本人博客. Terminal(终端) 说起这个使用过linux系统的兄台一般都会知道的,本人理解:类似Putty这些ssh工具通过 软件来实现远程控制主机,对于我们使用者来说,它会显示 ...

  4. Maven实战--- dependencies与dependencyManagement的区别

    在上一个项目中遇到一些jar包冲突的问题,之后还有很多人分不清楚dependencies与dependencyManagement的区别,本篇文章将这些区别总结下来. 1.DepencyManagem ...

  5. MySQL-5.7设置InnoDB表数据文件存储位置

    1.表空间 Innodb存储引擎可将所有数据存放于ibdata*的共享表空间,也可将每张表存放于独立的.ibd文件的独立表空间. 共享表空间以及独立表空间都是针对数据的存储方式而言的. 共享表空间: ...

  6. iOS 那些年我们遇到的坑

    1坑: UITableView的第一个Cell下移

  7. centos 6的LAMP一键安装包(可选择/升级版本)

    安装步骤 事前准备(安装 wget.screen.unzip,创建 screen 会话) yum -y install wget screen git git clone 并赋予脚本执行权限 git ...

  8. CentOS 7安装Xfce和VNC

    很多VPS商提供的CentOS 7镜像只有最小化安装,这样就只能在命令行下操作,如果要调试代码的话,还是图形化界面方便,而且CentOS自带的Gnome和KDE都比较占内存.启动桌面后就占用了400M ...

  9. [POI2009]Lyz

    Description 初始时滑冰俱乐部有1到n号的溜冰鞋各k双.已知x号脚的人可以穿x到x+d的溜冰鞋. 有m次操作,每次包含两个数ri,xi代表来了xi个ri号脚的人.xi为负,则代表走了这么多人 ...

  10. 如何理解Hibernate的延迟加载机制?在实际应用中,延迟加载与Session关闭的矛盾是如何处理的?

    延迟加载就是并不是在读取的时候就把数据加载进来,而是等到使用时再加载.Hibernate使用了虚拟代理机制实现延迟加载,我们使用Session的load()方法加载数据或者一对多关联映射在使用延迟加载 ...