Vim小技巧(2)

今天介绍一点vim的东西,vim的几种模式之前介绍过,这里主要针对的是命令行模式。介绍下vim的正则表达式,点.表示任意字符,*表示数目在零个或者以上,反斜线\是转义字符,一些特别的字符比如说.可以用\.来表示,就表示真的只是一个点,而\/表示的是/,还有比如说\*表示的是真正的*,\s表示的是空格。

\d匹配的是数字,\l匹配的是字母;^表示的是行头,$表示的是行尾。

命令行模式的几种用法:在normal模式中输入/test表示查找文件中的test字符;按n向下搜索,按N向上搜索,也可以用?test来查找test字符;用匹配的方式可以用比如说/\l\l\l\l\d\d这种来匹配,表示连续的四个字母和两个数字组合;

还有一种是替换模式:n1,n2s/test/TEST/flag这种表示方式;n1,n2为行号,可以将两个用%代替表示全文,s在这里是查找替换的意思;test是要查找的字符串,TEST是要替换成的字符串;flag可以不加,不加的话表示只替换每行中的第一个,有两个可以供选择的flag,g表示这一行中符合test的都要被替换成TEST,c表示替换之前要进行确认;在Visual模式下面选中内容,按:就会出现:<,>,按s/test/TEST就可以对选中的内容进行替换了;替换的时候可以用正则表达式,就是上面说的那些;比如下面这个例子:

Abcdefg 1234 hefdkz这个可以看成三部分,前一部分是字母,中间空格,然后数字,然后是空格和字母串,这里要实现的功能是将前面的字母和后面的字母部分进行替换,最前面的那个字母要大写;然后下面是表达式,假设这一行是第三行则为:3s;\(\l\)\(\S*\)\s*\(\d*\)\s*\(\l\)\(\S*\);\u\4\5 \3 \u\1\2;这个;

这里采用\(匹配内容\)这种方式可以在替换的时候后面调用,按顺序分别对应\1,\2,\3…;然后\u表示改变大小写,这里的\S匹配非空格,*表示0个和以上;针对具体个数的可以采用\{number\}的方式,比如说匹配四个空格为\s\{4\}这样。然后还有一些常用的比如说在选定行行首加入//来注释这些行,可以选定这些行,比如这样1,50s;^;//;就表示把行首用//替代了,也就相当于注释了,然后之前说的替换模式的s/和/flag以及中间的/可以用一些其他的字符来代替,有时候用/可能会出现vim无法确定意思的情况,这个时候可以用@,#,;,:等来替换。

来由一些来匹配行的,比如说匹配到nand的行删掉,可以用g/nand/d表示只要是文章中有nand的行都要被删掉。Vim的用法很多很多,之后还会在介绍一些其他的用法,这里不再赘述。附一张表。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。 启动vim 在命令...
    im蚂蚁阅读 30,945评论 3 48
  • 基础命令 主要的命令和快捷键 Linux系统命令由三部分组成:cmd + [options]+[operation...
    485b1aca799e阅读 4,786评论 0 0
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,953评论 9 468
  • 转载一篇高质量博文,原地址请戳这里转载下来方便今后查看。1 背景不能只分析源码呀,分析的同时也要整理归纳基础知识,...
    Elder阅读 5,924评论 0 24
  • 大家好!我是“神奇八班”的班长师兄! 自律、厚重、历练、油诗,是肥强师兄的标签!自收归于淼神678期麾下,寒来暑...
    肥强师兄阅读 1,833评论 0 0