vimer网站推荐:
1. http://www.vim.org
2. http://www.vimer.cn/
1.keyboard macro
1.1>背景:
今天在网上看了一段关于linux链表的程序,觉得不错想在虚拟机上编译下,看看效果但是把程序拷贝到虚拟机中的Gvim中发现每行前面都有一个行号。
怎么去掉这个行号?
一个一个删除?还是写个小程序解析每行删除行号?这两个方法都可以,但是当在gvim中执行下面的命令后,我们就会情不自禁的感叹Gvim的强大!!
<代码示例>
1 #include <linux/module.h> 2 #include <linux/init.h> ... ... ... ... //中间的代码省略 75 module_init(list_head_init); 76 module_exit(list_head_exit); 771.2>命令:
总共77行,手动删除也用不了太长时间,但是如果程序上万行呢?只能写个小程序完成了吗?下面我们试试这样的操作:
++在命令模式下,把光标放到第一行任意一个字符上;
++敲如下命令 qa^2xjq
++再敲命令 77@a
我们会惊奇的发现前面两位数字的行号消失了,呵呵~ Gvim就这么强大,事情就这么简单
1.3>分析:
==>q是Gvim的Keyboard macro命令
==>a就是这个宏的名字,我们还可以用其他的英文字母
==>^表示把光标移动到本行的第一个非blank的字符上(blank字符可以理解成不可显示的字符,如空格,TAB,回车,换行等)
==>2x表示删除两个字符
==>j表示把光标移动到下一行
==>最后的q表示这个Keyboard macro a记录完毕
==>@a表示实行这个宏a一次,那么77@a就是执行77次了
如此一来,多余的行号就删除了,呵呵~
其实keyboard macro的用处还有很多,作用就是把多个命令(如:^2xj)组织成一个宏(如:a)来使用,
我理解就是针对多行相同的处理比较适用
//
2.vim中的书签(mark)
在一般模式下键入ma,就可使在光标处设置书签a,vim支持最多26个书签,即a~z
去书签a的方法有两种
1> `a 这个是到设置书签的光标处
2> 'a 这个是到设置书签的行首
这种操作设置的书签只会在本文件中适用,每个文件的buffer都会保存自己文件的书签,
如果适用大写的字母作为书签名字的话,这个书签就是全局的,在任意文件都能适用。
3.文件跳转 gf
在一般模式下,把光标放到一个文件名上,键入gf, 就可以跳转到相应的文件,键入ctrl + o, 就可以返回
4.我们知道在普通模式下,键v,可以进入visual模式,再适用光标就可以按行选择文本,
如果在普通模式下,使用ctrl+v,就是可以按列选择文本很方便,就像UE下的列快模式
5.字数统计
在一般模式下键 g ctrl g
6. 光标在一个关键字上,键shift+k,能启动man
我还搜集了一些很好看的blog:
http://blog.csdn.net/jeffreyst/article/details/7918950