【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 命令)

相关推荐
Pandaconda4 小时前
【Golang 面试题】每日 3 题(二十一)
开发语言·笔记·后端·面试·职场和发展·golang·go
Zhichao_974 小时前
【UE5 C++课程系列笔记】21——弱指针的简单使用
笔记·ue5
Naiva5 小时前
ESP32-C3 入门笔记08:多帧数据解析
笔记·notepad++
东京老树根9 小时前
Excel 技巧02 - 如何批量输入百分号 (★),如何输入百分号并指定小数位数,如何批量删除百分号,如何批量删除小数最后的0?
笔记·学习·excel·vba
warrah11 小时前
rabbitmq——岁月云实战笔记
笔记
细心的莽夫13 小时前
Spring 复习笔记
java·笔记·学习·spring·java-ee
颖风船13 小时前
(初学者)STM32 MP157中LED触发器笔记
笔记·stm32·嵌入式硬件
魔理沙偷走了BUG13 小时前
【数学建模笔记】评价模型-基于熵权法的TOPSIS模型
笔记·数学建模
挥剑决浮云 -13 小时前
STM32学习之 模块初始化和常用GPIO函数笔记
笔记·stm32·学习
笑鸿的学习笔记14 小时前
qt-C++笔记之动画框架(Qt Animation Framework)入门
c++·笔记·qt