`
bluky999
  • 浏览: 719780 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

vim查找替换小结

vim 
阅读更多

VI/VIM是程序员最常用的工具之一,尤其是unix/linux上;而查找替换也是最频繁的操作之一。

 

一般在vim中我们使用这样的方法去替换:%s/dest/new/g ,其中dest是查找目标,new是替换的新内容,g表示全文替换,一般的vim配置为默认全文替换,所以g也可以不要。

 

下文总结了常用的一些替换模式,以供参考学习;内容转自网络,原文没有出处信息!

 

 

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”。

 

 

结束!

分享到:
评论

相关推荐

    大家来学VIM

    #### 六、小结 通过本文的学习,相信读者已经掌握了VIM的基本使用方法以及一些进阶技巧。VIM不仅仅是一个文本编辑器,它更是一种提高工作效率的工具。随着实践的深入,用户可以不断发掘VIM更多的潜在功能,从而更好...

    VIM中文手册

    - 查找替换: `/pattern`查找,`:s/pattern/replacement/flags`替换。 - **文本编辑**: - 替换文本: 使用替换命令进行单次或全局替换。 - 格式化文本: 可以设置自动缩进、调整缩进量等功能。 - 行号显示: 通过`:...

    vim编辑器的使用说明

    #### 十、小结 Vim编辑器作为一款强大的文本编辑工具,提供了丰富的命令集来满足不同的编辑需求。通过以上介绍,相信初学者能够对Vim的基本操作有一个大致的了解。当然,Vim的功能远不止于此,随着经验的积累,用户...

    VIM使用技巧总结

    ### 小结 通过上述介绍,我们可以看到VIM不仅功能强大而且高度可定制化。熟练掌握这些基本命令对于提高编辑效率至关重要。无论是简单的文本编辑还是复杂的脚本编写,VIM都能提供强大的支持。希望本文能帮助大家更好...

    vi使用技巧小结(适用于unix和linux)

    ### VI使用技巧小结(适用于Unix和Linux) #### 摘要 vi编辑器作为Unix和Linux系统中最常用的文本编辑工具之一,对于初学者来说掌握其基本操作是至关重要的。本文旨在帮助读者快速掌握vi的基本使用技巧,包括如何...

    php网络开发完全手册

    1.7 小结 23 第2章 PHP的基础语法 24 2.1 语言构成与工作原理 24 2.2 常量与变量 25 2.2.1 常量的定义 25 2.2.2 变量的定义 26 2.2.3 变量的作用域 27 2.2.4 动态变量 29 2.3 运算符和关键字 29 2.4 流程控制语法 30...

    03-Linux vi编辑.pptx

    "Linux vi编辑" ...小结 ---- * vi是一个功能强大的文本编辑器,但使用起来比较复杂。 * 了解vi的启动和退出、vi的三种模式、基本vi命令、使用vi查找和替换、编辑多个文件等知识点,可以更好地使用vi编辑器。

    souce insight使用方法.doc

    #### 五、小结 SourceInsight凭借其强大的功能和友好的用户界面,成为了学习Linux内核源代码不可或缺的工具之一。无论是初学者还是资深开发者,都可以利用它高效地阅读、理解和分析源代码,从而更好地掌握Linux内核...

    vi编辑器的使用说明

    #### 五、小结 通过上述内容的学习,我们可以了解到VI编辑器虽然看似简单,但实际上蕴含了强大的编辑功能。掌握了这些基本操作之后,你就可以在Unix/Linux环境中更加自如地管理文本文件了。此外,VI编辑器还支持...

    linux课程的ppt

    掌握vi/vim编辑器的基本使用,如插入、删除、查找和替换文本。 6. **进程管理**:学习ps查看进程状态,kill发送信号结束进程,nohup让命令在后台运行,以及top或htop实时监控系统资源。 7. **网络与I/O**:了解...

Global site tag (gtag.js) - Google Analytics