查找

  • 查找文本

  • 搜索模式

  • 全局搜索

查找文本

常用命令(在命令模式下)

| 命令 | 说明 |

|-------|--------------------|

| /abc | 从光标所在位置向前查找字符串 abc |

| ?abc | 从光标所在位置向后查找字符串 abc |

| n | 向同一方向重复上次的查找指令 |

| N | 向相反方向重复上次的查找指定 |

| /^abc | 查找以 abc 为行首的行 |

| /abc$ | 查找以 abc 为行尾的行 |

注意事项

Pattern not found

如果在文件中并没有找到所要查找的字符串,文件底部会出现 "Pattern not found" 提示

大小写敏感

在查找过程中需要注意的是,要查找的字符串是严格区分大小写的,如查找 "shenchao" 和 "ShenChao" 会得到不同的结果。如果想忽略大小写,则输入命令 ":set ic";调整回来输入":set noic"

特殊字符

如果在字符串中出现特殊符号,则需要加上转义字符 ""。常见的特殊符号有 \、*、?、$ 等。如果出现这些字符,例如,要查找字符串 "10$",则需要在命令模式中输入 "/10$"。

小技巧

  • 使用/或者?进行前向或者反向搜索

  • 使用n或b进行上一个或下一个跳转

  • 使用*或#进行当前字符或单词的匹配;n定位到下一个,N定位到上一个

搜索模式

常用命令(在命令模式下)

| 命令 | 说明 |

|------------------------|-----------------------------------|

| :/pattern | 搜索包含pattern的行 |

| :/pattern/d | 删除下一个包含pattern的行 |

| :/pattern/+d | 删除下一个包含pattern的下一行,+d就是+1d,也可以是n |

| :/pattern/,/pattern2/d | 从第一个包含pattern的行删除到第一个包含pattern2的行 |

| :.,/pattern/mn | 将当前行到第一个包含pattern的行之间的文本放到第n行之后 |

全局搜索

常用命令(在命令模式下)

| 命令 | 说明 |

|------------------|-----------------------------|

| :g/pattern | 查找移动到文件中最后一次出现pattern的地方 |

| :g/pattern/p | 查找并显示文件中包含pattern的地方 |

| :g!/pattern/nu | 查找并显示文件中不包含pattern的地方,并显示行号 |

| :1,10g/pattern/p | 查找并显示第1行到第10行之间包含pattern的地方 |

g不光可以用于全局搜索,也可以用于全局替换