hxing

拒绝思维懒惰,习惯深度思考,提升认知水平。

导航

Vim字符串替换的方法

一、vim字符串替换命令

:%s/old/new/g

vim字符串替换是一个非常实用的功能,下面将从多个方面进行介绍,帮助你更加深刻地理解该功能,提高你的工作效率。

首先,我们来看一下vim字符串替换命令。上面这行代码是vim字符串替换命令的基本语法。其中,%代表全局搜索,s代表替换操作,old代表要替换的字符串,new代表替换后的字符串,g代表全局替换,也就是说每行都会进行替换操作。

二、vim替换字符前所有字符串

:s/^.*old/new/g

有时候我们需要替换字符串前的所有字符,那么该怎么做呢?这时就可以使用上面这行代码。其中,^.*代表字符串前的所有字符。

三、string字符串替换

:s/old/new/string

在进行vim字符串替换时,我们也可以只对某个特定的字符串进行替换操作,而不是全局替换。上面这行代码中的string就是要替换的特定字符串。

四、vim替换字符串

:s/old/new

根据上面的语法,这行代码代表只替换第一个匹配的字符串。如果我们想要替换每个匹配的字符串,需要在末尾添加g,即:

:s/old/new/g

五、vim替换字符串通配符

:s/old.\{-}new/new/g

在进行vim字符串替换时,我们也可以使用通配符来匹配特定的字符串。上面这行代码中,.\{-}代表匹配任意字符,且尽量少匹配,直到遇到new字符串。

六、vim替换字符串两种方式

在进行vim字符串替换时,我们有两种方式可以使用。第一种是在命令模式下直接输入替换命令,如上面我们介绍的例子。另外一种方式是在编辑模式下使用替换命令,具体步骤如下:

  1. 进入编辑模式,按下Esc键退出命令模式
  2. 按下:键,进入命令行模式
  3. 输入%s/old/new/g,回车

这两种方式各有优劣,可以根据实际情况选择使用。

七、vim批量替换字符串

:%s/old/new/gc

上面这行代码中,末尾的c参数代表询问替换,也就是说会在替换每个字符串时询问是否要进行替换操作。

八、vim替换指定行字符串

:10,20s/old/new/g

如果我们只想在指定的行范围内进行字符串替换操作,可以像上面这样使用行范围来指定。

九、vim怎么全部恢复被替换字符串选取

在进行vim字符串替换时,有时候我们会错误地替换某个字符串,这时需要将其恢复原样。可以按下u键撤销最近的操作,或者使用以下命令:

:undo

十、光标处单词搜索

在Vim命令模式下,如果要搜索当前光标下的单词,除了可以使用/ 和 ?外,还可以使用特殊命令* 和 #。

假设光标当前所有单词为the,那么在当前光标位置执行命令 * 相当于搜索命令 /<the>,命令 # 等同于命令 ?<the>。

\< 是一个单词定界符,表示只匹配单词的开头; \> 也是单词定界符,表示只匹配单词末尾。

注意:搜索一些特殊的字符,例如:*、[、]、^、%、/、?、~、$等,需要在它们的前面加上转义符号\

十一、搜索大小写敏感

默认Vim搜索命令是大小写敏感的,因此,搜索 the 不会查找到 The。使用命令 :set ignorecase 会使得Vim搜索变得不区分大小写。

可以在搜索命令中使用 \c 来强制使得当前搜索模式不区分大小写, 而命令 \C 则会强制当前搜索模式大小写敏感。 因此,/the\c 既会查找 the,也会查找到 THE 或者 The 等等。

十二、搜索进阶

在搜索命令前还可以增加一个整数,用于表示搜索目标出现的位置。 例如,3/pattern 将会搜索模式 pattern 第三次出现的位置, 而 3* 会搜索当前光标所在位置单词第三次出现的位置

十三、搜索进阶

为了更好的进行搜索,Vim支持正则表达式,最基本的正则表达式规则包括:

       ^ 表示一行的开头
       $ 表示一行的结尾
       . 表示任意一个字符
       * 匹配0次或n次

 

 

posted on 2023-12-12 17:18  hxing  阅读(2799)  评论(0编辑  收藏  举报