【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 可以查看当前帮助文件所在的绝对路径:
2 退出帮助系统
命令模式下::q
+ Enter(与普通文件的退出一样)
3 查看具体命令的帮助文档
例如命令 dd
,命令模式下输入::help dd
+ Enter 即可:
文档说:Delete [count] lines [into register x] linewise.
方括号内,是选填项,可以暂时忽略,于是变为:Delete lines linewise.
即按行删除(一整行)内容。
register
和 linewise
这里不展开,后续会介绍。
4 查看帮助文档中的主题
除了用 :help <command>
查看具体的命令,还可以在打开的帮助页查看不同的主题,例如上面的 count
:
5 帮助文档间的上翻、下翻
返回上一个帮助页:按 Ctrl + O(即 Old
,旧的主题)
返回下一个帮助页:按 Ctrl + I
O 和 I 在键位上是挨着的,方便识记。
6 关于 linewise
使用 :help linewise
查看帮助页:
可见 linewise
表示以 行 为单位进行操作,与之对应的是 characterwise
,即以 字符 为单位进行操作。
7 查看光标所在术语名词的帮助文档
使用:Ctrl + ](右方括号)
视频中光标停留的术语名词也叫 “主题”(subject)。
8 关于退出命令的帮助
键入::help :q
+ Enter
注意,这里必须是 :q
,因为 q
是另一个命令,:q
才表示退出。
可见,:q
的全称为 :quit
,类似的还有 :help
,可缩写为 :h
。
9 帮助窗口与工作窗口的切换
使用组合键:Ctrl + WW(即按两次 Ctrl-w
)
10 查看命令帮助页前的自动提示(补全)
使用组合键:Ctrl + D
例如,输入 :help :q
后,按下 Ctrl + D,将出现下列以 :q
开头的候选命令列表:
此时可以用 Tab 或 Shift + Tab 遍历弹出的候选命令。
若再输入 :qu
并按 Ctrl + D,Vim
将 重新列出 以 :qu
开头的候选命令列表:
视频中的当前候选命令呈高亮显示,是因为配置了一个叫 wildmenu
的选项,实测时本地并未启用,可通过 :set wildmenu
打开,于是候选命令也有了高亮显示:
但该配置关闭电脑后又会还原。关于 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
,因此^f
与Ctrl-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
本节为上面同步练习的点评课。没有补充知识点,反复操练即可。
本节练习另附精美排版 PDF 格式,阅读体验更佳,详见:
vimclass/Exercise-04-GettingHelp.pdf
↩︎
相关文章:

【Vim Masterclass 笔记05】第 4 章:Vim 的帮助系统与同步练习(L14+L15+L16)
文章目录 Section 4:The Vim Help System(Vim 帮助系统)S04L14 Getting Help1 打开帮助系统2 退出帮助系统3 查看具体命令的帮助文档4 查看帮助文档中的主题5 帮助文档间的上翻、下翻6 关于 linewise7 查看光标所在术语名词的帮助文档8 关于退…...

Multisim更新:振幅调制器+解调器(含仿真程序+文档+原理图+PCB)
前言 继3年前设计的:Multisim:振幅调制器的设计(含仿真程序文档原理图PCB),有读者表示已经不能满足新需求,需要加上新的解调器功能😂😂😂,鸽了很久这里便安排…...
CentOS — 群组管理
文章目录 一、查看群组二、添加群组三、删除群组四、修改群组 Linux 系统中每个用户都属于一个特定的群组。 若不设置用户的群组,默认会创建一个和用户名一样的群组,并将用户分到该群组。 一、查看群组 groups 用户名:查看用户所属群组。 二…...

【pytorch】注意力机制-1
1 注意力提示 1.1 自主性的与非自主性的注意力提示 非自主性提示: 可以简单地使用参数化的全连接层,甚至是非参数化的最大汇聚层或平均汇聚层。 自主性提示 注意力机制与全连接层或汇聚层区别开来。在注意力机制的背景下,自主性提示被称为查…...
html 元素中的data-v-xxxxxx 是什么?为什么有的元素有?有的没有?
data-v-xxxxxx 在 HTML 中,data-v 属性通常与 Vue.js 或其他前端框架一起使用,特别是当这些框架结合 CSS 预处理器(如 Sass、Less)和单文件组件(Single File Components, SFCs)时。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多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 一、极限学习机(ELM) 极限学习机是一种单层前馈神经网络,具有训练速…...
Swift Protocols(协议)、Extensions(扩展)、Error Handling(错误处理)、Generics(泛型)
最近在学习 Swift,总结相关知识 1. Protocols(协议) 1.1 协议的定义和实现 协议(protocol) 是一种定义方法和属性的蓝图,任何类、结构体或枚举都可以遵循协议。遵循协议后,需要实现协议中定义…...
.NET中的强名称和签名机制
.NET中的强名称(Strong Name)和签名机制是.NET Framework引入的一种安全性和版本控制机制。以下是关于.NET中强名称和签名机制的详细解释: 强名称 定义: 强名称是由程序集的标识加上公钥和数字签名组成的。程序集的标识包括简单文…...

使用 NestJS 构建高效且模块化的 Node.js 应用程序,从安装到第一个 API 端点:一步一步指南
一、安装 NestJS 要开始构建一个基于 NestJS 的应用,首先需要安装一系列依赖包。以下是必要的安装命令: npm i --save nestjs/core nestjs/common rxjs reflect-metadata nestjs/platform-express npm install -g ts-node包名介绍nestjs/coreNestJS 框…...

2025年大模型技术发展趋势展望:高速旋转的飞轮
2025年大模型技术发展趋势展望 引言1. 多模态大模型(MMM):从单一模态到高级模态融合2. 轻量化大模型:从大参数模型到小参数模型3. 强推理大模型:从概率生成到逻辑推理4. 移动端/边缘端Agent:从云端到本地5.…...
java中类的加载过程及各个阶段与运行时数据区中堆和方法区存储内容
java中类的加载过程 Java 类的加载是 JVM 将 字节码文件(.class 文件)加载到内存并最终转化为运行时数据的过程。它分为以下 五个主要阶段:加载、验证、准备、解析、初始化,每个阶段都有对应的内存位置存储相关信息。以下是类加载…...
渗透测试--Web基础漏洞利用技巧
渗透测试--Web基础漏洞利用技巧 本文章写了Web基础漏洞中一些不那么常见的利用技巧,而不谈及漏洞的原理以及常见用法。 SQL 俺是SQLmap党,哈哈,所以这块就不多讲了。详情可见文章《渗透测试--SQLmap_渗透测试sqlmap-CSDN博客》 XXE XXE组成…...
SpringBoot下载文件的几种方式
小文件:直接将文件一次性读取到内存中,文件大可能会导致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 官方网站:https://www.jetbrains.com/pycharm/。下载社区版(免费)或专业版(收费,提供更多功能)。按照操作系统的安装指导安装 PyCharm。安装后打开 PyCharm,并根…...
我用Ai学Android Jetpack Compose之Button
答案来自 通义千问,代码同样需要到Android Studio里实践,才能学会。完整工程代码见文末。 我要学Button,麻烦介绍一下 当然可以!Button 是 Jetpack Compose 中用于创建可点击按钮的 Composable 函数。它提供了丰富的配置选项来定…...

修改secure-file-priv参数-mysql5.7.26限制不允许导入或导出的解决方法
文章目录 前言secure_file_priv参数说明修改secure_file_priv参数的步骤 前言 本人是在sql注入的文件上传拿web shel 时所用到的写入文件权限遇到文件上传不成功的问题,记住修改后,重启mysql才生效,最后可以查看验证一下。 secure_file_priv…...
C# 设计模式(结构型模式):适配器模式
C# 设计模式(结构型模式):适配器模式 在软件开发中,我们经常会遇到需要将不同接口的组件结合在一起的情况。此时,适配器模式(Adapter Pattern)就派上了用场。它属于结构型设计模式,…...

Spring Cloud微服务多模块架构:父子工程搭建实践
一、前言 在现代微服务架构中,Spring Cloud 提供了一整套工具和技术栈来简化分布式系统的开发。为了更好地组织和管理复杂的微服务项目,使用 Maven 多模块(父子工程) 是一种高效的方法。 父子工程 是 Maven 中的一种项目结构…...
SkinnedMeshRenderer相关知识
SkinnedMeshRenderer和MeshRenderer unity中SkinnedMeshRenderer是CPU去更改顶点位置的。 而当使用MeshRenderer时,可以靠GPU来进行蒙皮(即更改顶点位置)。 SkinnedMeshRenderer是多线程处理的,在小程序游戏中,只支持…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...
Python 高效图像帧提取与视频编码:实战指南
Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...

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

Python训练营-Day26-函数专题1:函数定义与参数
题目1:计算圆的面积 任务: 编写一个名为 calculate_circle_area 的函数,该函数接收圆的半径 radius 作为参数,并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求:函数接收一个位置参数 radi…...
PCA笔记
✅ 问题本质:为什么让矩阵 TT 的行列式为 1? 这个问题通常出现在我们对数据做**线性变换(旋转/缩放)**的时候,比如在 PCA 中把数据从原始坐标系变换到主成分方向时。 📌 回顾一下背景 在 PCA 中ÿ…...

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…...