本文介绍如何在Vim/Vi中执行搜索操作。Vim或其早期版本Vi预先安装在macOS和大多数Linux发行版上,如果没安装,请参考在RHEL 8/CentOS 8系统上安装和配置VIM文本编辑器一文。在处理文件时,搜索文本是最常见的任务之一,当您遇到无法使用自己喜欢的编辑器的情况时,了解以下Vim的基础知识可能会非常有用。
基本搜索 要在Vim中搜索,您必须处于普通模式,启动Vim编辑器时,便处于此模式,要从其他任何模式返回正常模式,只需按Esc键。 Vim允许您使用/(正斜杠)和?(问号)命令快速查找文本。 要向前搜索,请按/,向后搜索,请按?,输入search pattern,然后按Enter键运行搜索:
重要的是要注意,搜索命令将模式作为字符串而不是整个单词来查找,例如,如果您正在搜索“gnu”,则搜索结果匹配将“gnu”嵌入较大词(例如“cygnus”或“magnum”)中的内容。 按n搜索下一个出现的事件,或按大写字母N搜索相反的方向。 在Vim中执行搜索的基本步骤如下: 1、按/。 2、输入search pattern。 3、按Enter执行搜索。 4、按n查找下一个事件,或按N查找上一个事件。
搜索整个词 要搜索整个单词,请按/或?开始搜索,键入\<标记单词的开头,输入搜索模式,键入\>标记单词的结尾,然后按Enter执行搜索。 例如,要搜索“gnu”,可以使用/\<gnu\>:
搜索当前词 您也可以通过将光标移动到单词并按*(星号)向前搜索或按#(哈希)向后搜索来搜索整个单词,要查找下一个匹配项,请再次按*或#。
搜索历史记录 Vim会跟踪您在当前会话中进行的所有搜索操作,要浏览搜索历史记录,请按/或?,并使用上/下箭头键查找上一个搜索操作,要运行搜索,只需按Enter,您也可以在执行操作之前编辑搜索模式。
区分大小写 默认情况下,搜索结果区分大小写,搜索“GNU”将不匹配“Gnu”。 要忽略大小写,请在Vim命令行中输入:set ignorecase或:set ic,您也可以通过在~/.vimrc文件中添加命令,将忽略大小写设置为默认选项。 要返回到大小写匹配模式,请输入:set noignorecase或:set noic。 强制忽略大小写的另一种方法是在搜索模式后附加\c,例如,/Linux\c将执行忽略大小写搜索,模式后的大写\C强制进行大小写匹配搜索。
结论 要在Vim/Vi中搜索,请输入/或?,输入search pattern,然后按Enter。
相关主题 |