【Vim Masterclass 笔记11】S06L24 + L25:Vim 文本的插入、变更、替换与连接操作同步练习(含点评课)
文章目录
- S06L24 Exercise 06 - Inserting, Changing, Replacing, and Joining
- 1 训练目标
- 2 操作指令
- 2.1. 打开 insert-practice.txt 文件
- 2.2. 练习 `i` 命令
- 2.3. 练习 `I` 命令
- 2.4. 练习 `a` 命令
- 2.5. 练习 `A` 命令
- 2.6. 练习 `o` 命令
- 2.7. 练习 `O` 命令
- 2.8. 练习 `j` 命令
- 2.9. 练习 `R` 命令
- 2.10. 练习 `r` 命令
- 2.11. 练习 `c` 命令
- 2.12. 用 `~` 命令变更大小写
- 2.13. 练习 `U` 命令
- 2.14. 练习 `u` 命令
- 2.15. 重复命令练习
- 3 自由练习
- 4 退出 Vim
- S06L25 同步练习点评课
写在前面
介绍Vim知识点的文章很多,但提供同步练习的配套文章却没有几篇。本篇是对第 21 课的配套练习,非常适合快速形成肌肉记忆,攻克Vim核心基础操作。我也相信,即便我这样说了,对Vim感兴趣的朋友也未必会下载练习文件同步实践,可能对他们而言学习Vim还少了某些机缘。这篇文章本就是主要写给自己看的,我也无需过多宣传。
S06L24 Exercise 06 - Inserting, Changing, Replacing, and Joining
1 训练目标
练习 Vim 中的文本插入、变更、替换与连接。1
2 操作指令
2.1. 打开 insert-practice.txt 文件
用 Vim 打开源码包内的练习文件 insert-practice.txt(默认解压到 Downloads 文件夹下):
cd Downloads
cd vimclass
vim insert-practice.txt
2.2. 练习 i 命令
切记,i 命令会在当前光标位置进入 Vim 插入模式。利用 i 命令在文件第一行开头插入一些文字。例如 "vim",然后按 Escape 键返回常规模式。
2.3. 练习 I 命令
按 2J 将光标下移至这一行文本:
<= What is your favorite color?
利用 I 命令在行首插入文字来回答上面的提问。例如,答案为 blue(蓝色),然后按 Escape 键回到常规模式。
2.4. 练习 a 命令
按 2J 定位到下面这行文本,并练习在 >< 符号之间输入您的姓名。
Enter your name here =><=
为此,需要用 F> 定位到 > 字符下(注意:f 命令将在第 L23 课 Vim 文本检索中详细介绍,这里用于让光标快速定位到同一行的指定字符位置)。然后利用 a 命令从光标的后面进入插入模式。输入任意姓名,并按 Escape 键回到常规模式。
2.5. 练习 A 命令
按 2J 定位到下面这行文本,然后通过 A 命令在该行末尾进入插入模式,接着输入姓名。输入完毕,按 Escape 键回到常规模式。
Enter your name here:
2.6. 练习 o 命令
按 2J 定位到下面这行文本,键入 O 在当前行的下一行进入插入模式,然后输入您最喜爱的一部电影名。输入完毕,按 Escape 键回到常规模式。
One the line below, type the name of your favorite movie.
2.7. 练习 O 命令
按 2J 定位到下面这行文本,键入 ShiftO 在当前行的上一行进入插入模式,然后输入 vim。按 Escape 键回到常规模式。
^^^ One the line above, type the name of the editor you are using.
2.8. 练习 j 命令
按 3J 定位到下面这行文本,尝试连接下列两行文本:
This line belongs
with the one below it.
完成相关操作后,文字将显示在同一行上:
This line belongs with the one below it.
为此,需要键入 ShiftJ。
2.9. 练习 R 命令
按 2J 定位到下面这行文本,试将单词 her 替换为 our。
替换前:
Vim is her favorite editor.
替换后:
Vim is our favorite editor.
先按 ShiftFH 进行反向查,找将光标移至单词 her 中的 h 下方,然后通过 R 命令进入替换模式,并输入 our。最后按 Escape 键回到常规模式。
2.10. 练习 r 命令
拟对如下文本行进行更改:
I have a white car.
更改后变为:
I have a white cat.
先按 2J 定位到下面这行文本,再用 FR 将光标定位到单词 car 的 r 字符下(注意:f 命令将在第 L23 课 Vim 文本检索中详细介绍,这里用于让光标快速定位到同一行的指定字符位置)。接着按 R 键启用替换命令,然后输入字符 t 完成替换。
2.11. 练习 c 命令
试将下列句子中的 great 变更为 brilliant:
I am having a great time in this vim class!
最终变为:
I am having a brilliant time in this vim class!
先用 /GR + Enter 将光标定位到单词 great 的 g 字符下(注意:/ 命令将在第 23 课 Vim 文本检索中详细介绍,这里仅用于将光标快速定位到 great 的 g 位置,支持跨行检索)。接着按 CW(即 change word,更改单词),再输入单词 brilliant 完成变更。最后,按 Escape 键回到常规模式。
接着,将下列句子中的 myself. 改为 everyone!:
I love myself.
这是编辑后的效果:
I love everyone!
先将光标定位到 myself 的 m 字符上,可通过 /my + Enter 实现(注意:/ 命令将在第 23 课 Vim 文本检索中详述,这里仅用于快速定位光标到指定位置,且支持跨行检索)。然后输入 cW,实现带标点更改单词;接着再输入 everyone! 即可。最后,按 Escape 键回到常规模式(注意:本例也可以通过 c$ 或 C 命令实现与 cW 命令相同的效果)。
最后,试将下列一整行文字改为任意内容:
Type something wonderful here.
先按 2J 定位到这行文本,然后键入 cc 命令,以实现整行更改。然后输入任意内容,例如 The sky is beautiful!,并按 Escape 键返回常规模式。
2.12. 用 ~ 命令变更大小写
将下列文字中单词 monday 的首字母改为大写:
monday <= The "m" is supposed to be in uppercase.
为此,需按 /m + Enter 进行正向检索,将光标定位到 m 处;然后键入 ~ 完成大小写转换。
将下列文字中的单词 shout 全部改为大写形式:
Don't shout. It's not nice.
为此,需按 /sh + Enter 进行正向检索,将光标定位到 s 下方;然后键入 G~W 实现大写转换操作。
再对下面一整行内容切换大小写:
mONDAY'S START BETTER WITH coffee.
最终效果如下:
Monday's start better with COFFEE.
为此,先按 2J 定位到这行文本的任意位置,然后键入 G</kbd><kbd> 完成整行字符的大小写切换。
2.13. 练习 U 命令
试将下列文字中的单词 Shout 改为 SHOUT:
Don't Shout. It's just too loud.
为此,先用 /S + Enter 正向检索,将光标定位到 S 下方;然后输入命令 gUw,完成单词的大写转换操作。
接着,在下一行再尝试一次,不过这次要改用 gUW 命令。
2.14. 练习 u 命令
将下列文字中的单词 Whisper 改为小写的 whisper:
Please Whisper.
为此,先用 /W + Enter 正向检索,将光标放在 W 下方;然后输入 guw 完成小写转换(注意:本例中也可以直接使用 ~ 命令)。
2.15. 重复命令练习
在下列文字的下面一行输入 80 个星号(*):
Create a line of asterisks below:
为此,先用 3J 将光标定位到该行文本的下一行;然后输入 80I 进入插入模式,拟重复执行 80 次;再键入 * 插入星号。最后按 Escape 键切回常规模式,并查看 Vim 自动插入的 80 个星号效果。
接着,再在下列文本行的下方三行,每行各插入一个连字符 -:
Create 3 lines that begin with "-" below:
为此,先用 2J 定位到该行文本;然后使用 o 命令,键入 3O,并在新行中输入一个连字符 -;最后按 Escape 键切回常规模式,并查看 Vim 自动生成的另两行效果。
3 自由练习
鼓励自行尝试一些组合练习。最好是有个现成的文件需要修改,然后用 Vim 打开,用学到的文本插入、更改、替换与连接的知识来操作文件内容。
4 退出 Vim
若要放弃文件变更以便下次重新练习,使用退出命令 :q! + Enter。
S06L25 同步练习点评课
完全按上述操作进行,没有延伸知识。建议多思多练。
本节练习另附精美排版 PDF 格式,阅读体验更佳,详见:
vimclass/Exercise-06-InsertingChangingReplacingandJoining.pdf↩︎
相关文章:
【Vim Masterclass 笔记11】S06L24 + L25:Vim 文本的插入、变更、替换与连接操作同步练习(含点评课)
文章目录 S06L24 Exercise 06 - Inserting, Changing, Replacing, and Joining1 训练目标2 操作指令2.1. 打开 insert-practice.txt 文件2.2. 练习 i 命令2.3. 练习 I 命令2.4. 练习 a 命令2.5. 练习 A 命令2.6. 练习 o 命令2.7. 练习 O 命令2.8. 练习 j 命令2.9. 练习 R 命令2…...
分布式组件底层逻辑是什么?
分布式组件是指在分布式系统中执行特定功能的模块,通常分布在多个物理节点上,共同协作完成任务。其底层逻辑包括多个方面,从通信和数据管理到一致性和容错设计,具体如下: 1.分布式组件的核心特点 分布性:功…...
Spring Boot中的扫描注解如何使用
在 Spring Boot 中,扫描注解是指通过注解来告诉 Spring 框架应该扫描哪些包、哪些类或哪些特定的组件,并将其作为 Spring 容器中的 bean 进行管理。Spring Boot 主要通过以下几种注解来实现自动扫描: ComponentScanSpringBootApplicationCom…...
初识JVM HotSopt 的发展历程
目录 导学 目前企业对程序员的基本要求 面向的对象 实战 学习目标 JVM 是什么 JVM 的三大核心功能 各大 JVM look 看一下虚拟机 HotSopt 的发展历程 总结 导学 目前企业对程序员的基本要求 面向的对象 实战 学习目标 JVM 是什么 JVM 的三大核心功能 即时编译 主要是…...
基于springboot果蔬供应链信息管理平台
基于Spring Boot的果蔬供应链信息管理平台是一种集成了先进信息技术和果蔬供应链管理理念的综合性系统。 一、背景与意义 随着人们生活水平的提高和对健康饮食的重视,果蔬市场需求不断增长。然而,果蔬供应链涉及多个环节,包括种植、采摘、加…...
掌握 React 关键:理解 super () 和 super (props) 的不同应用
在 React 中,super() 和 super(props) 都与 React 类组件的构造函数(constructor)以及继承有关。为了理解它们之间的区别,我们需要了解 JavaScript 类继承机制以及 React 类组件的工作原理。 1. super() 与 super(props) 的区别 …...
Scala语言的软件开发工具
Scala语言的软件开发工具概述 Scala是一种多范式编程语言,它结合了面向对象编程和函数式编程的特性。随着大数据技术的发展和互联网应用的广泛普及,Scala逐渐成为了开发高性能应用和后端服务的热门选择。为了更好地进行Scala开发,开发者需要…...
斯坦福大学李飞飞教授团队ARCap: 利用增强现实反馈收集高质量的人类示教以用于机器人学习
近年来,通过人类示范进行模仿学习在教授机器人操控技能方面取得了令人瞩目的进展。为了进一步扩大训练数据集的规模,近期的研究开始采用便携式数据采集设备,无需依赖物理机器人硬件。然而,由于在数据采集过程中缺乏机器人实时反馈…...
【Linux】从零开始:编写你的第一个Linux进度条小程序
Linux相关知识点可以通过点击以下链接进行学习一起加油!初识指令指令进阶权限管理yum包管理与vim编辑器GCC/G编译器make与Makefile自动化构建GDB调试器与Git版本控制工具 文章目录 一、知识铺垫1.1 回车与换行概念1.2 缓冲区 二、实现简单倒计时三、进度条3.1 Verrs…...
web前端第八次作业---制作音乐榜单
制作音乐榜单 代码: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><s…...
心脏扩散张量成像中的异常值检测:射击拒绝还是稳健拟合?|文献速递-视觉大模型医疗图像应用
Title 题目 Outlier detection in cardiac diffusion tensor imaging: Shot rejection or robust fitting? 心脏扩散张量成像中的异常值检测:射击拒绝还是稳健拟合? 01 文献速递介绍 心脏扩散张量成像(Cardiac Diffusion Tensor Imagin…...
Linux Kernel 之十 详解 PREEMPT_RT、Xenomai 的架构、源码、构建及使用
概述 现在的 RTOS 基本可以分为 Linux 阵营和非 Linux 阵营这两大阵营。非 Linux 阵营的各大 RTOS 都是独立发展,使用上也相对独立;而 Linux 阵营则有多种不同的实现方法来改造 Linux 以实现实时性要求。本文我们重点关注 Linux 阵营的实时内核实现方法! 本文我们重点关注 …...
RabbitMQ-消息消费确认
我们一般使用的是消费者作为被动方接收 RabbitMQ 推送消息,另一种是消费者作为主动方可以主动拉取消息。 RabbitMq 服务器推送消息分为隐式(自动)确认和显示确认。 1 消费者拉取消息 消费者作为主动方拉取消息,每次只能获取一条。 using (var channel c…...
E10.【C语言】练习:编写一个猜数字游戏
目录 1.规则 2.准备 3.游戏代码 1.规则 1.程序生成1-100间的随机数 2.用户猜数字 猜对了:游戏结束 猜错了:程序会告知猜大了或猜小了,继续进行游戏,直到猜对 3.游戏可以一直玩除非退出游戏 2.准备 1.框架:循…...
RK3568-rk809rtc休眠唤醒
参考链接 https://www.360doc.cn/article/71858349_1119199262.html修改驱动drivers/mfd/rk808.c static void rk817_shutdown_prepare(void) { int ret; …...
【Uniapp-Vue3】pages.json页面路由globalStyle的属性
项目的全局配置在pages.json中。 一、导航栏设置 二、下拉刷新设置 下拉就可以看到设置的样式 三、上拉触底 这个页面中,向下滑动页面到底部就会输出“到底了” 现在将触底距离设置为500 走到半路就会输出“到底了”...
NHANES数据挖掘|特征变量对死亡率预测的研究设计与分析
书接上回,应各位临床或在科室的小伙伴们需求,除了多组学和算法开发外,插播关于临床护理方向的数据挖掘,今天分享两篇NHANES的分析文献。 1、时依中介分析 DOI: 10.1186/s12933-024-02191-5 整体思路 基于 NHANES 数据…...
【Sharding-JDBC学习】概述_shardingsphere-jdbc 和sharding-jdbc
1.概述 1.1.分库分表是什么 小明是一家初创电商平台的开发人员,他负责卖家模块的功能开发,其中涉及了店铺、商品的相关业务,设计如下 数据库: 通过以下SQL能够获取到商品相关的店铺信息、地理区域信息: SELECT p.*…...
用户登录/登出功能,当登录页面在另一域名下
需求: 要求为某网址增加用户登录功能。登录页面是现成的,但是位于另一个域名。当request 没带token ,要求跳转此登录页面,用户登录后会返回token. 此时再跳回原网址。这个过程如何避免发生跨域问题? 最简单的方案 登…...
自动化解决方案:修复devicedisplaystatusmanager.dll丢失
在Windows操作系统中,DLL(动态链接库)文件扮演着至关重要的角色。它们为应用程序提供必要的函数和数据,以确保系统的平稳运行。然而,有时我们可能会遇到DLL文件丢失或损坏的问题,比如DeviceDisplayStatusMa…...
G-Helper深度解析:轻量级华硕性能控制替代方案革新实践指南
G-Helper深度解析:轻量级华硕性能控制替代方案革新实践指南 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Stri…...
JSXBIN高效解码工具:突破Adobe脚本加密的技术方案与实战指南
JSXBIN高效解码工具:突破Adobe脚本加密的技术方案与实战指南 【免费下载链接】jsxer A fast and accurate JSXBIN decompiler. 项目地址: https://gitcode.com/gh_mirrors/js/jsxer 技术原理揭秘 二进制结构解析:JSXBIN如何存储代码信息…...
如何免费解锁百度网盘SVIP下载:Mac版终极加速指南
如何免费解锁百度网盘SVIP下载:Mac版终极加速指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘缓慢的下载速度而烦恼吗&a…...
Nanbeige 4.1-3B 在AI Agent场景的应用:自主任务规划与执行
Nanbeige 4.1-3B 在AI Agent场景的应用:自主任务规划与执行 最近和几个做项目管理的朋友聊天,他们都在抱怨一件事:每周整理项目文档和写周报,简直是“体力活”。从各个文件夹里翻找文件,手动汇总信息,再绞…...
春联生成模型-中文-base环境隔离部署:Anaconda虚拟环境配置指南
春联生成模型-中文-base环境隔离部署:Anaconda虚拟环境配置指南 每次想尝试一个新的AI模型,最头疼的可能不是模型本身,而是环境配置。装了这个包,发现和之前项目的包版本冲突;好不容易跑起来,结果报了一堆…...
终极指南:如何用BetterGI智能辅助工具彻底解放你的原神游戏体验
终极指南:如何用BetterGI智能辅助工具彻底解放你的原神游戏体验 【免费下载链接】better-genshin-impact 📦BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动刷本 | 自动采集/挖矿/锄地 | 一条龙 | 全连…...
微信好友数据分析与班级学生信息分析实战
微信好友数据分析与班级学生信息分析一、设计思想两个数据分析案例,旨在综合运用Python数据分析与可视化库(Pandas、Matplotlib、PyEcharts、WordCloud、SnowNLP等),完成从数据读取、清洗、分析到可视化的全流程。设计思想如下&am…...
GLM-4.1V-9B-Base零基础入门:5分钟学会上传图片智能问答
GLM-4.1V-9B-Base零基础入门:5分钟学会上传图片智能问答 1. 认识GLM-4.1V-9B-Base GLM-4.1V-9B-Base是智谱开源的一款视觉多模态理解模型,专门用于处理图像内容识别、场景描述和目标问答等任务。与普通聊天模型不同,它专注于视觉理解能力&a…...
如何实现Archery复杂SQL审核表单的分步提交与智能验证:完整指南
如何实现Archery复杂SQL审核表单的分步提交与智能验证:完整指南 【免费下载链接】Archery SQL 审核查询平台 项目地址: https://gitcode.com/gh_mirrors/ar/Archery Archery作为一款专业的SQL审核查询平台,其前端表单设计采用了先进的分步提交与智…...
手把手玩转三相SPWM逆变器
三相电压型SPWM逆变器控制设计及应用(原理图工程源代码工 10067-三相电压型SPWM逆变器控制设计及应用(原理图工程源代码工程仿真工程详细说明书PPT) 随着国家电网的发展,国明对于电网的使用要求越来越高,并且家家户户均…...
