当前位置: 首页 > news >正文

【Vim Masterclass 笔记05】第 4 章:Vim 的帮助系统与同步练习(L14+L15+L16)

文章目录

  • Section 4:The Vim Help System(Vim 帮助系统)
  • S04L14 Getting Help
    • 1 打开帮助系统
    • 2 退出帮助系统
    • 3 查看具体命令的帮助文档
    • 4 查看帮助文档中的主题
    • 5 帮助文档间的上翻、下翻
    • 6 关于 linewise
    • 7 查看光标所在术语名词的帮助文档
    • 8 关于退出命令的帮助
    • 9 帮助窗口与工作窗口的切换
    • 10 查看命令帮助页前的自动提示(补全)
  • S04L15 Exercise 04 - Getting Help
    • 1 训练目标
    • 2 操作指令
      • 2.1 打开文件 help.txt
      • 2.2 打开帮助系统
      • 2.3 退出帮助系统
      • 2.4 再次打开帮助系统
        • 2.4.1 用学过的命令浏览帮助文档
        • 2.4.2 练习在帮助文档间跳转
        • 2.4.3 练习使用 Ctrl-g 的等效命令
        • 2.4.4 回到之前编辑的文件
      • 2.5 亲自动手
      • 2.6 结束练习
  • S04L16 Exercise 04 - Getting Help - Walkthrough

写在前面
本篇为 Vim 大师课的第 4 章学习笔记,主要介绍 Vim 自带的强大帮助系统。为什么这么好用的文本编辑工具网上的科普文章并不多?因为它的帮助系统已经把 Vim 的方方面面介绍得很透彻了,更何况轻量简洁本就是 Unix 的一贯风格。但作为技术专栏,除了梳理这些知识点,更重要的是帮助自己快速上手 Vim 操作,因此我对每个核心知识点都补充了本地实操截图,并配上了完整翻译后的同步练习环节。希望后来者也可以少走一些弯路,至少不必被课程中的全英文描述吓退。

Section 4:The Vim Help System(Vim 帮助系统)

S04L14 Getting Help


本节介绍 Vim 的帮助系统的用法(演示文件:help.txt)。

1 打开帮助系统

命令模式下::help + Enter

Vim 帮助系统也是一个文本窗口,之前介绍的 HJKL 等命令均有效。

使用 Ctrl + G 可以查看当前帮助文件所在的绝对路径:

img1

2 退出帮助系统

命令模式下::q + Enter(与普通文件的退出一样)

3 查看具体命令的帮助文档

例如命令 dd,命令模式下输入::help dd + Enter 即可:

img2

文档说:Delete [count] lines [into register x] linewise.

方括号内,是选填项,可以暂时忽略,于是变为:Delete lines linewise. 即按行删除(一整行)内容。

registerlinewise 这里不展开,后续会介绍。

4 查看帮助文档中的主题

除了用 :help <command> 查看具体的命令,还可以在打开的帮助页查看不同的主题,例如上面的 count

img3

5 帮助文档间的上翻、下翻

返回上一个帮助页:按 Ctrl + O(即 Old,旧的主题)

返回下一个帮助页:按 Ctrl + I

OI 在键位上是挨着的,方便识记。

6 关于 linewise

使用 :help linewise 查看帮助页:

img4

可见 linewise 表示以 为单位进行操作,与之对应的是 characterwise,即以 字符 为单位进行操作。

7 查看光标所在术语名词的帮助文档

使用:Ctrl + ](右方括号)

img5

视频中光标停留的术语名词也叫 “主题”(subject)。

8 关于退出命令的帮助

键入::help :q + Enter

注意,这里必须是 :q,因为 q 是另一个命令,:q 才表示退出。

img6

可见,:q 的全称为 :quit,类似的还有 :help,可缩写为 :h

9 帮助窗口与工作窗口的切换

使用组合键:Ctrl + WW(即按两次 Ctrl-w

10 查看命令帮助页前的自动提示(补全)

使用组合键:Ctrl + D

例如,输入 :help :q 后,按下 Ctrl + D,将出现下列以 :q 开头的候选命令列表:

img7

此时可以用 TabShift + Tab 遍历弹出的候选命令。

若再输入 :qu 并按 Ctrl + DVim重新列出:qu 开头的候选命令列表:

img8

视频中的当前候选命令呈高亮显示,是因为配置了一个叫 wildmenu 的选项,实测时本地并未启用,可通过 :set wildmenu 打开,于是候选命令也有了高亮显示:

img9

但该配置关闭电脑后又会还原。关于 Vim 配置如何永久生效,后续会详述,这里略过。


S04L15 Exercise 04 - Getting Help

1 训练目标

熟悉 Vim 帮助系统的用法。1

2 操作指令

2.1 打开文件 help.txt

打开一个本地命令行会话,使用 Vim 打开文件 help.txt(练习文件默认解压到 Downloads 文件夹下):

cd Downloads
cd vimclass
vim help.txt

2.2 打开帮助系统

输入::help + Enter 打开帮助进行浏览。须知帮助文档也是一个普通的文本文件。

2.3 退出帮助系统

使用 :q + Enter

2.4 再次打开帮助系统

换用 :h + Enter 再次打开 Vim 帮助。很多时候,Vim 命令都有缩写形式。这里的 :h 相当于 :help

2.4.1 用学过的命令浏览帮助文档

前面已经学了一些 Vim 命令。使用帮助系统获取下列命令的帮助文档。仔细阅读文档加深对每一个命令的印象:

  • :h i
  • :h :wq
  • :h :q
  • :h Ctrl-f:可使用 [count]Ctrl-f 下翻 count 页,或 [count]Ctrl-b 上翻 count
  • :h ^f (注意:快捷键 ^ 相当于 Ctrl,因此 ^fCtrl-f 是同一个意思)
  • :h ^b
  • :h w:文档中的 <S-Right> 表示按住 Shift 的同时再按下右箭头 Right 键。
2.4.2 练习在帮助文档间跳转

键入 :h w + Enter 查看 W 命令的帮助文档。将光标定位到单词 exclusive 上,按 Ctrl + ] 跳转到 exclusive 对应的帮助页;查阅完毕,使用 Ctrl + O 返回上一个帮助页(即 W 命令。这里的 “O” 表示 “Old”,有 “过去的、旧的” 的意思)。

再将光标定位到单词 count 上,按 Ctrl + ] 查看该主题(subject)的帮助文档。阅读完 count 相关帮助后,按 Ctrl + O 返回 上一个帮助主题。

2.4.3 练习使用 Ctrl-g 的等效命令

要查看 Ctrl + G 的帮助文档,输入 :h ^g + Enter。还有和它类似的命令吗?不错,还有 :f:file 命令。输入 :f + Enter 即可查看帮助。留意屏幕下方出现的一行文本。它将显示当面在用的帮助文档的名称。 注意屏幕下方出现的一行文本。 它会显示当前帮助文件的具体路径。

2.4.4 回到之前编辑的文件

按下 Ctrl + WW(即按住 Ctrl 并敲两次 W),此时光标位于位于底部那个窗口,即练习刚开始时打开的 help.txt 文件所在的窗口。可通过 Ctrl + G、或者使用 :f:file 命令进一步确认。

2.5 亲自动手

按下 Ctrl + WW 让光标再次回到 Vim 帮助窗口。回忆几个已经学过的命令,然后通过帮助系统查看其文档。用本节学到的知识尽情探索吧。

2.6 结束练习

完成练习,输入 :q + Enter 退出帮助系统;使用 :q! + Enter 停止文件编辑并退出 Vim。


S04L16 Exercise 04 - Getting Help - Walkthrough


本节为上面同步练习的点评课。没有补充知识点,反复操练即可。


  1. 本节练习另附精美排版 PDF 格式,阅读体验更佳,详见:vimclass/Exercise-04-GettingHelp.pdf ↩︎

相关文章:

【Vim Masterclass 笔记05】第 4 章:Vim 的帮助系统与同步练习(L14+L15+L16)

文章目录 Section 4&#xff1a;The Vim Help System&#xff08;Vim 帮助系统&#xff09;S04L14 Getting Help1 打开帮助系统2 退出帮助系统3 查看具体命令的帮助文档4 查看帮助文档中的主题5 帮助文档间的上翻、下翻6 关于 linewise7 查看光标所在术语名词的帮助文档8 关于退…...

Multisim更新:振幅调制器+解调器(含仿真程序+文档+原理图+PCB)

前言 继3年前设计的&#xff1a;Multisim&#xff1a;振幅调制器的设计&#xff08;含仿真程序文档原理图PCB&#xff09;&#xff0c;有读者表示已经不能满足新需求&#xff0c;需要加上新的解调器功能&#x1f602;&#x1f602;&#x1f602;&#xff0c;鸽了很久这里便安排…...

CentOS — 群组管理

文章目录 一、查看群组二、添加群组三、删除群组四、修改群组 Linux 系统中每个用户都属于一个特定的群组。 若不设置用户的群组&#xff0c;默认会创建一个和用户名一样的群组&#xff0c;并将用户分到该群组。 一、查看群组 groups 用户名&#xff1a;查看用户所属群组。 二…...

【pytorch】注意力机制-1

1 注意力提示 1.1 自主性的与非自主性的注意力提示 非自主性提示&#xff1a; 可以简单地使用参数化的全连接层&#xff0c;甚至是非参数化的最大汇聚层或平均汇聚层。 自主性提示 注意力机制与全连接层或汇聚层区别开来。在注意力机制的背景下&#xff0c;自主性提示被称为查…...

html 元素中的data-v-xxxxxx 是什么?为什么有的元素有?有的没有?

data-v-xxxxxx 在 HTML 中&#xff0c;data-v 属性通常与 Vue.js 或其他前端框架一起使用&#xff0c;特别是当这些框架结合 CSS 预处理器&#xff08;如 Sass、Less&#xff09;和单文件组件&#xff08;Single File Components, SFCs&#xff09;时。data-v 属性的主要目的是…...

第27周:文献阅读及机器学习

目录 摘要 Abstract 一、文献阅读 发现问题 研究方法 CNN-LSTM DT SVR 创新点 案例分析 数据准备 模型性能 预测模型的实现 仿真实验及分析 二、LSTM 1、基本结构 2、具体步骤 3、举例说明 4、原理理解 总结 摘要 本周阅读文献《Short-term water qua…...

回归预测 | MATLAB实ELM-Adaboost多输入单输出回归预测

回归预测 | MATLAB实ELM-Adaboost多输入单输出回归预测 目录 回归预测 | MATLAB实ELM-Adaboost多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 一、极限学习机&#xff08;ELM&#xff09; 极限学习机是一种单层前馈神经网络&#xff0c;具有训练速…...

Swift Protocols(协议)、Extensions(扩展)、Error Handling(错误处理)、Generics(泛型)

最近在学习 Swift&#xff0c;总结相关知识 1. Protocols&#xff08;协议&#xff09; 1.1 协议的定义和实现 协议&#xff08;protocol&#xff09; 是一种定义方法和属性的蓝图&#xff0c;任何类、结构体或枚举都可以遵循协议。遵循协议后&#xff0c;需要实现协议中定义…...

.NET中的强名称和签名机制

.NET中的强名称&#xff08;Strong Name&#xff09;和签名机制是.NET Framework引入的一种安全性和版本控制机制。以下是关于.NET中强名称和签名机制的详细解释&#xff1a; 强名称 定义&#xff1a; 强名称是由程序集的标识加上公钥和数字签名组成的。程序集的标识包括简单文…...

使用 NestJS 构建高效且模块化的 Node.js 应用程序,从安装到第一个 API 端点:一步一步指南

一、安装 NestJS 要开始构建一个基于 NestJS 的应用&#xff0c;首先需要安装一系列依赖包。以下是必要的安装命令&#xff1a; npm i --save nestjs/core nestjs/common rxjs reflect-metadata nestjs/platform-express npm install -g ts-node包名介绍nestjs/coreNestJS 框…...

2025年大模型技术发展趋势展望:高速旋转的飞轮

2025年大模型技术发展趋势展望 引言1. 多模态大模型&#xff08;MMM&#xff09;&#xff1a;从单一模态到高级模态融合2. 轻量化大模型&#xff1a;从大参数模型到小参数模型3. 强推理大模型&#xff1a;从概率生成到逻辑推理4. 移动端/边缘端Agent&#xff1a;从云端到本地5.…...

java中类的加载过程及各个阶段与运行时数据区中堆和方法区存储内容

java中类的加载过程 Java 类的加载是 JVM 将 字节码文件&#xff08;.class 文件&#xff09;加载到内存并最终转化为运行时数据的过程。它分为以下 五个主要阶段&#xff1a;加载、验证、准备、解析、初始化&#xff0c;每个阶段都有对应的内存位置存储相关信息。以下是类加载…...

渗透测试--Web基础漏洞利用技巧

渗透测试--Web基础漏洞利用技巧 本文章写了Web基础漏洞中一些不那么常见的利用技巧&#xff0c;而不谈及漏洞的原理以及常见用法。 SQL 俺是SQLmap党&#xff0c;哈哈&#xff0c;所以这块就不多讲了。详情可见文章《渗透测试--SQLmap_渗透测试sqlmap-CSDN博客》 XXE XXE组成…...

SpringBoot下载文件的几种方式

小文件&#xff1a;直接将文件一次性读取到内存中&#xff0c;文件大可能会导致OOM GetMapping("/download1")public void download1(HttpServletResponse response) throws IOException {// 指定要下载的文件File file new File("C:\\Users\\syd\\Desktop\\do…...

教程:从pycharm基于anaconda构建机器学习环境并运行第一个 Python 文件

1. 安装 PyCharm 访问 PyCharm 官方网站&#xff1a;https://www.jetbrains.com/pycharm/。下载社区版&#xff08;免费&#xff09;或专业版&#xff08;收费&#xff0c;提供更多功能&#xff09;。按照操作系统的安装指导安装 PyCharm。安装后打开 PyCharm&#xff0c;并根…...

我用Ai学Android Jetpack Compose之Button

答案来自 通义千问&#xff0c;代码同样需要到Android Studio里实践&#xff0c;才能学会。完整工程代码见文末。 我要学Button&#xff0c;麻烦介绍一下 当然可以&#xff01;Button 是 Jetpack Compose 中用于创建可点击按钮的 Composable 函数。它提供了丰富的配置选项来定…...

修改secure-file-priv参数-mysql5.7.26限制不允许导入或导出的解决方法

文章目录 前言secure_file_priv参数说明修改secure_file_priv参数的步骤 前言 本人是在sql注入的文件上传拿web shel 时所用到的写入文件权限遇到文件上传不成功的问题&#xff0c;记住修改后&#xff0c;重启mysql才生效&#xff0c;最后可以查看验证一下。 secure_file_priv…...

C# 设计模式(结构型模式):适配器模式

C# 设计模式&#xff08;结构型模式&#xff09;&#xff1a;适配器模式 在软件开发中&#xff0c;我们经常会遇到需要将不同接口的组件结合在一起的情况。此时&#xff0c;适配器模式&#xff08;Adapter Pattern&#xff09;就派上了用场。它属于结构型设计模式&#xff0c;…...

Spring Cloud微服务多模块架构:父子工程搭建实践

一、前言 在现代微服务架构中&#xff0c;Spring Cloud 提供了一整套工具和技术栈来简化分布式系统的开发。为了更好地组织和管理复杂的微服务项目&#xff0c;使用 Maven 多模块&#xff08;父子工程&#xff09; 是一种高效的方法。 ‍ 父子工程 是 Maven 中的一种项目结构…...

SkinnedMeshRenderer相关知识

SkinnedMeshRenderer和MeshRenderer unity中SkinnedMeshRenderer是CPU去更改顶点位置的。 而当使用MeshRenderer时&#xff0c;可以靠GPU来进行蒙皮&#xff08;即更改顶点位置&#xff09;。 SkinnedMeshRenderer是多线程处理的&#xff0c;在小程序游戏中&#xff0c;只支持…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

GitFlow 工作模式(详解)

今天再学项目的过程中遇到使用gitflow模式管理代码&#xff0c;因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存&#xff0c;无论是github还是gittee&#xff0c;都是一种基于git去保存代码的形式&#xff0c;这样保存代码…...

Python 高效图像帧提取与视频编码:实战指南

Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...

实战设计模式之模板方法模式

概述 模板方法模式定义了一个操作中的算法骨架&#xff0c;并将某些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的前提下&#xff0c;重新定义算法中的某些步骤。简单来说&#xff0c;就是在一个方法中定义了要执行的步骤顺序或算法框架&#xff0c;但允许子类…...

Python训练营-Day26-函数专题1:函数定义与参数

题目1&#xff1a;计算圆的面积 任务&#xff1a; 编写一个名为 calculate_circle_area 的函数&#xff0c;该函数接收圆的半径 radius 作为参数&#xff0c;并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求&#xff1a;函数接收一个位置参数 radi…...

PCA笔记

✅ 问题本质&#xff1a;为什么让矩阵 TT 的行列式为 1&#xff1f; 这个问题通常出现在我们对数据做**线性变换&#xff08;旋转/缩放&#xff09;**的时候&#xff0c;比如在 PCA 中把数据从原始坐标系变换到主成分方向时。 &#x1f4cc; 回顾一下背景 在 PCA 中&#xff…...

vue3+el-table 利用插槽自定义数据样式

<el-table-column label"匹配度" prop"baseMatchingLevel"><template #default"scope"><div :style"{ color: scope.row.baseMatchingLevel > 0.8 ? #00B578 : #FA5151 }">{{ scope.row.baseMatchingLevel }}&l…...