Vim 查找文本详解

回忆上节课内容🤔

查找帮助

  • 用无模式打开 tomsawyer.txt
    • vi -u NONE tomsawyer.txt
  • 开启行号 :se nu
  • 按下 /
    • 会在左下角显示
    • 就像 : 等待输入命令一样
    • 输入待搜索字符串
    • /TOM 会从光标位置向后查找 TOM
    • 然后光标跳转到 TOM 的位置
  • 可以 h / 查阅手册

图片描述

设置高亮

  • 设置高亮开关
    • :set hlsearch
    • 简写为 :set hls
    • 可以看到查找的单词已经高亮显示出来
  • 设置高亮色
    • :hi Search ctermbg=red ctermfg=black 注意大小写
    • /TOM 再次搜索 TOM
    • 搜索结果会高亮显示
  • 可以使用 :h 'hls' 查找搜索高亮手册

图片描述

取消高亮

  • 如果你看到高亮显示太乱
    • 你可以反过来设置一下
    • :set nohlsearch 把搜索高亮的开关关掉
    • 当然下次你要想显示的话
    • 就需要再次打开开关 :set hls
  • 如果你只想要眼下这把关了高亮
  • 下次搜索的时候还是高亮的话
    • :noh[lsearch]
  • 注意这是执行一个命令,而不是设置一个开关

图片描述

正向反向

  • 遍历匹配
    • n 下一个匹配项
    • N 上一个匹配项
    • nN 可使用 count 翻倍
  • :h n 查阅相关手册
  • 一路 n
    • 可以显示查阅到文档结尾
    • 如果想要重头查询的话
    • 需要设置 :set wrapscan
    • 这样就可以重头开始再查一次了
    • w[rap]s[can] 可以简写为 ws
    • 关掉开关用 :set now[rap]s[can] 可以简写为 :set nows

图片描述

反向查询

  • 使用 ? 可以反向查询单词
    • 比如 ?TOM 就可以从后往前查询 TOM
  • 遍历匹配
    • n 保持方向,从下往上查询下一个
    • N 改变方向,从上往下查询下一个
    • 如果用 ?TOM 配合 N 就是往前查找
      • 因为负负得正?🤪
    • 到头了 wrapscan 让他可以从头再来

回顾行内搜索

  • 总结行内搜索规律
    • f 正向,F 反向
    • t 正向,T 反向
    • ; 保持方向,, 改变方向
  • [count] 可翻倍

总结

  • 这次是搜索
    • / 正向,? 反向
    • n 保持方向,N 改变方向
    • hls 让搜索结果高亮
    • noh 取消本次高亮
    • wrapscan 可以从头搜索
  • 查找还有什么好玩的呢?
  • 下次再说 👋

教程来源于Github,感谢overmind1980大佬的无私奉献,致敬!

技术教程推荐

深入浅出区块链 -〔陈浩〕

持续交付36讲 -〔王潇俊〕

人人都能学会的编程入门课 -〔胡光〕

用户体验设计实战课 -〔相辉〕

如何读懂一首诗 -〔王天博〕

程序员的测试课 -〔郑晔〕

深入浅出分布式技术原理 -〔陈现麟〕

说透低代码 -〔陈旭〕

结构写作力 -〔李忠秋〕