【Vim Masterclass 笔记08】第 6 章:Vim 中的文本变换及替换操作 + S06L20:文本的插入、变更、替换,以及合并操作

news/2025/1/8 2:27:26/

文章目录

  • Section 6:Transforming and Substituting Text
    • S06L21 Inserting, Changing, Replacing, and Joining
      • 1 定位到行首非空字符,并启用插入模式
      • 2 在紧挨光标的下一个字符位置启动插入模式
      • 3 定位到一行末尾,并启用插入模式
      • 4 定位到光标的下一行,并启用插入模式
      • 5 快速输入 80 个星号符
      • 6 在光标下方创建五行以 # 开头的行
      • 7 在光标下方创建四行以 IP 片段 10.11.12. 开头的行
      • 8 使用替换模式
      • 9 变更一个单词
        • 9.1 将 canine 快速替换为 cat
        • 9.2 将光标及后面的内容都删掉,并快速替换为其他内容
        • 9.3 变更一整行内容
      • 10 快速切换大小写
      • 11 将文字转为大写
      • 12 将文字转为小写
      • 13 合并多行

写在前面
本篇开始第 6 章的笔记梳理。对文本的这些变换操作,非常类似在 MS Word 中利用 CtrlShift 与四个方向键的组合。不过 Vim 的强大就在于它对文本进行了更细致的划分,无论是定位还是批量输入、批量替换,都比 Word 更高效。例如本节介绍的文本操作,看似微不足道,可一旦熟练应用了这些小技巧,实际工作中的效率提升就会十分可观。

Section 6:Transforming and Substituting Text


S06L21 Inserting, Changing, Replacing, and Joining

演示文件:vimclass/inserting.txt

本节介绍文本的插入、变更、替换,以及文本行的合并。

1 定位到行首非空字符,并启用插入模式

Shift + I:相当于 ^ + I

2 在紧挨光标的下一个字符位置启动插入模式

A

3 定位到一行末尾,并启用插入模式

Shift + A:表示 Append to the end of the line

4 定位到光标的下一行,并启用插入模式

O

若要定位到上一行并启用插入模式,则使用 Shift + O

5 快速输入 80 个星号符

80I* + Esc

6 在光标下方创建五行以 # 开头的行

5O# + Esc

适用场景:快速注释配置文件或 Shell 脚本。

7 在光标下方创建四行以 IP 片段 10.11.12. 开头的行

4O + 10.11.12. + Esc

实测效果:

img1

8 使用替换模式

开启方式:Shift + R(按 Esc 返回常规模式)

注意:若 只有一个字符 需要替换,则使用小写的 R 即可,替换完毕将自动返回常规模式。

9 变更一个单词

使用 c 命令(表 change),格式为:["x]c{motion}

9.1 将 canine 快速替换为 cat

方法:光标定位到字母 c,按 CW + cat + Esc

发散:将 canine 同时存入寄存器 "a:输入 "A + CW + cat + Esc

9.2 将光标及后面的内容都删掉,并快速替换为其他内容

例如将 car 及后面的内容都替换为 mouse:光标先定位到字母 c,然后按 C$ + mouse + Esc

类比 d 命令,C$ 也可以等效使用 Shift + C

9.3 变更一整行内容

使用 CC(联想 DD

10 快速切换大小写

使用 ~:将光标处的单个字母从小写变为大写,或从大写变为小写。

切换当前单词的大小写:按 G~W(语法:g~{motion}

切换当前行所有字符的大小写,方法为:

  1. 光标定位到行首;
  2. G~$

类比 d 命令和 c 命令,这里的 G~$ 也等效于 G</kbd><kbd>

11 将文字转为大写

语法格式:gU{motion}UUpper 的首字母)

例如,将当前单词转为大写:G + (Shift + U)+ W

将整行内容大写:使用命令 gUU(两个 U 都是大写形式)

12 将文字转为小写

语法格式:gu{motion}(大写为 U,小写自然为 u

将整行内容小写:使用命令 guu(两个 u 都是小写形式)

13 合并多行

使用 Shift + J:用于合并光标所在行及下一行,并智能补足一个或两个空格。

关于合并后 Vim 的智能空格补足机制:

首行的末尾Vim 补充空格数
既没有 .、又没有空格1
. 结尾2
.<Space> 结尾1
.<Space><Space> 结尾(即自带两个及以上空格)0

如果不希望 Vim 自动补空格,使用 gJ 命令。

合并包含光标在内的余下三行:3 +(Shift + J)(即 3J 命令)


http://www.ppmy.cn/news/1561029.html

相关文章

Docker入门常用命令总结

1.从远程仓库拉取一个纯净的镜像 docker pull docker .io/centos 2.创建并进入容器&#xff08;左外右内&#xff09; docker run --name xxx -dit 镜像id&#xff08;镜像名称:Tag&#xff09; /bin/bash 【参数必须放在镜像ID之前】 -i 让Docker分配一个伪终端&#xff0c;并…

C# OpenCV机器视觉:非刚性物体跟踪

在实验室的一方小天地里&#xff0c;阳光像是被赋予了生命&#xff0c;透过窗户&#xff0c;调皮地在阿强的桌面上跳跃、嬉戏&#xff0c;洒下一片片暖融融的金黄光影。阿强坐在桌前&#xff0c;双眼凝视着眼前那台宛如沉睡巨兽般的高分辨率摄像头&#xff0c;以及一旁静静矗立…

samba服务 使用

SAMBA服务 访问安装 http://www.samba.org/ #模拟window共享[rootvm ~]# yum -y install samba [rootvm ~]# systemctl start smb [rootvm ~]# ss -antlp| grep smb LISTEN 0 50 *:445 *:* users:(("smbd",pid20155,fd36)) LISTEN 0…

JSON结构快捷转XML结构API集成指南

JSON结构快捷转XML结构API集成指南 引言 在当今的软件开发世界中&#xff0c;数据交换格式的选择对于系统的互操作性和效率至关重要。JSON&#xff08;JavaScript Object Notation&#xff09;和XML&#xff08;eXtensible Markup Language&#xff09;是两种广泛使用的数据表…

Java SpringBoot使用Apache POI导入导出Excel文件

点击下载《Java SpringBoot使用Apache POI导入导出Excel文件(源代码)》 1. Apache POI 简介 Apache POI 是一个强大的 Java 库&#xff0c;用于处理 Microsoft Office 文档&#xff0c;包括 Excel 文件&#xff08;.xls 和 .xlsx&#xff09;。在 Java Spring Boot 项目中&am…

国产与国际老牌数据库如何选择

作为一名在数据库运维一线摸爬滚打多年&#xff0c;如今已斩获数据库运维大师称号的老兵&#xff0c;深知初入行者的迷茫。如果你正站在数据库运维学习的路口&#xff0c;纠结于国产数据库还是 Oracle 等国际老牌数据库&#xff0c;别慌&#xff0c;且听我一一道来。 对于毫无基…

2025年三个月自学手册 网络安全(黑客技术)

&#x1f91f; 基于入门网络安全/黑客打造的&#xff1a;&#x1f449;黑客&网络安全入门&进阶学习资源包 前言 什么是网络安全 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“…

只谈C++11新特性 - 内联命名空间

内联命名空间 背景 假设我们需要为一个库添加版本支持,C++98/03 通常通过命名空间来区分版本: namespace LibraryV1 {void printVersion() {std::cout << "Library Version 1" << std::endl;} }namespace LibraryV2 {void printVersion() {std::cou…