`
insertyou
  • 浏览: 918970 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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

阅读更多

[翻译]

" 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/\r/\r/g”看起来比较奇怪,但确实会工作。因为我从未遇到过VIM中内容排成一行的情况,因此没有实验。有兴趣的可以试一下。

[翻译]

:%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标记,只保留文字 (非贪婪模式)

[注解]

不再赘述。

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

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

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


作者说“[^>]”一定是非贪婪的,思考一下确实应该如此。因为“[^>]”表示匹配“>”以外的任意字符,也就是说,只要遇到一个“>”匹配就结束了,不会出现匹配多个“>”的情况。如果上面的正则式写为“<.\+>”的话,就会是贪婪模式了,例如,它会匹配整个“<test1> <test2>

[翻译]

:%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

分享到:
评论

相关推荐

    VMware-VIM-all-6.7.0-15976714.txt

    VMware-VIM-all-6.7.0-15976714 原版镜像 .................................................................................................................

    VMware-VIM-all-6.5.0-14020092.txt

    vmware vcenter6.5 for windows版本。 VMware-VIM-all-6.5.0-14020092

    vim-common-7.4.629-7.el7.x86_64.rpm

    vim-common-7.4.629-7.el7.x86_64.rpm

    vim键盘图(vi-vim-cheat-sheet)

    vim键盘图 . 键盘布局彩图(打出来参考,很方便) vi-vim-cheat-sheet.gif vi-vim-tutorial-1.gif vi-vim-tutorial-2.gif vi-vim-tutorial-3.gif vi-vim-tutorial-4.gif vi-vim-tutorial-5.gif...vi-vim-tutorial-7.gif

    vim8.0.zip --Linux-CentOS7离线安装VIM及相关依赖包

    vim-8.0.zip gpm-libs-1.20.7-6.el7.i686.rpm ncurses-5.9-14.20130511.el7_4.x86_64.rpm ncurses-base-5.9-14.20130511.el7_4.noarch.rpm ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm ncurses-libs-5.9-14....

    vim-powerline-develop

    **vim-powerline-develop** 是一个针对 Vim 编辑器的扩展插件,它属于 Vim 插件中的 **powerline** 家族。Powerline 是一个非常流行的增强型状态栏插件,它为 Vim、Emacs 和其他软件提供了一个美观、信息丰富的状态...

    vim-tmux-focus-events, 使终端vim和tmux更好地协同工作.zip

    vim-tmux-focus-events, 使终端vim和tmux更好地协同工作 tmux-focus-events.vimFocusGained 和 FocusLost 自动命令事件在终端vim中不工作。 这个插件在使用vim内部Tmux时恢复它们。以下是相关内容:vim fugitive插件...

    Atom-atom-vim-mode-plus,vim.zip

    Atom-atom-vim-mode-plus是针对Atom文本编辑器的一个扩展插件,主要目的是增强其内置的VIM编辑模式。VIM(Vi Improved)是一种高度可配置的文本编辑器,以其高效的操作方式和丰富的命令集而闻名。在Atom中,VIM模式...

    VMware-VIM-all-6.7.0-9451876.txt

    VMware vSphere 6.7 百度网盘链接及提取 码

    vim-for-server, .vimrc, 简单配置服务器,不带插件.zip

    vim-for-server, .vimrc, 简单配置服务器,不带插件 vim-for-servervimrc,简单配置服务器,不带插件。简介这个存储库是 k-vim的简化版本。只删除所有插件,保留基本配置。屏幕截图 安装 。 如果有必要,备份旧的. ...

    Best+of+VIM+Tips(译注).pdf

    以上就是对文件《Best+of+VIM+Tips(译注).pdf》中的VIM编辑器相关知识点的总结。VIM提供的这些替换命令和操作技巧可以大幅提高文本处理的效率,是学习VIM编辑器时需要掌握的重要内容。在实际使用中,合理运用这些...

    vim-enhanced-7.4.629-8.el7_9.x86_64.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    VMware-VIMSetup-all-5.5.0-1312299

    根据提供的文件信息,我们可以推断出这份资料与VMware vCenter Infrastructure Manager (VIM) Setup 5.5.0版本有关。尽管描述部分没有提供太多技术细节,但从标题和其他信息中,我们可以提炼出一系列与VMware ...

    vim-atom-dark, 一个由 Atom 黑暗主题默认启发的vim主题.zip

    vim-atom-dark, 一个由 Atom 黑暗主题默认启发的vim主题 vim-atom-dark一个由 Atom 黑暗主题默认启发的vim主题。 在 .vim 文件夹中克隆这个文件或者将 colors/atom-dark.vim 文件放在 colors/ 中。

    vim-minimal-8.0.1763-16.el8.x86_64.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    vim7.4版本rpm

    vim-common-7.4.629-8.el7_9.x86_64.rpm vim-enhanced-7.4.629-8.el7_9.x86_64.rpm vim-filesystem-7.4.629-8.el7_9.x86_64.rpm vim-minimal-7.4.160-5.el7.x86_64.rpm

    vim-filesystem-7.4.629-7.el7.x86_64.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    vim-markdown-toc, 用于生成 Markdown 文件目录的vim 7.4 插件.zip

    vim-markdown-toc, 用于生成 Markdown 文件目录的vim 7.4 插件 vim-markdown-toc用于生成 Markdown 文件目录的vim 7.4 插件。中文版使用指南目录特性安装工具使用情况生成内容目录。更新现有目录删除目录选项屏幕...

    vim-minimal-7.4.160-5.el7.x86_64.rpm

    离线安装包,亲测可用

Global site tag (gtag.js) - Google Analytics