Vim9 语法高亮syntax 在指定的缓冲区和窗口执行命令

背景:从开发,创建makefile、编译、单元测试、到生产部署都只有俺一个人,所以所有的工作都要自己完成,因此有了想法做一个插件,按需实现:构建Makefile,编译、打包、压缩、上传服务器、解压、安装应用(包括了计划任务、apache配置等等),先上个图,左下角是自己开发的快捷编译、部署的插件


知识点:

1.用命令在vim9script脚本中实现分屏

我是先定位到树形目录的窗口,然后在分割

var winid: number = Find_Nerdtree_Win()if winid != -1# 树形目录存在,光标定位在树形目录中exe ':' .. winid .. 'wincmd w'# 在树形目录窗口下方新建快捷编译插件窗口exe 'silent rightbelow :' .. win_height .. 'split ' .. win_title
else# 在当前窗口左边新建快捷编译插件窗口exe 'silent aboveleft :' .. win_height .. 'split ' .. win_title
endif

2.高亮syntax应用,我这里主要是插件窗口中对关键字中的指定字符进行高亮

# syntax match qChar /C/ contained
# syntax match mItem /MakeClean/
exec ':' .. win_id .. 'windo syntax match qChar' .. i .. ' /' .. menu_item["shortcut"] .. '/ contained'
exec ':' .. win_id .. 'windo syntax match mItem' .. i .. ' /' .. menu_item["name"] ..  '/ contains=qChar' .. i# 为语法组qChar进行高亮设置
exec ':' .. win_id .. 'windo hi qChar' .. i .. ' cterm=underline ctermfg=' .. g:dpYellowOrange["cterm256"]

windo:是指在指定的窗口执行命令,之所以没有用bufdo,bufdo会导致当前的窗口也会显示插件的内容

这里采用的是嵌套是的高亮,意思可以理解必须满足一定的条件后,才对匹配的内容进行高亮,例如:

syntax match qChar // containedsyntax match mItem /MakeClean/ contains=qCharhi qChar cterm=underline ctermfg=......

 qChar和mItem都是组名称,用于hi命令,对哪个组进行语法高亮配置

syntax后续有三种匹配方式:keyword(关键字)、match(正则匹配)、region(范围 start=// end=//)

先记到这里了,再次在更新

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

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

相关文章

docker之容器设置开机自启(4)

命令语法: docker update --restartalways 容器ID/容器名 选项: --restart参数 no 默认策略,在容器退出时不重启容器 on-failure 在容器非正常退出时(退出状态非0),才会重启容器 …

动态规划 —— 子数组系列-最大子数组和

1. 最大子数组和 题目链接: 53. 最大子数组和 - 力扣(LeetCode)https://leetcode.cn/problems/maximum-subarray/description/ 2. 算法原理 状态表示:以某一个位置为结尾或者以某一个位置为起点 dp[i]表示:以i位置为结…

【教程】华南理工大学国际校区宿舍门锁声音设置

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 视频教程:【教程】华南理工大学国际校区宿舍门锁声音设置_哔哩哔哩_bilibili 来自: https://tieba.baidu.com/p/8297840035

【AI技术对电商的影响】

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

uni-app中使用 unicloud 云开发平台③

文章目录 六、hbuilderX 中使用 unicloud 云开发平台文档传统业务开发流程什么是 unicloudunicloud 优点开发流程uncloud 构成云数据库云存储及 CDN创建云函数工程七、unicloud api 操作云函数调用云函数实现云数据库基本增删改查1. 获取数据库引用云存储操作六、hbuilderX 中使…

智享AI 无人自动直播的崛起 ,引领智能互动与自动带货新潮流!

在当今数字化飞速发展的时代,商业领域正经历着一场前所未有的变革。智能互动与自动带货成为了新的潮流,而其中最引人瞩目的便是最新的 AI 无人自动直播玩法,它宛如一股强劲的东风,引领着行业的风向。 AI 无人自动直播是多种先进技…

科技云报到:数字化转型,从不确定性到确定性的关键路径

科技云报到原创。 数字化转型是VUCA时代最大的确定性。 如果说,过去是数字化转型的试验阶段,实施的是开荒动土、选种育苗,那么当前要进行的是精耕细作、植树造林,数字化转型已进入了由个别行业、个别场景的“点状应用”向各行各业…

vue3+vite 前端打包不缓存配置

最近遇到前端部署后浏览器得清缓存才能出现最新页面效果得问题 所以…按以下方式配置完打包就没啥问题了,原理很简单就是加个时间戳 /* eslint-disable no-undef */ import {defineConfig, loadEnv} from vite import path from path import createVitePlugins from…

基于Qt/C++全局键盘和鼠标事件监控工具

项目介绍: 该项目实现了一个基于 Qt 框架的全局键盘和鼠标事件监控工具,主要功能包括: 实时监控全局键盘事件:捕获并显示所有键盘按键,并将按键的虚拟键码转为键名显示。实时监控全局鼠标事件:捕获并显示…

华为数通HCIA系列第5次考试-【2024-46周-周一】

文章目录 1、子网掩码有什么作用,和IP地址是什么关系,利用子网掩码可以获取哪些信息?2、已知一个IP地址是192.168.1.1,子网掩码是255.255.255.0,求其网络地址3、已知某主机的IP地址是192.168.100.200,子网掩…

arkUI:遍历数据数组动态渲染(forEach)

arkUI:遍历数据数组动态渲染(forEach) 1 主要内容说明2 相关内容2.1 ForEach 的基本语法2.2 简单遍历数组2.2 多维数组遍历2.4 使用唯一键2.5 源码1的相关说明2.5.1 源码1 (遍历数据数组动态渲染)2.5.2 源码1运行效果 …

Ue5 umg学习(一)

学习视频资料链接 2、UI编辑界面_哔哩哔哩_bilibili 打开ue5虚幻引擎 创建新的文件夹UI,在这个文件夹里写东西 点击停靠在布局中 双击点进UI文件夹 右键用户界面,选择控件蓝图 创建控件蓝图,重命名,在名称后面加一个_BP1代表是…

PYNQ 框架 - 中断(INTR)驱动

目录 1. 简介 2. 分析 2.1 Block Design 2.2 AXI Timer 2.2.1 IP 基本信息 2.2.2 IP 地址空间 2.2.3 级联模式 2.2.4 生成/捕获模式 2.3 AXI Interrupt 2.3.1 IP 基本信息 2.3.2 IP 地址空间 2.3.3 相关概念 2.3.4 参数配置 2.3.5 中断确认寄存器 3. PYNQ 代码 …

RAG综述:《A Comprehensive Survey of Retrieval-Augmented Generation (RAG)》

来源于《A Comprehensive Survey of Retrieval-Augmented Generation (RAG): Evolution, Current Landscape and Future Directions》 一、RAG所解决的问题 如何有效地从外部知识源检索相关信息,如何将这些信息无缝地融入到生成文本中,以及如何在保证生…

GitLab 如何跨版本升级?

本分分享 GitLab 跨版本升级的一些注意事项。 众所周知,GitLab 的升级必须要严格遵循升级路径,否则就会出现问题,导致升级失败。因此,在 GitLab 升级之前需要做好两件事情: 当前版本的确认升级路径的确认 极狐GitLa…

aws(学习笔记第十二课) 使用AWS的RDS-MySQL

aws(学习笔记第十二课) 使用AWS的RDS 学习内容: AWS的RDS-MySQL 1. 使用AWS的RDS 什么是RDS RDS就是Relation Database Service的缩写,是AWS提供的托管关系型数据库系统。让用户能够在 AWS Cloud 云中更轻松地设置、操作和扩展关系数据库。 数据库和we…

云原生-docker安装与基础操作

一、云原生 Docker 介绍 Docker 在云原生中的优势 二、docker的安装 三、docker的基础命令 1. docker pull(拉取镜像) 2. docker images(查看本地镜像) 3. docker run(创建并启动容器) 4. docker ps…

Spark 核心概念与宽窄依赖的详细解析

Spark 的介绍与搭建:从理论到实践_spark环境搭建-CSDN博客 Spark 的Standalone集群环境安装与测试-CSDN博客 PySpark 本地开发环境搭建与实践-CSDN博客 Spark 程序开发与提交:本地与集群模式全解析-CSDN博客 Spark on YARN:Spark集群模式…

【css】html里面的图片宽度设为百分比,高度要与宽度一样

场景&#xff1a;展示图片列表的时候&#xff0c;原始图片宽高不一致。 外层div的宽度自适应&#xff0c;图片宽度不能固定数值&#xff0c;只能设置百分比。图片高度也不能设置固定数值。 如何让图片的高度与图片的宽度一样呢&#xff1f; html代码 &#xff1a; <div cl…

c#使用COM接口设置excel单元格宽高匹配图片,如何计算?

c#使用COM接口设置excel单元格宽高如何换算 在实际工作中&#xff0c;经常需要在excel中插入图片。并设置单元格与图片对齐。但是excel单元格的宽度和高度使用不同的单位。单元格的宽度以字符宽度为单位&#xff0c;而高度以点为单位。如果按照实际值来设置&#xff0c;例如设…