【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)】
查看当前使用的配色方案::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 键绑定的实操截图】
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> | 功能键 F1 至 F12 |
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 模板并进入插入模式实测截图】
此时如果再定义一组按键操作(假设绑定到 F4),实现在下一行快速插入 <li></li>
,并将光标定位到标签内部,则可以写作:
map <F4> <Esc><li></li><Esc>cit
这样就可以组合 F3 和 F4 快速完成 HTML 代码段的编辑和插入,如图 39-4 所示:
【图 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 命令配置情况】
更多 map
命令的用法,详见 Vim
帮助文档(运行命令 :h mapping
+ Enter)。
5 用 mkvimrc 命令自动生成配置文件
除了手动创建并修改 vimrc
文件,还可以使用命令 :mkvimrc
来创建 vimrc
文件。如果文件已存在,则要么用 :mkvimrc testvimrc
指定一个新文件名(如这里的 testvimrc
),要么用 :mkvimrc!
覆盖已存在的文件。
使用这种方式创建的 vimrc
文件与手动创建的略有不同,其中既有来自系统层的设置,也有来自 mkvimrc
命令本身的内容,例如:
【图 39-6:通过 mkvimrc 命令生成的 vimrc 文件内容(节选)】
其中 ——
vmap
表示仅在可视化模式、选择模式下生效xmap
表示仅在可视化模式下生效nmap
表示仅在正常模式下生效omap
表示仅在操作模式下生效vnoremap
:仅在可视化模式下禁止递归生效快捷键设置nnoremap
:仅在正常模式下禁止递归生效快捷键设置" vim: set ft=vim :
:位于该文件最后一行(如图 39-7 所示),也叫modeline
,它用于指示Vim
在处理该文件时要遵循的特定设置。set ft=vim
用于指定文件类型(ft
即filetype
,表示文件类型)为vim
。这样Vim
就会启用适合Vim
脚本的语法高亮和功能来显示该文件。末尾的冒号为固定写法,表示命令的结束。更多用法参考帮助文档::h modeline
+ Enter。
【图 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 示例:用 map 命令快速生成 HTML 代码片段4 Vim 中的 Leader 键5 用 mkvimrc 命令自动生成配置文件 写在前面 本篇为 Vim 自定义配置的第二部分。当中的每个知识…...
【Docker】Supervisor 实现单容器运行多服务进程
本文内容均来自个人笔记并重新梳理,如有错误欢迎指正! 如果对您有帮助,烦请点赞、关注、转发、订阅专栏! 专栏订阅入口 | 精选文章 | Kubernetes | Docker | Linux | 羊毛资源 | 工具推荐 | 往期精彩文章 【Docker】(全…...
【网络协议】【http】【https】ECDHE-TLS1.2
【网络协议】【http】【https】ECDHE-TLS1.2 ECDHE算法 1.客户端和服务器端事先确定好使用哪种椭圆曲线,和曲线上的基点G,这两个参数都是公开的, 双方各自随机生成一个随机数作为私钥d,并与基点 G相乘得到公钥Q(QdG),…...
(十五)WebGL中gl.texImage2D函数使用详解
在 WebGL 中,gl.texImage2D 是一个非常关键的函数,用于将图像数据上传到 WebGL 上下文中并作为纹理对象的一部分。它允许你将图像、视频、画布等作为纹理源。理解如何使用 gl.texImage2D 是在 WebGL 中处理纹理的核心之一。 文章目录 gl.texImage2D 的基…...
CSS 颜色
所有浏览器都支持的颜色名 所有现代浏览器均支持以下 140 种颜色名称(单击颜色名称或十六进制值,可查看将以该颜色为背景颜色以及不同的文本颜色): 颜色名十六进制颜色值颜色AliceBlue#F0F8FFAntiqueWhite#FAEBD7Aqua#00FFFFAqu…...

C#,入门教程(03)——Visual Studio 2022编写彩色Hello World与动画效果
C#,入门教程(01)—— Visual Studio 2022 免费安装的详细图文与动画教程https://blog.csdn.net/beijinghorn/article/details/123350910 C#,入门教程(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 的 免费版本,有了ubutun ,为什么还要使用 CentOS呢? 在linux 服务器实际开发中,大家都用的CentOS,因为两个原因,一个是免费,第二是…...

55.【5】BUUCTF WEB NCTF2019 sqli
进入靶场 输入admin 123 过滤的这么严格??? 过滤很严格,此时要么爆破,要么扫描 直接扫描,得到robots.txt 访问后又得到hint.txt 继续访问 图片内容如下 $black_list "/limit|by|substr|mid|,|admi…...

LeetCode 题目 2545. 根据第 K 场考试的分数排序
在本篇文章中,我们将探讨如何根据第 K 场考试的分数对学生进行排序。这个问题是 LeetCode 上的一个中等难度问题,涉及到排序算法和自定义比较函数的使用。 问题描述 解题思路 理解问题 首先,我们需要理解问题的核心:根据第 K 场…...
算法随笔_12:最短无序子数组
上一篇: 算法随笔_11: 字符串的排列-CSDN博客 题目描述如下: 给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。请你找出符合题意的最短子数组,并输出它的长度。…...

计算机毕业设计PySpark+Hadoop+Hive机票预测 飞机票航班数据分析可视化大屏 航班预测系统 机票爬虫 飞机票推荐系统 大数据毕业设计
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

Linux-C/C++--初探linux应用编程概念
对于大多数首次接触 Linux 应用编程的读者来说,可能对应用编程(也可称为系统编程)这个概念并不 太了解,所以在正式学习 Linux 应用编程之前,笔者有必要向大家介绍这些简单基本的概念,从整体上认识 到应用编…...
用sklearn运行分类模型,选择AUC最高的模型保存模型权重并绘制AUCROC曲线(以逻辑回归、随机森林、梯度提升、MLP为例)
诸神缄默不语-个人CSDN博文目录 文章目录 1. 导入包2. 初始化分类模型3. 训练、测试模型,绘图,保存指标 1. 导入包 from sklearn.linear_model import LogisticRegression from sklearn.ensemble import RandomForestClassifier, GradientBoostingClass…...

动手学大数据-3社区开源实践
目录 数据库概览: MaxComput: HAWQ: Hologres: TiDB: Spark: ClickHouse: Apache Calcite 概览 Calcite RBO HepPlanner 优化规则(Rule) 内置有100优化规则 …...

使用Pydantic驾驭大模型
本文介绍Pydantic 库,首先介绍其概念及优势,然后通过基本示例展示如何进行数据验证。后面通过多个示例解释如何在LangChain中通过Pydantic进行数据验证,保证与大模型进行交互过程中数据准确性,并显示清晰的数验证错误信息。 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—— 网络爬虫的绝佳拍档 二、网络爬虫基础:揭开神秘面纱 (一)工作原理:步步为营的数据狩猎 (二)分类:各显神通的爬虫家族 三、Python 网络爬虫核心库深度剖析 &…...
队列的基本用法
以下是关于 C 语言中队列的详细知识,包括队列的生成、相关函数使用以及其他重要概念: 一、队列的概念 队列是一种线性数据结构,它遵循先进先出(First In First Out,FIFO)的原则,就像日常生活中…...

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

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

C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...

React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
MySQL 8.0 事务全面讲解
以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...

iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...

计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...