Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 操作系统 > Linux > Best of VIM Tips(译注) - 连载7 替换(a)
【标  题】:Best of VIM Tips(译注) - 连载7 替换(a)
【关键字】:Best,of,VIM,Tips
【来  源】:http://blog.csdn.net/easwy/archive/2007/04/16/1566838.aspx

Best of VIM Tips(译注) - 连载7 替换(a)

Your Ad Here

[翻译]

" substitution

"替换

:%s/fred/joe/igc            : general substitute command

                            普通替换命令

[注解]

                                                                                                    :help :s

                                                                                                    :help :s_flags

                                                                                                    :help 10.3

将文件中所有的fred替换为joe,替换时忽略fred的大小写,一行中有多个匹配时,对每一个都进行替换,替换前提示。

这是最简单的替换命令,需要了解:s命令的标志位,例如“i”代表忽略大小写,“g”代表对行内所有匹配都做替换,“c”代表替换前提示。

%”字符表示在文件范围内进行替换,它相当于“1,$”,即从第一行替换到最后一行。

 

[翻译]

:%s//joe/igc                : Substitute what you last searched for *N*

                            替换你最后查找的内容

 [注解]

当“:s”命令中的查找模式字串为空时,会使用你最后一次使用查找命令所查找的字符串作为查找模式字串,也就是说,会替换你最后一次查找的内容。查找的内容可以是你使用“/”或“?”命令所查找的,也可以是上一次“:s”命令的查找模式,或者是“:global”命令的查找模式。

上面的命令是把你最后一次查找的内容,替换为joe

 

[翻译]

:%s/~/sue/igc               : Substitute your last replacement string for *N*

                            替换你最后替换的字符串

[注解]

                                                                                                    :help /~

当“:s”命令中的查找模式字串为“~”时,会替换你最后替换的字符串。例如,上次你执行了“:%s/abc/joe/igc”命令,那么上面的命令相当于“:%s/joe/sue/igc”。

 

[翻译]

:%s/\r//g                   : Delete DOS returns ^M

                            删除 DOS 回车符 ^M

[注解]

                                                                                                    :help /\r

有时打开DOS文件时,会发现第行结尾都有一个^M,这么命令就是用来删除^M的。

 

 

[翻译]

" Is your Text File jumbled onto one line? use following

"你的文本文件是否乱七八糟的排成一行?使用如下命令

:%s/\r/\r/g                 : Turn DOS returns ^M into real returns

                            转换 DOS 回车符 ^M 为真正的回车符

[注解]

                                                                                                    :help /\n

我用VIM打开文件时还没遇到过所有内容排成一行的情况。

这条命令怀疑是作者笔误,会不会应该是“:%s/\r/\n/g”,待确认。

 

[翻译]

:%s=  *$==                  : delete end of line blanks

                            删除行尾空格

:%s= \+$==                  : Same thing

                            同上

[注解]

                                                                                                    :help /$

                                                                                                    :help E146

这两条命令用来删除行尾空格,其中“$”匹配行尾换行符。

这两条命令有一个特殊之处,它们没用常见的“/”字符作为“:s”命令各个参数的分隔符,而是使用了“=”字符。这种用法在查找或替换的内容中包含“/”字符时非常有用。

 

[翻译]

:%s#\s*\r\?$##              : Clean both trailing spaces AND DOS returns

                            删除行尾空格和 DOS 回车符

:%s#\s*\r*$##               : same thing

                            同上

[注解]

                                                                                                    :help /\?

这两条命令用来删除行尾的空格以及DOS回车符,和上面的技巧一样,它也没有使用“/”字符作为“:s”命令各个参数的分隔符,而是使用了“#”字符。

这两条命令还使用了“\?”正则表达式,它匹配它前面出现的字符0次或1次。

 

[翻译]

" deleting empty lines

" 删除空行

:%s/^\n\{3}//               : delete blocks of 3 empty lines

                            删除三行空行

[注解]

                                                                                                    :help /\n

不再赘述。

 

[翻译]

:%s/^\n\+/\r/               : compressing empty lines

                            压缩多行空行为一行

[注解]

不再赘述。

 

[翻译]

:%s#<[^>]\+>##g             : delete html tags, leave text (non-greedy)

                            删除html标记,只保留文字 (非贪婪模式)

[注解]

不再赘述。

所谓贪婪模式,是指像“*”、“\+”这类元字符,它们在匹配时,总是尽可能多的匹配,就像一条贪吃蛇,总想多吃,:-)

如果在匹配时尽可能少的匹配,则称为非贪婪模式。

个人感觉上面的正则表达式,应该为贪婪模式。

 

[翻译]

:%s#<\_.\{-1,}>##g          : delete html tags possibly multi-line (non-greedy)

                            删除可能跨多行的html标记 (非贪婪模式)

[注解]

不再赘述。

 

[参考文档]

1. http://www.rayninfo.co.uk/vimtips.html

2. http://groups.google.com/group/Vim-cn/msg/f72fba0645955101?

3. VIM帮助文件

4. http://vimcdoc.sourceforge.net/

 

[尾记]

本文可以自由应用于非商业用途。转载请注明出处。

原文链接:http://blog.csdn.net/easwy

 

HP-UX:Route 添加启动静态路由:【上一篇】
Linux下Oracle9i安装的特殊事项:【下一篇】
【相关文章】
  • gvim 出现 cannot register application object 错误信息的解决方法
  • Microsoft Windows DNS Service RPC Stack Overflow Lets Remote Users Execute Arbitrary Code
  • Microsoft Windows DNS RPC Buffer Overflow
  • .net 2005 环境下,写Microsoft Outlook的Add-in的注意事项
  • potential Security of PHP COM function
  • OFBIZ开源电子商务学习心得
  • 解决ssh远程登录unix服务器时vi/vim的方向键在编辑模式不能用的问题
  • Game Of Life
  • 如何到使用 MFC 来创建 MicrosoftExcel 图表
  • Microsoft ASP.NET 快速入门教程的大纲介绍(一个值得推荐的.net网站也可以说是.net资料库)
  • 【随机文章】
  • Windows文本框星号密码查看器
  • 微软下一代系统Longhorn取消关机概念
  • uniqueidentifier 数据类型
  • Ultradev专题动态包括文本文件(2)动态导航
  • 一个简单的BBS灌水机(perl版)
  • Linux 常用命令(备份与压缩)
  • 由FUSION MPT追到老巢
  • tar很大,好几百M,而我只需要里面的一个文件。不想解开再删除
  • 揭开ASP神秘面纱(3)
  • OSPF 区域间的路由计算
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.