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

文章目录

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

实测效果:

8 使用替换模式

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

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

9 变更一个单词

使用 c 命令(表 c hange),格式为:["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 命令)

相关推荐
s_little_monster1 小时前
【Linux】进程地址空间
linux·运维·服务器·经验分享·笔记·学习·学习方法
Pandaconda4 小时前
【新人系列】Python 入门(三十):工作常用第三方库 - 上
开发语言·经验分享·笔记·后端·python·面试·第三方库
羊小猪~~5 小时前
MYSQL学习笔记(七):新年第一篇之子查询
数据库·笔记·后端·sql·学习·mysql·考研
siy23336 小时前
[c语言日记]动态规划入门:杨辉三角
c语言·开发语言·笔记·学习·算法·动态规划
JeffreyGu.7 小时前
软考中级软件设计师如何两个月通过
笔记
追逐梦想永不停7 小时前
公司配置内网穿透方法笔记(二):FTP内网穿透方法
笔记
小高Baby@8 小时前
Deepseek
人工智能·笔记
『₣λ¥√≈üĐ』9 小时前
推荐系统Day1笔记
笔记
仲大Nanami11 小时前
黑马React保姆级(PPT+笔记)
笔记·学习·react.js
隼玉14 小时前
C语言简单练习题
c语言·c++·笔记·学习·算法