【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…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...

Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...

如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...

Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...