vim技巧专题

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);
77  
1.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



你可能感兴趣的:(vim技巧专题)