讲师中心 微信公众号
AI工具推荐 视频效率加速

如何在Linux中安装并使用Vi/Vim查找 Linux在文件中搜索字符串的方法

冬墨吖_8329

冬墨吖_8329

发布时间:2026-05-29 08:31:25

|

1199人浏览过

|

来源于php中文网

原创

vi/vim中快速查找字符串按/输入文本回车即可;/pattern正向、?pattern反向搜索,n/N跳转,区分大小写默认开启,特殊字符需转义,跨文件搜索需用grep等外部命令。

如何在linux中安装并使用vi/vim查找 linux在文件中搜索字符串的方法

vi/vim 里怎么快速查找字符串

直接按 / 键,然后输入要找的文本,回车即可跳转到第一个匹配位置。这是最常用、最轻量的查找方式,不需要额外安装或配置。

常见错误是输完搜索词后按了 Enter 却没反应——其实是忘了先按 / 进入搜索模式;或者误按了 ?(反向搜索),结果光标往文件开头跑了,找不到预期位置。

  • /pattern:正向搜索,从当前光标往下找
  • ?pattern:反向搜索,从当前光标往上找
  • 按 n 跳到下一个匹配,N 跳到上一个(方向取决于上次用的是 / 还是 ?)
  • 搜索区分大小写,默认开启;想忽略大小写,加 \c,比如 /error\c

为什么 /foo 找不到明明存在的字符串

很可能因为 vim 默认开启了 hlsearch(高亮所有匹配),但你没看到高亮,就以为没找到——其实只是匹配项在屏幕外,或者被其他设置干扰了。

检查和修复步骤:

  • 运行 :set hlsearch? 看是否启用;如果没开,执行 :set hlsearch
  • 确认大小写:默认严格区分,Foo 不会匹配 foo;临时忽略用 /foo\c,永久忽略可在 ~/.vimrc 加 set ignorecase
  • 特殊字符没转义:比如搜 user.name,点号 . 是正则元字符,得写成 /user\.name
  • 搜索范围限制:如果文件很大,vim 可能因性能限制未加载全文,可试 :e! +1000 强制重载,或用外部命令辅助

想在整个目录里搜字符串,vi/vim 自带不行,得换工具

vim 本身不支持跨文件递归搜索(除非装插件如 ctrlp.vim 或 vim-grepper),但 Linux 命令行有更可靠的选择。

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载

推荐组合:grep -nR "pattern" ./,其中:

  • -n 显示行号,方便定位
  • -R(或 -r)递归搜索子目录
  • "pattern" 推荐用双引号包裹,避免 shell 解析空格或特殊符号
  • 如果只想搜 .c 和 .h 文件,加 --include="*.c" --include="*.h"
  • 配合 vim 使用:执行 :!grep -nR "TODO" ./src 在 vim 中直接运行,结果留在终端;或用 :vimgrep /TODO/ **/*.c(需 vim 7.4+ 且开启 globstar)

vi/vim 启动时直接跳转到匹配行

不用打开文件再手动搜,可以用命令行参数一步到位。

例如,想打开 config.conf 并直接定位到包含 timeout 的第一行:

:vim +/timeout config.conf

注意几点:

  • + 后面不能有空格;+/timeout 是一个整体参数
  • 如果字符串含空格或斜杠,用单引号包住整个搜索式,如 +/'max connections'
  • 想跳到第 42 行,用 +42;想跳到匹配第 3 次的位置,用 +3/time/(需 vim 支持)
  • 这个功能依赖 vim 编译时启用了 +eval,绝大多数发行版预装版本都支持
真正容易被忽略的是:vim 的搜索本质是正则匹配,不是纯文本查找。哪怕只搜一个单词,点号、星号、方括号这些字符都有特殊含义。不转义,就可能搜不到,或者搜出一堆意外结果。

热门AI工具

更多
DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

小橡皮AI

一款AI工具,主要用于小橡皮一键去AI味,将机器味重的内容改得更有活人感,防止因为 AI 内容被平台打上 AI 标签,以及限流,适合需要提升相关任务效率的用户。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

相关专题

更多
js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

1798

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

2844

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

6184

2023.10.24

字符串介绍
字符串介绍

字符串是一种数据类型,它可以是任何文本,包括字母、数字、符号等。字符串可以由不同的字符组成,例如空格、标点符号、数字等。在编程中,字符串通常用引号括起来,如单引号、双引号或反引号。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

5949

2023.11.24

java读取文件转成字符串的方法
java读取文件转成字符串的方法

Java8引入了新的文件I/O API,使用java.nio.file.Files类读取文件内容更加方便。对于较旧版本的Java,可以使用java.io.FileReader和java.io.BufferedReader来读取文件。在这些方法中,你需要将文件路径替换为你的实际文件路径,并且可能需要处理可能的IOException异常。想了解更多java的相关内容,可以阅读本专题下面的文章。

7574

2024.03.22

php中定义字符串的方式
php中定义字符串的方式

php中定义字符串的方式:单引号;双引号;heredoc语法等等。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

11294

2024.04.29

go语言字符串相关教程
go语言字符串相关教程

本专题整合了go语言字符串相关教程,阅读专题下面的文章了解更多详细内容。

5799

2025.07.29

c++字符串相关教程
c++字符串相关教程

本专题整合了c++字符串相关教程,阅读专题下面的文章了解更多详细内容。

6387

2025.08.07

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

0

2026.10.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn