Vim搜索(查找代码、字符串等)

搜索(查找)
# 搜索模式
/		# 前向搜索匹配
?		# 反向搜索匹配

# 移动定位
n		# 跳到下一个匹配的位置
N		# 跳到上一个匹配的位置

*		# 对光标当前所在的完整单词进行前向搜索匹配
#		# 对光标当前所在的完整单词进行后向搜索匹配
g*  # 前向搜索光标当前所在单词
g#  # 反向搜索光标当前所在单词
  • 搜索时字母大小写情况设置
    # 设置vimrc文件
    # 当输入的搜索词全部是小写时,忽略大小写;搜索词至少有一个大写字母时,进行大小写匹配搜索
    set ignorecase smartcase
    

    以上设置缺点:只搜索小写字符串时,无法区分大小写。
    解决方法:在搜索词前使用 \C 指示Vim后续搜索区分大小写。

  • 重复上一次搜索//
  • 查看搜索历史:history /;搜索模式下,用ctrl-nctrl-p快速向前和向后遍历搜索历史。
常用模式串系统
  • 搜索以指定字符串开头或指定字符串结尾的行
    • 用行首位置^指定开头字符串,比如/^nice搜索以nice开头的
    • 用行尾位置$指定结尾字符串,比如/nice$搜索以nice结尾的
  • 同时搜索多个字符串:用|表示或,使用时需要用转义字符转义,即\|,也可在开头使用魔术关键字\v来实现不加转义字符,即/\v
  • 字符组搜索:用[]同时匹配多个字符,比如/[0-9a-zA-Z]表示匹配0-9、a-z、A-Z中的任意一个字符;用[^]取反匹配,比如[^0-9]表示排除0-9中的任意字符。
  • 预定义的字符组:Vim为常见字符组提供了简写。查看所有预定义字符组:h /character-classes
    \d    # 数字[0-9]
    \D    # 非数字[^0-9]
    \w    # 单词字符[0-9a-zA-Z_]
    \l    # 小写字母[a-z]
    \u    # 大写字母[A-Z]
    \S    # 非空白字符(除空格和制表符外的所有字符)
    \s    # 空白字符(空格和制表符)
    
  • 搜索重复字符
    采用计数参数来实现重复搜索
    {n}是精确匹配。 /[0-9]\{2\}匹配两个数字:"11",以及"111"中的"11"{n,m}是范围匹配。 /[0-9]\{2,3\}匹配 2 到 3 位数字:"11""111"{,m}是上限匹配。 /[0-9]\{,3\}匹配最多 3 个数字:"1""11""111"{n,}是下限匹配。 /[0-9]\{2,\}匹配最少 2 个或多个数字:"11""111"
    计数参数{0,}(零或多个)和{1,}(一个或多个)是最常见的搜索模式,Vim 为它们提供了特殊的操作符:*和+( +需要被转义,而* 可以正常运行而无需转义)。 如果执行/[0-9]*,功能与/[0-9]{0,}相同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值