VIM 替换(转)

VIM中常用的替换模式总结。

0,:g/null/d

找到null的行并且删掉

1,简单替换表达式

替换命令可以在全文中用一个单词替换另一个单词:

:%s/four/4/g

“%” 范围前缀表示在所有行中执行替换。最后的 “g” 标记表示替换行中的所有匹配点。如果仅仅对当前行进行操作,那么只要去掉%即可

    如果你有一个象 “thirtyfour” 这样的单词,上面的命令会出错。这种情况下,这个单词会被替换成”thirty4″。要解决这个问题,用 “\<” 来指定匹配单词开头:

         :%s/\<four/4/g

显然,这样在处理 “fourty” 的时候还是会出错。用 “\>” 来解决这个问题:

         :%s/\<four\>/4/g

如果你在编码,你可能只想替换注释中的 “four”,而保留代码中的。由于这很难指定,可以在替换命令中加一个 “c” 标记,这样,Vim 会在每次替换前提示你:

         :%s/\<four\>/4/gc

2,删除多余的空格

要删除这些每行后面多余的空格,可以执行如下命令:

         :%s/\s\+$//

命令前面指明范围是 “%”,所以这会作用于整个文件。”substitute” 命令的匹配模式是

“\s\+$”。这表示行末($)前的一个或者多个(\+)空格(\s)。替换命令的 “to” 部分是空的:”//”。这样就会删除那些匹配的空白字符。

3,匹配重复性模式

星号项 “*” 规定在它前面的项可以重复任意次。因此:

         /a*

匹配 “a”,”aa”,”aaa”,等等。但也匹配 “” (空字串),因为零次也包含在内。星号 “*” 仅仅应用于那个紧邻在它前面的项。因此 “ab*” 匹配 “a”,”ab”,”abb”,”abbb”,等等。如要多次重复整个字符串,那么该字符串必须被组成一个项。组成一项的方法就是在它前面加 “\(”,后面加 “\)”。因此这个命令:

         /\(ab\)*

匹配: “ab”,”abab”,”ababab”,等等。而且也匹配 “”。

要避免匹配空字串,使用 “\+”。这表示前面一项可以被匹配一次或多次。

         /ab\+

匹配 “ab”,”abb”,”abbb”,等等。它不匹配 后面没有跟随 “b” 的 “a”。

要匹配一个可选项,用 “\=”。 例如:

         /folders\=

匹配 “folder” 和 “folders”。

4,指定重复次数

要匹配某一项的特定次数重复,使用 “\{n,m}” 这样的形式。其中 “n” 和 “m” 都是数字。在它前面的那个项将被重复 “n” 到 “m” 次 (|inclusive| 包含 “n” 和 “m”)。例如:

         /ab\{3,5}

匹配 “abbb”,”abbbb” 以及 “abbbbb”。

    当 “n” 省略时,被默认为零。当 “m” 省略时,被默认为无限大。当 “,m” 省略时,就表示重复正好 “n” 次。例如:

         模式            匹配次数

         \{,4}             0,1,2,3 或 4

         \{3,}             3,4,5,等等

         \{0,1}            0 或 1,同 \=

         \{0,}             0 或 更多,同 *

         \{1,}             1 或 更多,同 \+

         \{3}              3

5,多选一匹配

在一个查找模式中,”或” 运算符是 “\|”。例如:

         /foo\|bar

这个命令匹配了 “foo” 或 “bar”。更多的抉择可以连在后面:

         /one\|two\|three

匹配 “one”,”two” 或 “three”。

    如要匹配其多次重复,那么整个抉择结构须置于 “\(” 和 “\)” 之间:

         /\(foo\|bar\)\+

这个命令匹配 “foo”,”foobar”,”foofoo”,”barfoobar”,等等。

    再举个例子:

         /end\(if\|while\|for\)

这个命令匹配 “endif”,”endwhile” 和 “endfor”。

转载于:https://www.cnblogs.com/zhihaowang/archive/2011/01/26/10128572.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/405563.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

下列可以产生斜体字的html标签是,电子科技大学《网页设计与制作》20秋期末考试题目【标准答案】...

电子科技大学《网页设计与制作》20春期末考试试卷总分:100 得分:100一、单选题 (共 40 道试题,共 100 分)1.如何产生带有数字列表符号的列表&#xff1f;A.B.C.D.2.能够设置成口令域的是( )A.只有单行文本域B.只有多行文本域C.单行、多行文本域D.多行“Textarea”标识3.定制表…

Solution 7: 判断两链表是否相交

问题描述 RT. 解决思路 (1) 两链表都是单向链表&#xff1a;判断两链表的末尾节点是否相同&#xff1b; (2) 两链表中一个有环&#xff0c;一个没环&#xff1a;不可能相交&#xff1b; (3) 两链表都有环&#xff1a;slow-fast双指针方法。 程序 public class ListIntersection…

Qt程序窗口关闭不退出而最小化到托盘的方法

一、描述 为避免错点关闭按钮&#xff0c;使得软件关闭退出。需要开发一种类似于QQ桌面之类的功能&#xff0c;点击关闭按钮并不退出&#xff0c;开发的应用程序在用户鼠标点击右上角的关闭按钮时&#xff0c;程序不退出&#xff0c;缩小到右下角&#xff0c;进入托盘。例如wi…

UltraEdit如何自动换行

UltraEdit是一款功能强大的文本工具&#xff0c;可以用于编程。安装UltraEdit之后&#xff0c;默认的设置没有自动换行。设置的方法是&#xff0c;点击菜单栏的“高级→配置”&#xff0c;找到“编辑器→自动换行/制表符设置”&#xff0c;如下图的左边。然后&#xff0c;把“默…

老华为可以升级鸿蒙,真良心!五年前老机型都能升级华为鸿蒙

真良心&#xff01;五年前老机型都能升级华为鸿蒙来源&#xff1a;搜狐网作者&#xff1a;小码说娱乐时间&#xff1a;2021-06-03 12:01:21经过多年的摔打&#xff0c;鸿蒙终于迎来了新生。而在6月2日(今天)晚上的发布会上&#xff0c;令我们感到震惊的不仅仅是华为的新品&…

XSS代码注入框架

首先需要了解一下几点&#xff1a; 1.浏览器中Javascript变量的生命周期 Javascript变量的生命周期并不是你声明这个变量个窗口闭就被回收&#xff0c;只要有引用就会一直持续到浏览器关闭。 2.window对象下方法会在在窗口被关闭时清掉&#xff0c;比如&#xff1a; window.set…

html转换vmax,CSS里px、em、rem、%、vw、vh、vmin、vmax这些单位的区别

不要删除CSS中常见的单位px&#xff1a;最常见的&#xff0c;页面按照精准样式展示&#xff0c;属于绝对单位em&#xff1a;基准点为父节点字体的大小&#xff0c;如果自身定义了font-size按自身来计算&#xff1b;也就是说这个em不是一个固定值&#xff0c;属于相对单位rem&am…

Qt中使用QFile对文本文件的读写

一、思路 1、Qt打开关闭文件用到QFile,包含头文件#include <QFile> 2、文件的读写用标准QTextStream&#xff0c;包含头文件#include <QTextStream> 二、具体实现 //打开fileQFile file(ui->lineEdit_filepath->text());if(!file.open(QIODevice::ReadWri…

Linux下定时器使用

From: http://blog.csdn.net/gudulyn/article/details/885334 Linux下的定时器有两种&#xff0c;以下分别介绍&#xff1a; 1、alarm 如果不要求很精确的话&#xff0c;用 alarm() 和 signal() 就够了 unsigned int alarm(unsigned int seconds)…

T-SQL SUM Functions

SQL Server SUM()函数&#xff0c;计算字段值和&#xff0c;不包括NULL值。 下面例子中&#xff0c;计算所有职员薪金总值&#xff1a; 数据源&#xff1a; SQL语句&#xff1a; SELECTSUM([Salary]) AS[Totals]FROM[dbo].[Member]执行结果&#xff1a;

React开发(235):document.body.clientHeight

document.body.clientHeight获取可视化高度

Qt模态界面设置setWindowModality禁止其他界面响应

一、模态与非模态 模态&#xff1a;启动模态界面时&#xff0c;例如弹出对话框强制用户从其他正在进行的业务中聚焦到当前对话框&#xff0c;除了该对话框整个应用程序窗口都无法接受用户响应&#xff0c;无法切换界面&#xff0c;无法切换当前Qt应用。这可以保证用户按照自己…

html定位fix,html 定位fixed

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。编程之家小编现在分享给大家&#xff0c;也给大家做个参考。123#sub1{width:50px;height:80px;border:1px solid #dcdcdc;}#sub2{position:fixed;top:250px;right:20px;width:50px;height:80px;border:1px solid #dcdcdc;m…

OpenCV-CL: OpenCL加速计算机视觉技术

大家好&#xff01;我借这篇文章&#xff0c;分享给大家今年计算机视觉领域里的一些令人兴奋不已的最新进展。特别是最新OpenCV&#xff08;当前最流行的计算机视觉库&#xff09;的发布&#xff0c;您的计算机视觉应用程序可以在现代异构计算平台上充分利用CPU和GPU的全部计算…

如何在Microwindows中显示图片和安装字体

From: http://bbs.chinaunix.net/thread-1987116-1-1.html 一、前言Microwindows可以运行在 支持Framebuffer的 32位的 Linux系统上&#xff0c;或者也可以使用著名的 SVGALib[45] 库来进行图形显示。此外&#xff0c;它还被移植到16位的EL KS 和实模式的MSDOS上。Microwindows…

VS2008创建dll,并使用dll

原来一直使用vc6.0做开发&#xff0c;但是公司主要使用vs2008工具&#xff0c;刚开始使用的时候感觉非常不好用&#xff0c;但是一周下来&#xff0c;不禁感叹&#xff0c;还是新的好啊&#xff0c;嘿嘿&#xff01; 这里总结一下vs2008下创建dll并使用dll导出函数的方法&#…

MySQL常用语法记录

0、说明 记录MySQL使用到的常用语法。 1、MySQLDISTINCT唯一 2、MySQLLIMIT限制 3、MySQL ORDER排序升序 4、MySQL DESC降序 5、MySQL WHERE 过滤 6、MySQL 操作符 AND OR ,AND优先级高于OR 7、MySQL IN 8、MySQL NOT 否定之后跟的任何条件 9、MySQL LIKE通配符 可在任意位置…

React开发(245):ant design form自定义验证

<Form.Item label"联系人手机号&#xff1a;">{getFieldDecorator(contactMobile, {initialValue: type update ? activeUpdateData.contactMobile : ,rules: [{ required: true, message: 请输入联系人手机号 },{ pattern: isPhone, message: 手机号格式不…