当前位置: 首页 > 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体系架构中的第一步&…...

Gin 框架入门实战系列教程

一&#xff0c;Gin介绍 Gin是一个 Go (Golang) 编写的轻量级 http web 框架&#xff0c;运行速度非常快&#xff0c;如果你是性能和高效的追求者&#xff0c;我们推荐你使用Gin框架。 Gin最擅长的就是Api接口的高并发&#xff0c;如果项目的规模不大&#xff0c;业务相对简单…...

鸿蒙harmony json转对象(2)

在ArkTS&#xff08;Ark TypeScript&#xff09;中&#xff0c;接口&#xff08;interface&#xff09;是用来定义一个对象的结构&#xff0c;它可以包含属性、方法签名&#xff0c;以及嵌套的类型&#xff08;包括其他接口或对象类型&#xff09;。因此&#xff0c;接口里面可…...

M-LAG与E-trunk

M-LAG和E-trunk都是用来实现跨设备链路聚合&#xff0c;解决单点故障的&#xff0c;其大部分特性相同&#xff0c;工作模式M-LAG更胜一筹&#xff0c;支持双活,而且其原理感觉像是vrrpmstp的升级版&#xff0c;是往增加网络可靠性去发展的;而E-trunk是基于LACP扩展实现&#xf…...

【面试常见问题】

如何自我介绍 自我介绍是面试关键部分&#xff0c;是面试官了解求职者的首要途径&#xff0c;清晰自信的介绍能提升面试官印象&#xff0c;对求职成功至关重要。 糟糕的自我介绍示例 求职者朱晓明虽表明自己善于交际、积极&#xff0c;23 年毕业且从事 java 开发&#xff0c…...

Spring Boot Starter介绍

前言 大概10来年以前&#xff0c;当时springboot刚刚出现并没有流行&#xff0c;当时的Java开发者们开发Web应用主要是使用spring整合springmvc或者struts、iBatis、hibernate等开发框架来进行开发。项目里一般有许多xml文件配置&#xff0c;其中配置了很多项目中需要用到的Be…...

vue和reacts数据响应式的差异

Vue 的数据响应式&#xff1a; 原理&#xff1a; Vue 使用 Object.defineProperty 或 Proxy&#xff08;在 Vue 3 中&#xff09;来实现数据的响应式。当创建 Vue 实例时&#xff0c;会对 data 对象中的属性进行遍历&#xff0c;将其转换为响应式属性。对于 Object.definePro…...

OpenEuler学习笔记(九):安装 OpenEuler后配置和优化

安装OpenEuler后&#xff0c;可以从系统基础设置、网络配置、性能优化等方面进行配置和优化&#xff0c;以下是具体内容&#xff1a; 系统基础设置 更新系统&#xff1a;以root用户登录系统后&#xff0c;在终端中执行sudo yum update命令&#xff0c;对系统进行更新&#xf…...

npm命令与yarn命令的区别

npm与Yarn的区别详解 在软件开发中&#xff0c;npm和Yarn都是流行的包管理工具&#xff0c;它们各自拥有独特的特性和优势。以下是它们的主要区别&#xff1a; 1. 安装速度 npm&#xff1a;安装速度相对较慢&#xff0c;尤其是在依赖项较多的情况下。Yarn&#xff1a;采用并…...

python如何导出数据到excel文件

python导出数据到excel文件的方法&#xff1a; 1、调用Workbook()对象中的add_sheet()方法 wb xlwt.Workbook() ws wb.add_sheet(A Test Sheet) 2、通过add_sheet()方法中的write()函数将数据写入到excel中&#xff0c;然后使用save()函数保存excel文件 ws.write(0, 0, 1234…...

MYSQL学习笔记(五):单行函数(字符串、数学、日期时间、条件判断、信息、加密、进制转换函数)讲解

前言&#xff1a; 学习和使用数据库可以说是程序员必须具备能力&#xff0c;这里将更新关于MYSQL的使用讲解&#xff0c;大概应该会更新30篇&#xff0c;涵盖入门、进阶、高级(一些原理分析);这一篇是讲解单行函数&#xff0c;当然mysql函数很多哈&#xff0c;只有多用才能记得…...