【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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Debian 上安装PHP

1、安装软件源拓展工具 apt -y install software-properties-common apt-transport-https lsb-release ca-certificates 2、添加 Ondřej Sur 的 PHP PPA 源&#xff0c;需要按一次回车&#xff1a; add-apt-repository ppa:ondrej/php 3、更新软件源缓存&#xff1a; apt-g…

docker Ubuntu实战

目录 Ubuntu系统环境说明 一、如何安装docker 二、发布.netcore应用到docker中 Ubuntu系统环境说明 cat /etc/os-release PRETTY_NAME"Ubuntu 22.04.5 LTS" NAME"Ubuntu" VERSION_ID"22.04" VERSION"22.04.5 LTS (Jammy Jellyfish)&quo…

Android OpenGL(六) 纹理

纹理 纹理是一个2D图片&#xff08;甚至也有1D和3D的纹理&#xff09;&#xff0c; 它可以用来添加物体的细节&#xff1b;你可以想象纹理是一张绘有砖块的纸&#xff0c;无缝折叠贴合到你的3D的 房子上&#xff0c;这样你的房子看起来就像有砖墙外表了 纹理环绕方式 纹理坐…

C# 网络协议第三方库Protobuf的使用

为什么要使用二进制数据 通常我们写一个简单的网络通讯软件可能使用的最多的是字符串类型&#xff0c;比较简单&#xff0c;例如发送格式为(head)19|Msg:Heart|100,x,y,z…&#xff0c;在接收端会解析收到的socket数据。 这样通常是完全可行的&#xff0c;但是随着数据量变大&…

微软Win10 RP 19045.5435(KB5050081)预览版发布!

系统之家1月20日最新报道&#xff0c;微软面向Release Preview频道的Windows Insider项目成员&#xff0c;发布了适用于Windows10 22H2版本的KB5050081更新&#xff0c;更新后系统版本号将升至19045.5435。本次更新增加了对GB18030-2022标准的支持&#xff0c;同时新版日历将为…

零售业革命:改变行业的顶级物联网用例

mpro5 产品负责人Ruby Whipp表示&#xff0c;技术进步持续重塑零售业&#xff0c;其中物联网&#xff08;IoT&#xff09;正引领这一变革潮流。 研究表明&#xff0c;零售商们正在采用物联网解决方案&#xff0c;以提升运营效率并改善顾客体验。这些技术能够监控运营的各个方面…

ASP .NET Core 学习(.NET9)部署(一)windows

在windows部署 ASP .NET Core 的时候IIS是不二选择 一、IIS安装 不论是在window7 、w10还是Windows Server&#xff0c;都是十分简单的&#xff0c;下面以Windows10为例 打开控制面版—程序—启用或关闭Windows功能 勾选图中的两项&#xff0c;其中的子项看需求自行勾选&am…

【组件库】使用Vue2+AntV X6+ElementUI 实现拖拽配置自定义vue节点

先来看看实现效果&#xff1a; 【组件库】使用 AntV X6 ElementUI 实现拖拽配置自定义 Vue 节点 在现代前端开发中&#xff0c;流程图和可视化编辑器的需求日益增加。AntV X6 是一个强大的图形化框架&#xff0c;支持丰富的图形操作和自定义功能。结合 ElementUI&#xff0c;…

docker 部署confluence

1.安装docker的过程就不说了。 2.下载镜像。 docker pull cptactionhank/atlassian-confluence:7.4.0 docker images 3.下载pojie 包。 https://download.csdn.net/download/liudongyang123/90285042https://download.csdn.net/download/liudongyang123/90285042https://do…

C++ 二叉搜索树

目录 概念 性能分析 二叉搜索树的插入 二叉树的查找 二叉树的前序遍历 二叉搜索树的删除&#xff08;重点&#xff09; 完整代码 key与value的使用 概念 对于一个二叉搜索树 若它的左子树不为空&#xff0c;则左子树上所有的节点的值都小于等于根节点的值若它的右子树不为空…

重生之我在异世界学编程之C语言:深入指针篇(上)

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 本文目录 引言正文&#xff08;1&#xff09;内置数…

HTTP 配置与应用(不同网段)

想做一个自己学习的有关的csdn账号&#xff0c;努力奋斗......会更新我计算机网络实验课程的所有内容&#xff0c;还有其他的学习知识^_^&#xff0c;为自己巩固一下所学知识&#xff0c;下次更新校园网设计。 我是一个萌新小白&#xff0c;有误地方请大家指正&#xff0c;谢谢…

YOLOv5训练自己的数据及rknn部署

YOLOv5训练自己的数据及rknn部署 一、下载源码二、准备自己的数据集2.1 标注图像2.2 数据集结构 三、配置YOLOv5训练3.1 修改配置文件3.2 模型选择 四、训练五、测试六、部署6.1 pt转onnx6.2 onnx转rknn 七、常见错误7.1 训练过程中的错误7.1.1 cuda: out of memory7.1.2 train…

STM32 ST7735 128*160

ST7735 接口和 STM32 SPI 引脚连接 ST7735 引脚功能描述STM32 引脚连接&#xff08;示例&#xff0c;使用 SPI1&#xff09;SCLSPI 时钟信号 (SCK)PA0(SPI1_SCK)SDASPI 数据信号 (MOSI)PA1 (SPI1_MOSI)RST复位信号 (Reset)PA2(GPIO 手动控制)DC数据/命令选择 (D/C)PA3 (GPIO 手…

使用Redis缓解数据库压力+三种常见问题

目录 一.如何使用 Redis 缓存减缓数据库的压力 &#xff1a; 二.Redis缓存穿透&#xff1a; 布隆过滤器的工作原理&#xff1a; 三.缓存雪崩&#xff1a; 缓存雪崩的处理策略&#xff1a; 四.缓存击穿&#xff1a; 使用 Redis 缓存来减缓数据库的压力是一个常见的优化手段…

移动端VR处理器和传统显卡的不同

骁龙 XR 系列芯片 更多地依赖 AI 技术 来优化渲染过程&#xff0c;而传统的 GPU 渲染 则倾向于在低画质下运行以减少负载。这种设计是为了在有限的硬件资源下&#xff08;如移动端 XR 设备&#xff09;实现高性能和低功耗的平衡。以下是具体的分析&#xff1a; 1. AI 驱动的渲染…

AI新玩法:Flux.1图像生成结合内网穿透远程生图的解决方案

文章目录 前言1. 本地部署ComfyUI2. 下载 Flux.1 模型3. 下载CLIP模型4. 下载 VAE 模型5. 演示文生图6. 公网使用 Flux.1 大模型6.1 创建远程连接公网地址 7. 固定远程访问公网地址 前言 在这个AI技术日新月异的时代&#xff0c;图像生成模型已经成为了创意工作者和开发者手中…

WordPress果果对象存储插件

将网站上的图片等静态资源文件上传至七牛云对象存储&#xff0c;可以减轻服务器文件存储压力&#xff0c;提升静态文件访问速度&#xff0c;从而加速网站访问速度。 支持&#xff1a;阿里云对象存储、华为云对象存储、百度云对象存储、腾讯云对象存储、七牛云对象存储。 下载…

2025美赛倒计时,数学建模五类模型40+常用算法及算法手册汇总

数学建模美赛倒计时&#xff0c;对于第一次参加竞赛且没有相关基础知识的同学来讲&#xff0c;掌握数学建模常用经典的模型算法知识&#xff0c;并熟练使用相关软件进行建模是关键。本文将介绍一些常用的模型算法&#xff0c;以及软件操作教程。 数学建模常用模型包括&#xf…

Maven的下载安装配置

maven的下载安装配置 maven是什么 Maven 是一个用于 Java 平台的 自动化构建工具&#xff0c;由 Apache 组织提供。它不仅可以用作包管理&#xff0c;还支持项目的开发、打包、测试及部署等一系列行为 Maven的核心功能 项目构建生命周期管理&#xff1a;Maven定义了项目构建…