【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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/956796.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

StarRocks 怎么让特定的SQL路由到FE master节点的

背景 本文基于 StarRocks 3.1.7 大家都知道对于Starrocks来说 FE 是分 master和follower的&#xff0c;而只有master节点才能对元数据进行写操作。但是为什么呢&#xff1f;哪里有体现呢&#xff1f; 这其中的原因在网上是搜不到的&#xff0c;所以大家只知道只有master节点才…

抽奖系统(4——活动模块)

1. 活动创建 需求回顾 创建的活动信息包含&#xff1a; 活动名称活动描述关联的一批奖品&#xff0c;关联时需要选择奖品等级&#xff08;一等奖、二等奖、三等奖&#xff09;&#xff0c;及奖品库存圈选一批人员参与抽奖 tip&#xff1a;什么时候设置奖品数量和奖品等级&am…

探索 Stable-Diffusion-Webui-Forge:更快的AI图像生成体验

目录 简介&#x1f31f; 主要特点&#x1f4e5; 安装步骤1. 下载2. 配置环境和安装依赖3. 模型目录说明 &#x1f680; 运行 Stable-Diffusion-Webui-Forge1. 进入项目目录2. 运行项目3. 打开页面 &#x1f3a8; 使用体验常见问题&#x1f4dd; 小结 简介 Stable-Diffusion-We…

电梯系统的UML文档04

这个版本的类图是直接从4.2节中用例图的描述得来的&#xff0c;这个视图中的类覆盖了系统所有的功能。我们用电梯类和电梯控制器类&#xff08;ElevatorControl&#xff09;移动或停止电梯&#xff1b;用门类开门或关门&#xff1b;用指示器类让乘客知道电梯的位置和方向&#…

我的创作纪念日——我与CSDN一起走过的365天

目录 一、机缘&#xff1a;旅程的开始 二、收获&#xff1a;沿路的花朵 三、日常&#xff1a;不断前行中 四、成就&#xff1a;一点小确幸 五、憧憬&#xff1a;梦中的重点 一、机缘&#xff1a;旅程的开始 最开始开始写博客是在今年一二月份的时候&#xff0c;也就是上一…

详解Redis的Zset类型及相关命令

目录 Zset简介 ZADD ZCARD ZCOUNT ZRANGE ZREVRANGE ZRANGEBYSCORE ZPOPMAX BZPOPMAX ZPOPMIN BZPOPMIN ZRANK ZREVRANK ZSCORE ZREM ZREMRANGEBYRANK ZREMRANGEBYSCORE ZINCRBY ZINTERSTORE 内部编码 应用场景 Zset简介 有序集合相对于字符串、列表、哈希…

Flask:后端框架使用

文章目录 1、介绍2、demo演示3、Flask请求和响应 3.1 演示demo3.2 request获取请求体数据3.3 requests发送请求3.4 响应返回和接收 4、特殊路由 4.1 路由重定向4.2 路由拦截器 1、介绍 Flask是由python语言编写的轻量级Web应用框架&#xff0c;主要应用于后端框架&#xff…

【Golang/nacos】nacos配置的增删查改,以及服务注册的golang实例及分析

前言 本文分析的实例来源于nacos在github上的开源仓库 nacos配置的增删查改 先具体来看一段代码&#xff0c;我将逐步分析每一段的作用 package mainimport ("fmt""time""github.com/nacos-group/nacos-sdk-go/clients""github.com/naco…

Nvidia Blackwell架构深度剖析:深入了解RTX 50系列GPU的升级

在CES 2025上&#xff0c;英伟达推出了基于Blackwell架构的GeForce RTX 50系列显卡&#xff0c;包括RTX 5090、RTX 5080、RTX 5070 Ti和RTX 5070。一段时间以来&#xff0c;我们已经知晓了该架构的各种细节&#xff0c;其中许多此前还只是传闻。不过&#xff0c;英伟达近日在20…

面试--你的数据库中密码是如何存储的?

文章目录 三种分类使用 MD5 加密存储加盐存储Base64 编码:常见的对称加密算法常见的非对称加密算法https 传输加密 在开发中需要存储用户的密码&#xff0c;这个密码一定是加密存储的&#xff0c;如果是明文存储那么如果数据库被攻击了&#xff0c;密码就泄露了。 我们要对数据…

【24】Word:小郑-准考证❗

目录 题目 准考证.docx 邮件合并-指定考生生成准考证 Word.docx 表格内容居中表格整体相较于页面居中 考试时一定要做一问保存一问❗ 题目 准考证.docx 插入→表格→将文本转换成表格→✔制表符→确定选中第一列→单击右键→在第一列的右侧插入列→布局→合并单元格&#…

WOA-CNN-GRU-Attention、CNN-GRU-Attention、WOA-CNN-GRU、CNN-GRU四模型对比多变量时序预测

WOA-CNN-GRU-Attention、CNN-GRU-Attention、WOA-CNN-GRU、CNN-GRU四模型对比多变量时序预测 目录 WOA-CNN-GRU-Attention、CNN-GRU-Attention、WOA-CNN-GRU、CNN-GRU四模型对比多变量时序预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 基于WOA-CNN-GRU-Attention、…

Spring Boot整合WebSocket

目录 ?引言 1.WebSocket 基础知识 ?1.1 什么是 WebSocket&#xff1f; ?1.2 WebSocket 的应用场景 ?2.Spring Boot WebSocket 整合步骤 2.1 创建 Spring Boot 项目 2.2 添加 Maven 依赖 2.3 配置 WebSocket 2.4 创建 WebSocket 控制器 2.5 创建前端页面 引言 在…

K8S 集群搭建和访问 Kubernetes 仪表板(Dashboard)

一、环境准备 服务器要求&#xff1a; 最小硬件配置&#xff1a;2核CPU、4G内存、30G硬盘。 服务器可以访问外网。 软件环境&#xff1a; 操作系统&#xff1a;Anolis OS 7.9 Docker&#xff1a;19.03.9版本 Kubernetes&#xff1a;v1.18.0版本 内核版本&#xff1a;5.4.203-…

2024:成长、创作与平衡的年度全景回顾

文章目录 1.前言2.突破自我&#xff1a;2024年个人成长与关键突破3.创作历程&#xff1a;从构想到落笔&#xff0c;2024年的文字旅程4.生活与学业的双重奏&#xff1a;如何平衡博客事业与个人生活5.每一步都是前行&#xff1a;2024年度的挑战与收获6.总结 1.前言 回首2024年&a…

计算机网络 (45)动态主机配置协议DHCP

前言 计算机网络中的动态主机配置协议&#xff08;DHCP&#xff0c;Dynamic Host Configuration Protocol&#xff09;是一种网络管理协议&#xff0c;主要用于自动分配IP地址和其他网络配置参数给连接到网络的设备。 一、基本概念 定义&#xff1a;DHCP是一种网络协议&#xf…

学习记录1

[SUCTF 2019]EasyWeb 直接给了源代码&#xff0c;分析一下 <?php function get_the_flag(){// webadmin will remove your upload file every 20 min!!!! $userdir "upload/tmp_".md5($_SERVER[REMOTE_ADDR]);if(!file_exists($userdir)){mkdir($userdir);}if…

git操作(Windows中GitHub)

使用git控制GitHub中的仓库版本&#xff0c;并在Windows桌面中创建与修改代码&#xff0c;与GitHub仓库进行同步。 创建自己的GitHub仓库 创建一个gen_code实验性仓库用来学习和验证git在Windows下的使用方法&#xff1a; gen_code仓库 注意&#xff0c;创建仓库时不要设置…

Redis的安装和使用--Windows系统

Redis下载地址&#xff1a; windows版本readis下载&#xff08;GitHub&#xff09;&#xff1a; https://github.com/tporadowski/redis/releases &#xff08;推荐使用&#xff09; https://github.com/MicrosoftArchive/redis/releases 官网下载&#xff08;无Windows版本…

【odbc】odbc连接kerberos认证的 hive和spark thriftserver

hive odbc驱动&#xff0c;以下两种都可以 教程&#xff1a;使用 ODBC 和 PowerShell 查询 Apache HiveHive ODBC Connector 2.8.0 for Cloudera Enterprise spark thriftserver本质就是披着hiveserver的外壳的spark server 完成kerberos认证: &#xff08;1&#xff09;可以…