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

【Vim Masterclass 笔记22】S09L40 + L41:同步练习11:Vim 的配置与 vimrc 文件的相关操作(含点评课内容)

文章目录

  • S09L40 Exercise 11 - Vim Settings and the Vimrc File
    • 1 训练目标
    • 2 操作指令
      • 2.1. 打开 vimrc-sample 文件
      • 2.2. 尝试各种选项与设置
      • 2.3. 将更改内容保存到 vimrc-sample 文件
      • 2.4. 将文件 vimrc-sample 的内容复制到寄存器
      • 2.5. 创建专属 vimrc 文件
      • 2.6. 对于 Mac、Linux 或 Unix 用户
      • 2.7. 对于 Windows 用户
      • 2.8. 将文件 vimrc-sample 中的内容粘贴到 vimrc 文件
      • 2.9. 根据需要添加更多个性化配置
    • 3 退出 Vim
  • S09L41 Exercise 11 - Vim Settings and the Vimrc File - Walkthrough

写在前面
本篇为第九章的同步练习环节,也是本章的收尾篇。讲师并没有在本节加入大量具体的 Vim 配置项练习,仅仅以个别选项为例进行了说明,主要思路还是结合 Vim 帮助文档(:h option-list 帮助和 :options 命令)来熟悉相关配置项,根据自身需求做定制。实操过程中,建议先在命令模式体验效果,满意后再转存到 vimrc 文件,同时加注必要的注释信息。我也明白,即便练习中说了要浏览一遍 Vim 的配置文档,很多人也会直接跳过这部分内容,然后抱怨没学到什么“真东西”。其实能否严格按要求去做,就能基本断定一个人的自学能力高低;虽然总有天生就很强的少部分天才,但对绝大部分的人而言,自学能力都是后天不断精进完善的结果。狮子搏兔,亦尽全力,更何况这是在给自己打基础。还望各位戒骄戒躁,且行且珍惜。


S09L40 Exercise 11 - Vim Settings and the Vimrc File

1 训练目标

熟悉 Vim 可视化模式的各种用法。1

2 操作指令

2.1. 打开 vimrc-sample 文件

Vim 打开源码包内的练习文件 vimrc-sample(默认解压到 Downloads 文件夹下):

cd Downloads
cd vimclass
vim vimrc-sample

2.2. 尝试各种选项与设置

查看文件内容并阅读每个配置项的注释信息,例如对 ruler 选项:

" Show the line and column number of the cursor position
set ruler

如果该选项后续可能会用到,则阅读该选项的 Vim 帮助文档(记得在选项名两边加注单引号,这样才能精准进入该选项文档,而不是其它相关文档)。例如,获取 ruler 选项的帮助文档,需要输入:

:h 'ruler' + Enter

读完文档想要尝试效果,则使用 set 命令进行设置。启用一个布尔型配置项,命令格式为 set <option-name>,例如:

:set ruler + Enter

若要禁用某选项,命令格式为 set no<option-name>,例如:

:set noruler + Enter

回忆一下,在多个打开的窗口间切换,需使用组合键 CtrlWW。如果决定不启用某选项,也可以在行首添加一个双引号(")将其注释:

" Show the line and column number of the cursor position
" set ruler

2.3. 将更改内容保存到 vimrc-sample 文件

保存变更内容,使用命令 :w + Enter

2.4. 将文件 vimrc-sample 的内容复制到寄存器

试将文件 vimrc-sample 中的内容复制到寄存器 "v 中,以遍后续粘贴到 vimrc 文件。实现方法:输入命令 gg"vyG 即可。该命令分步解释如下:

  • gg:用于将光标定位到文件开头处;
  • "v:指定寄存器 "v
  • yG:复制 motion 指令 G 扫过的内容,该指令用于将光标定位到文件最后一行。

2.5. 创建专属 vimrc 文件

打开 vimrc 文件最简单的方法是先启动 Vim(如果您是跟着操作到这里的,那么 Vim 已经在运行了),然后通过命令 :e <vimrc_full_name> 打开该文件。

2.6. 对于 Mac、Linux 或 Unix 用户

如果操作系统用的是 MacLinux 或者 Unix,则 vimrc 文件的文件名称为 .vimrc,可通过命令 :e ~/.vimrc 进行编辑:

:e ~/.vimrc

顺带提一下,~ 是一个代表您当前用户主目录的快捷方式(shortcut);/ 则为目录的分隔符;最后的 .vimrc 即为 Vim 的配置文件。以我的 Mac 系统为例,我的用户名为 jason,因此对应的主目录便是 /Users/jason

2.7. 对于 Windows 用户

如果操作系统为 Windows 系统,则对应的 vimrc 文件名为 _vimrc;可通过命令 :e ~/_vimrc 进行编辑:

:e ~/_vimrc

虽然 ~/ 是基于 Unix 系统的命名风格,但在 Windows 版的 Vim 中同样有效。顺带提一下,~ 是一个代表您当前用户主目录的快捷方式(shortcut);/ 则为目录的分隔符;最后的 _vimrc 即为 Vim 的配置文件。以我的 Windows 系统为例,我的用户名为 jason,因此对应的主目录便是 C:\Users\jason。本练习中,~/_vimrc 其实就对应 C:\Users\jason\_vimrc

2.8. 将文件 vimrc-sample 中的内容粘贴到 vimrc 文件

使用 put 命令将存入寄存器 "v 中的文件内容粘贴到 vimrc 文件,即输入: " VP 或者 " VShiftP

保存文件内容,使用命令::w + Enter

2.9. 根据需要添加更多个性化配置

至此,一个包含您个人偏好的定制 vimrc 文件就配置好了。如果还想探索更多配置项,可以通过命令 :h option-list:options 进行查阅,再将感兴趣的自定义配置项加入 vimrc 文件即可。

3 退出 Vim

如果编辑好了 vimrc 文件,就可以保存内容并退出 Vim,使用命令::wq! + Enter


S09L41 Exercise 11 - Vim Settings and the Vimrc File - Walkthrough

本节为同步练习的点评课,本章没有对具体配置项分别进行练习,因此没有需要特别补充说明的知识点。练习中复制示例文件到寄存器时,之所以使用 "v 寄存器,只是因为 v 代表 vimrc 文件,并没有特殊用法,特此说明。


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

相关文章:

【Vim Masterclass 笔记22】S09L40 + L41:同步练习11:Vim 的配置与 vimrc 文件的相关操作(含点评课内容)

文章目录 S09L40 Exercise 11 - Vim Settings and the Vimrc File1 训练目标2 操作指令2.1. 打开 vimrc-sample 文件2.2. 尝试各种选项与设置2.3. 将更改内容保存到 vimrc-sample 文件2.4. 将文件 vimrc-sample 的内容复制到寄存器2.5. 创建专属 vimrc 文件2.6. 对于 Mac、Linu…...

5.9 洞察 OpenAI - Translator:日志(Logger)模块的 “时光记录仪”

洞察 OpenAI - Translator:日志(Logger)模块的 “时光记录仪” 在开发和生产环境中,日志记录是确保应用程序正常运行和快速调试的核心机制之一。日志模块(Logger)用于记录应用程序的运行信息,包括错误、警告、调试信息、信息性事件等。通过日志,开发者可以实时监控程序…...

客户案例:电商平台对帐-账单管理(亚马逊amazon)

账单管理&#xff1a; 功能定义&#xff1a; 账单管理用于上传亚马逊&#xff08;amazon&#xff09;平台下载的原始账单数据&#xff0c;美国站、日本站、墨西哥站等账单模板直接进行数据上传&#xff0c;做到0调整&#xff0c;下载下来的账单数据无缝上传至对账平台-账单管…...

IP协议特性

在网络层中&#xff0c;最重要的协议就是IP协议&#xff0c;IP协议也有两个特性&#xff0c;即地址管理和路由选择。 1、地址管理 由于IPv4地址为4个字节&#xff0c;所以最多可以支持42亿个地址&#xff0c;但在现在&#xff0c;42亿明显不够用了。这就衍生出下面几个机制。…...

Kubernetes入门学习

kubernetes技术架构模型 一、kubernetes的Label标签 1.标签是以keyvalue的格式通过用户自定义指定&#xff0c;目的是将其加入到各种资源对象上来实现多维度的资源分组管理使其更方便的进行资源分配、调度、配置和部署管理工作。 2.标签可以结合Label Selector(标签选择器)查询…...

支持向量机SVM的应用案例

支持向量机&#xff08;Support Vector Machine,SVM&#xff09;是一种强大的监督学习算法&#xff0c;广泛应用于分类和回归任务。 基本原理 SVM的主要目标是周到一个最优的超平面&#xff0c;该超平面能够将不同类别的数据点尽可能分开&#xff0c;并且使离该超平面最近的数…...

Chrome 132 版本新特性

Chrome 132 版本新特性 一、Chrome 132 版本浏览器更新 1. 在 iOS 上使用 Google Lens 搜索 在 Chrome 132 版本中&#xff0c;开始在所有平台上推出这一功能。 1.1. 更新版本&#xff1a; Chrome 126 在 ChromeOS、Linux、Mac、Windows 上&#xff1a;在 1% 的稳定版用户…...

(5)STM32 USB设备开发-USB键盘

讲解视频&#xff1a;2、USB键盘-下_哔哩哔哩_bilibili 例程&#xff1a;STM32USBdevice: 基于STM32的USB设备例子程序 - Gitee.com 本篇为使用使用STM32模拟USB键盘的例程&#xff0c;没有知识&#xff0c;全是实操&#xff0c;按照步骤就能获得一个STM32的USB键盘。本例子是…...

Linux 系统服务开机自启动指导手册

一、引言 在 Linux 系统中&#xff0c;设置服务开机自启动是常见的系统配置任务。本文档详细介绍了多种实现服务开机自启动的方法&#xff0c;包括 systemctl 方式、通用脚本方式、crontab 方案等&#xff0c;并提供了生产环境下的方案建议和开机启动脚本示例。 二、systemct…...

分布式多卡训练(DDP)踩坑

多卡训练最近在跑yolov10版本的RT-DETR&#xff0c;用来进行目标检测。 单卡训练语句&#xff08;正常运行&#xff09;&#xff1a; python main.py多卡训练语句&#xff1a; 需要通过torch.distributed.launch来启动&#xff0c;一般是单节点&#xff0c;其中CUDA_VISIBLE…...

Codeforces Round 1000 (Div. 2)-C题(树上两个节点不同边数最大值)

https://codeforces.com/contest/2063/problem/C 牢记一棵树上两个节点如果相邻,它们有一条边会重叠,两个节点延伸出去的所有不同边是两个节点入度之和-1而不是入度之和,那么如果这棵树上有三个节点它们的入度都相同,那么优先选择非相邻的两个节点才能使所有不同边的数量最大!!…...

C++17 新特性解析:Lambda 捕获 this

C17 引入了许多改进和新特性&#xff0c;其中之一是对 lambda 表达式的增强。在这篇文章中&#xff0c;我们将深入探讨 lambda 表达式中的一个特别有用的新特性&#xff1a;通过 *this 捕获当前对象的副本。这个特性不仅提高了代码的安全性&#xff0c;还极大地简化了某些场景下…...

Spring Boot 使用 Micrometer 集成 Prometheus 监控 Java 应用性能

在Spring Boot中使用Micrometer集成Prometheus来监控Java应用性能是一种常见的做法。 一、Micrometer简介 Micrometer是一个开源的Java项目&#xff0c;主要用于为JVM应用程序提供监控和度量功能。以下是对Micrometer的详细介绍&#xff1a; 定义与功能 Micrometer是一个针…...

Spring Boot 事件驱动:构建灵活可扩展的应用

在 Spring Boot 应用中&#xff0c;事件发布和监听机制是一种强大的工具&#xff0c;它允许不同的组件之间以松耦合的方式进行通信。这种机制不仅可以提高代码的可维护性和可扩展性&#xff0c;还能帮助我们构建更加灵活、响应式的应用。本文将深入探讨 Spring Boot 的事件发布…...

IM系统设计

读多写少&#xff0c;一般采用写扩散成timeline来做 写扩散模式 利用last message id作为这个作为最后一个消息体 timeline和批量未读和ack 利用ZSET来维护连接的定时心跳&#xff0c;来续约运营商的连接不断开...

华为EC6110T-海思Hi3798MV310_安卓9.0_通刷-强刷固件包

华为EC6110T-海思Hi3798MV310_安卓9.0_通刷-强刷固件包 刷机教程说明&#xff1a; 适用机型&#xff1a;华为EC6110-T、华为EC6110-U、华为EC6110-M 破解总分为两个部分&#xff1a;拆机短接破解&#xff08;保留IPTV&#xff09;和OTT卡刷&#xff08;不保留IPTV&#xff09…...

ASP.NET Blazor托管模型有哪些?

今天我们来说说Blazor的三种部署方式&#xff0c;如果大家还不了解Blazor&#xff0c;那么我先简单介绍下Blazor Blazor 是一种 .NET 前端 Web 框架&#xff0c;在单个编程模型中同时支持服务器端呈现和客户端交互性&#xff1a; ● 使用 C# 创建丰富的交互式 UI。 ● 共享使用…...

PyTorch广告点击率预测(CTR)利用深度学习提升广告效果

目录 广告点击率预测问题数据集结构广告点击率预测模型的构建1. 数据集准备2. 构建数据加载器3. 构建深度学习模型4. 训练与评估 总结 广告点击率预测&#xff08;CTR&#xff0c;Click-Through Rate Prediction&#xff09;是在线广告领域中的重要任务&#xff0c;它帮助广告平…...

PAT甲级-1017 Queueing at Bank

题目 题目大意 银行有k个窗口&#xff0c;每个窗口只能服务1个人。如果3个窗口已满&#xff0c;就需要等待。给出n个人到达银行的时间和服务时间&#xff0c;要求计算每个人的平均等待时间。如果某个人的到达时间超过17:00:00&#xff0c;则不被服务&#xff0c;等待时间也不计…...

OneData体系架构详解

阿里巴巴的 OneData 体系架构方法论&#xff0c;主要分为三个阶段&#xff1a;业务板块、规范定义 和 模型设计。每个阶段的核心目标是确保数据的高效管理、共享与分析能力。 一. 业务板块&#xff08;Business Segment&#xff09; 业务板块是OneData体系架构中的第一步&…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式&#xff08;Singleton Pattern&#…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

【算法训练营Day07】字符串part1

文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接&#xff1a;344. 反转字符串 双指针法&#xff0c;两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

SQL慢可能是触发了ring buffer

简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...