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

【Vim Masterclass 笔记21】S09L39:Vim 设置与 vimrc 文件的用法示例(二)

文章目录

  • S09L39 Vim Settings and the Vimrc File - Part 2
    • 1 Vim 的配色方案与 color 命令
    • 2 map 命令
    • 3 示例:用 map 命令快速生成 HTML 代码片段
    • 4 Vim 中的 Leader 键
    • 5 用 mkvimrc 命令自动生成配置文件

写在前面
本篇为 Vim 自定义配置的第二部分。当中的每个知识点几乎都属于二八定律中的那 80% 鲜有人熟练掌握的内容。但根据李笑来大佬的 “自学心法”,掌握一项技能时,如果不能拿下里面最复杂的部分,其实就几乎相当于没学过。计算机领域的知识几乎都是典型的前置引用型知识(forward reference),第一遍即便不会也要硬着头皮看一遍,最好记下来;然后多重复几次,后面自然就领悟其精髓了。


S09L39 Vim Settings and the Vimrc File - Part 2

(接上节)

1 Vim 的配色方案与 color 命令

查看可用的配色方案::color + Space + CtrlD

图 39-1:查看当前可用的配色方案(Windows 版 v9.1)

【图 39-1:查看当前可用的配色方案(Windows 版 v9.1)】

查看当前使用的配色方案::colorscheme + Enter

vimrc 文件中指定配色方案(如 slate):color slate

从网上下载的第三方配色方案,需放到当前用户主目录对应的 colors 文件夹下:

  • Linux/home/{USER_NAME}/.vim/colors
  • Mac/Users/{USER_NAME}/.vim/colors

2 map 命令

Vim 中的 map 命令可将一组 Vim 命令映射为一个单独的按键,例如将某个功能键定义为一组特定操作(默认情况下功能键未设置任何命令)。

map 命令在 vimrc 文件中的写法:map KEY KEY_STROKES(按 KEY 执行 KEY_STROKES 中的操作)

例如:

map <F2> iJohn Smith<CR>123 Main Street<CR>Anytown, NY<CR><ESC>

保存后重启 Vim,重新打开 vimrc 文件,并在末尾行键入 F2,将得到如下结果:

图 39-2:利用 map 命令实现指定内容与 F2 键绑定的实操截图

【图 39-2:利用 map 命令实现指定内容与 F2 键绑定的实操截图】

map 命令中常见按键的写法:

写法按键写法按键
<BS>Backspace<Insert>Insert
<CR>Enter<Del>Delete
<Enter>Enter<Home>Home
<Return>Enter<End>End
<Esc>Escape<PageUp>Page-Up
<Space>Space<PageDown>Page-Down
<Up><Tab>Tab
<Down><bar>|
<Left><C-X>Ctrl + X
<Right><F1> - <F12>功能键 F1F12

3 示例:用 map 命令快速生成 HTML 代码片段

利用 map 命令还可以将输入某 HTML 代码片段的操作映射到某个功能键(例如 F3)。具体写法如下:

map <F3> i<ul><CR><Space><Space><li></li><CR><Esc>0i</ul><Esc>kcit

保存配置并重启 Vim,并在末尾行键入 F3,将得到如下结果:

图 39-3:利用 F3 键快速生成 HTML 模板并进入插入模式实测截图

【图 39-3:利用 F3 键快速生成 HTML 模板并进入插入模式实测截图】

此时如果再定义一组按键操作(假设绑定到 F4),实现在下一行快速插入 <li></li>,并将光标定位到标签内部,则可以写作:

map <F4> <Esc><li></li><Esc>cit

这样就可以组合 F3F4 快速完成 HTML 代码段的编辑和插入,如图 39-4 所示:

图 39-4:利用 F3 和 F4 键快速实现 HTML 代码段的编辑和插入操作

【图 39-4:利用 F3 和 F4 键快速实现 HTML 代码段的编辑和插入操作】

4 Vim 中的 Leader 键

Vim 中的 Leader 键用于创建自定义快捷键,其默认值为反斜杠符 \,也可以用 let mapleader="," 改为其它字符(这里改为 ,)。

正常模式下要让 \w 实现强制实时保存的功能(即 :w! + Enter),可以在 vimrc 中做如下定义:

map <leader>w :w!<CR>

配置生效后,按 \W 键就能实现强制保存当前文件。

如果不用反斜杠,也可以写为:

let mapleader=","
map <leader>w :w!<CR>

这样,按 ,W 即可保存。

查看当前 map 的设置情况,输入命令 :map + Enter 即可:

图 39-5:查看当前定义的 map 命令配置情况

【图 39-5:查看当前定义的 map 命令配置情况】

更多 map 命令的用法,详见 Vim 帮助文档(运行命令 :h mapping + Enter)。

5 用 mkvimrc 命令自动生成配置文件

除了手动创建并修改 vimrc 文件,还可以使用命令 :mkvimrc 来创建 vimrc 文件。如果文件已存在,则要么用 :mkvimrc testvimrc 指定一个新文件名(如这里的 testvimrc),要么用 :mkvimrc! 覆盖已存在的文件。

使用这种方式创建的 vimrc 文件与手动创建的略有不同,其中既有来自系统层的设置,也有来自 mkvimrc 命令本身的内容,例如:

图 39-6:通过 mkvimrc 命令生成的 vimrc 文件内容(节选)

【图 39-6:通过 mkvimrc 命令生成的 vimrc 文件内容(节选)】

其中 ——

  • vmap 表示仅在可视化模式、选择模式下生效
  • xmap 表示仅在可视化模式下生效
  • nmap 表示仅在正常模式下生效
  • omap 表示仅在操作模式下生效
  • vnoremap:仅在可视化模式下禁止递归生效快捷键设置
  • nnoremap:仅在正常模式下禁止递归生效快捷键设置
  • " vim: set ft=vim ::位于该文件最后一行(如图 39-7 所示),也叫 modeline,它用于指示 Vim 在处理该文件时要遵循的特定设置。set ft=vim 用于指定文件类型(ftfiletype,表示文件类型)为 vim。这样 Vim 就会启用适合 Vim 脚本的语法高亮和功能来显示该文件。末尾的冒号为固定写法,表示命令的结束。更多用法参考帮助文档::h modeline + Enter

图 39-7:利用 mkvimrc 命令生成的 vimrc 文件的末尾部分截图

【图 39-7:利用 mkvimrc 命令生成的 vimrc 文件的末尾部分截图】

值得注意的是,vimrc 大可不必如此复杂,只要满足自身需求,简单实用即可。例如讲师 Jason 的极简配置:

set bg=dark
color slate
set wildmenu
set ruler

相关文章:

【Vim Masterclass 笔记21】S09L39:Vim 设置与 vimrc 文件的用法示例(二)

文章目录 S09L39 Vim Settings and the Vimrc File - Part 21 Vim 的配色方案与 color 命令2 map 命令3 示例&#xff1a;用 map 命令快速生成 HTML 代码片段4 Vim 中的 Leader 键5 用 mkvimrc 命令自动生成配置文件 写在前面 本篇为 Vim 自定义配置的第二部分。当中的每个知识…...

【Docker】Supervisor 实现单容器运行多服务进程

本文内容均来自个人笔记并重新梳理&#xff0c;如有错误欢迎指正&#xff01; 如果对您有帮助&#xff0c;烦请点赞、关注、转发、订阅专栏&#xff01; 专栏订阅入口 | 精选文章 | Kubernetes | Docker | Linux | 羊毛资源 | 工具推荐 | 往期精彩文章 【Docker】&#xff08;全…...

【网络协议】【http】【https】ECDHE-TLS1.2

【网络协议】【http】【https】ECDHE-TLS1.2 ECDHE算法 1.客户端和服务器端事先确定好使用哪种椭圆曲线&#xff0c;和曲线上的基点G&#xff0c;这两个参数都是公开的&#xff0c; 双方各自随机生成一个随机数作为私钥d&#xff0c;并与基点 G相乘得到公钥Q(QdG)&#xff0c…...

(十五)WebGL中gl.texImage2D函数使用详解

在 WebGL 中&#xff0c;gl.texImage2D 是一个非常关键的函数&#xff0c;用于将图像数据上传到 WebGL 上下文中并作为纹理对象的一部分。它允许你将图像、视频、画布等作为纹理源。理解如何使用 gl.texImage2D 是在 WebGL 中处理纹理的核心之一。 文章目录 gl.texImage2D 的基…...

CSS 颜色

所有浏览器都支持的颜色名 所有现代浏览器均支持以下 140 种颜色名称&#xff08;单击颜色名称或十六进制值&#xff0c;可查看将以该颜色为背景颜色以及不同的文本颜色&#xff09;&#xff1a; 颜色名十六进制颜色值颜色AliceBlue#F0F8FFAntiqueWhite#FAEBD7Aqua#00FFFFAqu…...

C#,入门教程(03)——Visual Studio 2022编写彩色Hello World与动画效果

C#&#xff0c;入门教程(01)—— Visual Studio 2022 免费安装的详细图文与动画教程https://blog.csdn.net/beijinghorn/article/details/123350910 C#&#xff0c;入门教程(02)—— Visual Studio 2022开发环境搭建图文教程https://blog.csdn.net/beijinghorn/article/detail…...

杀死安装 CentOS-7-x86_64-DVD-1908

使用 VMware 安装 CentOS-7-x86_64-DVD-1908 CentOS是 reahat 的 免费版本&#xff0c;有了ubutun &#xff0c;为什么还要使用 CentOS呢&#xff1f; 在linux 服务器实际开发中&#xff0c;大家都用的CentOS&#xff0c;因为两个原因&#xff0c;一个是免费&#xff0c;第二是…...

55.【5】BUUCTF WEB NCTF2019 sqli

进入靶场 输入admin 123 过滤的这么严格&#xff1f;&#xff1f;&#xff1f; 过滤很严格&#xff0c;此时要么爆破&#xff0c;要么扫描 直接扫描&#xff0c;得到robots.txt 访问后又得到hint.txt 继续访问 图片内容如下 $black_list "/limit|by|substr|mid|,|admi…...

LeetCode 题目 2545. 根据第 K 场考试的分数排序

在本篇文章中&#xff0c;我们将探讨如何根据第 K 场考试的分数对学生进行排序。这个问题是 LeetCode 上的一个中等难度问题&#xff0c;涉及到排序算法和自定义比较函数的使用。 问题描述 解题思路 理解问题 首先&#xff0c;我们需要理解问题的核心&#xff1a;根据第 K 场…...

算法随笔_12:最短无序子数组

上一篇: 算法随笔_11: 字符串的排列-CSDN博客 题目描述如下: 给你一个整数数组 nums &#xff0c;你需要找出一个 连续子数组 &#xff0c;如果对这个子数组进行升序排序&#xff0c;那么整个数组都会变为升序排序。请你找出符合题意的最短子数组&#xff0c;并输出它的长度。…...

计算机毕业设计PySpark+Hadoop+Hive机票预测 飞机票航班数据分析可视化大屏 航班预测系统 机票爬虫 飞机票推荐系统 大数据毕业设计

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

Linux-C/C++--初探linux应用编程概念

对于大多数首次接触 Linux 应用编程的读者来说&#xff0c;可能对应用编程&#xff08;也可称为系统编程&#xff09;这个概念并不 太了解&#xff0c;所以在正式学习 Linux 应用编程之前&#xff0c;笔者有必要向大家介绍这些简单基本的概念&#xff0c;从整体上认识 到应用编…...

用sklearn运行分类模型,选择AUC最高的模型保存模型权重并绘制AUCROC曲线(以逻辑回归、随机森林、梯度提升、MLP为例)

诸神缄默不语-个人CSDN博文目录 文章目录 1. 导入包2. 初始化分类模型3. 训练、测试模型&#xff0c;绘图&#xff0c;保存指标 1. 导入包 from sklearn.linear_model import LogisticRegression from sklearn.ensemble import RandomForestClassifier, GradientBoostingClass…...

动手学大数据-3社区开源实践

目录 数据库概览&#xff1a; MaxComput&#xff1a; HAWQ&#xff1a; Hologres&#xff1a; TiDB&#xff1a; Spark&#xff1a; ClickHouse&#xff1a; Apache Calcite 概览 Calcite RBO HepPlanner 优化规则&#xff08;Rule&#xff09; 内置有100优化规则 …...

使用Pydantic驾驭大模型

本文介绍Pydantic 库&#xff0c;首先介绍其概念及优势&#xff0c;然后通过基本示例展示如何进行数据验证。后面通过多个示例解释如何在LangChain中通过Pydantic进行数据验证&#xff0c;保证与大模型进行交互过程中数据准确性&#xff0c;并显示清晰的数验证错误信息。 Pydan…...

【HarmonyOS之旅】基于ArkTS开发(二) -> UI开发之常见布局

目录 1 -> 自适应布局 1.1 -> 线性布局 1.1.1 -> 线性布局的排列 1.1.2 -> 自适应拉伸 1.1.3 -> 自适应缩放 1.1.4 -> 定位能力 1.1.5 -> 自适应延伸 1.2 -> 层叠布局 1.2.1 -> 对齐方式 1.2.2 -> Z序控制 1.3 -> 弹性布局 1.3.1…...

【论文投稿】Python 网络爬虫:探秘网页数据抓取的奇妙世界

目录 前言 一、Python—— 网络爬虫的绝佳拍档 二、网络爬虫基础&#xff1a;揭开神秘面纱 &#xff08;一&#xff09;工作原理&#xff1a;步步为营的数据狩猎 &#xff08;二&#xff09;分类&#xff1a;各显神通的爬虫家族 三、Python 网络爬虫核心库深度剖析 &…...

队列的基本用法

以下是关于 C 语言中队列的详细知识&#xff0c;包括队列的生成、相关函数使用以及其他重要概念&#xff1a; 一、队列的概念 队列是一种线性数据结构&#xff0c;它遵循先进先出&#xff08;First In First Out&#xff0c;FIFO&#xff09;的原则&#xff0c;就像日常生活中…...

网络安全VS数据安全

关于网络安全和数据安全&#xff0c;我们常听到如下两种不同声音&#xff1a; 观点一&#xff1a;网络安全是数据安全的基础&#xff0c;把当年做网络安全的那一套用数据安全再做一遍。 观点二&#xff1a;数据安全如今普遍以为是网络安全的延伸&#xff0c;实际情况是忽略数据…...

Linux(NFS服务)

赛题拓扑&#xff1a; 题目&#xff1a; NFS&#xff1a; 共享/webdata/目录。用于存储AppSrv主机的WEB数据。仅允许AppSrv主机访问该共享。 [rootstoragesrv ~]# yum install nfs-utils -y [rootstoragesrv ~]# mkdir /webdata [rootstoragesrv ~]# chmod -R ow /webdata …...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...

NPOI操作EXCEL文件 ——CAD C# 二次开发

缺点:dll.版本容易加载错误。CAD加载插件时&#xff0c;没有加载所有类库。插件运行过程中用到某个类库&#xff0c;会从CAD的安装目录找&#xff0c;找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库&#xff0c;就用插件程序加载进…...

PostgreSQL——环境搭建

一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在&#xff0…...

LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)

在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...

算法打卡第18天

从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a;inorder [9,3,15,20,7…...

【深度学习新浪潮】什么是credit assignment problem?

Credit Assignment Problem(信用分配问题) 是机器学习,尤其是强化学习(RL)中的核心挑战之一,指的是如何将最终的奖励或惩罚准确地分配给导致该结果的各个中间动作或决策。在序列决策任务中,智能体执行一系列动作后获得一个最终奖励,但每个动作对最终结果的贡献程度往往…...

ui框架-文件列表展示

ui框架-文件列表展示 介绍 UI框架的文件列表展示组件&#xff0c;可以展示文件夹&#xff0c;支持列表展示和图标展示模式。组件提供了丰富的功能和可配置选项&#xff0c;适用于文件管理、文件上传等场景。 功能特性 支持列表模式和网格模式的切换展示支持文件和文件夹的层…...

CSS 工具对比:UnoCSS vs Tailwind CSS,谁是你的菜?

在现代前端开发中&#xff0c;Utility-First (功能优先) CSS 框架已经成为主流。其中&#xff0c;Tailwind CSS 无疑是市场的领导者和标杆。然而&#xff0c;一个名为 UnoCSS 的新星正以其惊人的性能和极致的灵活性迅速崛起。 这篇文章将深入探讨这两款工具的核心理念、技术差…...