【Vim Masterclass 笔记12】S06L26 + L27:Vim 文本的搜索、查找及替换同步练习(含点评课)

ops/2025/1/16 14:59:26/

文章目录

  • S06L26 Exercise 07 - Search, Find, and Replace
    • 1 训练目标
    • 2 操作指令
      • 2.1. 打开 search-practice.txt 文件
      • 2.2. 同一行内的搜索练习
      • 2.3. 当前文件内的搜索练习
      • 2.4. 单词搜索练习
      • 2.5. 全局替换练习
    • 3 退出 Vim
  • S06L27 同步练习点评课

写在前面
Vim 的文本检索、查找与替换的具体讲解用了两个课时,但同步练习环节却相对精简了很多。可能是因为大部分操作已经在前面两节的演示中说得差不多了,因此除了这篇同步练习,最好结合我梳理的知识点和思维导图,去找到一个真实的文本材料(比如配置文件、源代码文件等)进行实际演练。效果更好。

S06L26 Exercise 07 - Search, Find, and Replace


1 训练目标

练习 Vim 中的文本搜索、查找与替换。1

2 操作指令

2.1. 打开 search-practice.txt 文件

Vim 打开源码包内的练习文件 search-practice.txt(默认解压到 Downloads 文件夹下):

cd Downloads
cd vimclass
vim search-practice.txt

2.2. 同一行内的搜索练习

以下为练习文件的第一行:

The Time Traveller (for so it will be convenient to speak of him) was expounding

FF 将光标定位到该行单词 for 的首字符 f 上;再次键入 FF 将定位到下一个 off 字符位置。切记:在同一行重复该操作,按 ; 即可。

接着,将光标重新定位到 for 的首字母。做法:按 , 实现反向重复检索。

然后,将光标置于单词 Traveller 的开头,键入 ShiftF + ShiftT 实现反向查找。

再将光标置于单词 be 的前一个字符位置,即空格上。做法:利用 till 命令,输入 TB 即可。

将光标定位到单词 speak 的前一个字符(即空格)位置。做法:按 TS

最后,将光标定位到单词 for 后面的空格上。做法:按 ShiftT + R

2.3. 当前文件内的搜索练习

查找所有的 and ,并将光标定位到每个匹配项的开头位置至少一次。做法:键入 /and + Space + Enter(注意:若没有在 and 后添加空格,则单词 incandescent 也会视为匹配项)。接着用 N 重复上述操作,遍历当前文件中的所有匹配项。

然后掉转搜索方向,并反复按 ShiftN,让光标依次定位到各匹配项的开头位置。

最后,反向检索关键词 to。具体做法:键入 ?TO。再用 N 重复该操作直到反向检索一整圈;接着键入 ShiftN 掉转反向检索的顺序,直到再检索一整圈。

2.4. 单词搜索练习

将光标定位到文件中首次出现单词 iti 字母下方。实现方法:键入 GG 移至文件开头,然后按 2FI 直接定位到第二个 i 字母位置;然后输入 *,光标将移动到下一处单词 it 位置。按 N 重复上述操作,直到光标重新回到文件第一行。

接下来练习 Vim 的反向检索。先将光标定位到第二行的单词 us 上,可以用 J 下移一行,并通过 ShiftFU 反向检索字符 u。接着按下 # 键,就能将光标定位到文件最后一处 us 上。最后,通过按 N,直到将光标重新定位到出现在该文件第二行的 us 一词上。

2.5. 全局替换练习

将文中所有的 sat 替换为 laid。具体做法:先输入 :%s/sat/laid/g + Enter。切记:这里的 % 表示一个特殊范围,代表整个文件;而启用 g 标志主要是为了确保在同一行中出现的 sat 字样都能被替换为 laid。如果不确定某一行是否存在多个匹配项,则可以考虑用 g 标志来确保替换掉所有的匹配项。

3 退出 Vim

若要放弃文件变更以便下次重新练习,使用退出命令 :q! + Enter

S06L27 同步练习点评课

通常,完整单词匹配除了使用 *# 外,还可以在待检索的英文单词后面跟一个空格 <space>


  1. 本节练习另附精美排版 PDF 格式,阅读体验更佳,详见:vimclass/Exercise-07-SearchFindReplace.pdf ↩︎


http://www.ppmy.cn/ops/150579.html

相关文章

【Rust自学】12.7. 使用环境变量

12.7.0. 写在正文之前 第12章要做一个实例的项目——一个命令行程序。这个程序是一个grep(Global Regular Expression Print)&#xff0c;是一个全局正则搜索和输出的工具。它的功能是在指定的文件中搜索出指定的文字。 这个项目分为这么几步&#xff1a; 接收命令行参数读取…

机器学习(1):线性回归概念

1 线性回归基础 1.1 什么是线性 例如&#xff1a;汽车每小时60KM&#xff0c;3小时可以行使多长距离&#xff1f;已知汽车的速度&#xff0c;则汽车的行使距离只与时间唯一相关。在二元的直角坐标系中&#xff0c;描出这一关系的图是一条直线&#xff0c;所以称为线性关系。 线…

炸砖块游戏的最终图案

描述 小红正在玩一个“炸砖块”游戏,游戏的规则如下:初始有一个 n * m 的砖块矩阵。小红会炸 k 次,每次会向一个位置投炸弹,如果这个位置有一个砖块,则砖块消失,上方的砖块向下落。小红希望你画出最终砖块的图案。 输入描述 第一行输入三个正整数 n, m, k,代表矩阵的行…

python创建pdf水印,希望根据文本长度调整水印字体大小,避免超出页面

为了根据文本长度动态调整水印字体大小&#xff0c;可以先测量文本长度&#xff0c;然后根据页面宽度和高度动态计算合适的字体大小。以下是修改后的代码&#xff1a; from reportlab.pdfgen import canvas from reportlab.lib.pagesizes import letter from reportlab.pdfbas…

Unity3D 移动端CPU端性能调优详解

前言 在Unity3D开发中&#xff0c;特别是在移动端&#xff0c;性能优化至关重要。CPU主要负责逻辑运算、物理计算和碰撞检测等核心任务。优化CPU性能不仅能提升游戏的流畅度&#xff0c;还能减少电量消耗和发热问题。本文将详细介绍Unity3D移动端CPU端的性能调优技术&#xff…

DATACOM-防火墙-复习-实验

防火墙 概述配置实验参考 概述 与路由器对比 路由器防火墙功能寻址、流量转发、路由流量控制、安全区域隔离防护硬件-相较于路由器&#xff0c;多了SPU&#xff0c;用于DDoS攻击防范/匹配会话/状态检测/认证策略/安全策略/NAT 策略/内容安全带宽策略等 发展 安全区域 防火墙…

用sklearn运行分类模型,选择AUC最高的模型保存模型权重并绘制AUCROC曲线(以逻辑回归、随机森林、梯度提升、MLP为例)

诸神缄默不语-个人CSDN博文目录 文章目录 1. 导入包2. 初始化分类模型3. 训练、测试模型&#xff0c;绘图&#xff0c;保存指标 1. 导入包 from sklearn.linear_model import LogisticRegression from sklearn.ensemble import RandomForestClassifier, GradientBoostingClass…

SEO优化与版权保护:提升WordPress网站内容安全和价值

保护网站内容不仅仅是为了防止盗窃&#xff0c;更重要的是确保你的网站能够在搜索引擎中占据有利位置。通过结合SEO优化和版权保护&#xff0c;你可以提升网站的内容安全性&#xff0c;并进一步提升其在搜索引擎中的价值。 1. 版权保护如何影响SEO 版权保护对SEO有直接影响。…