Vim 插件开发小心得

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

知识点:

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

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

bash 复制代码
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应用,我这里主要是插件窗口中对关键字中的指定字符进行高亮

bash 复制代码
# 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会导致当前的窗口也会显示插件的内容

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

bash 复制代码
syntax match qChar // contained

syntax match mItem /MakeClean/ contains=qChar

hi qChar cterm=underline ctermfg=......

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

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

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

相关推荐
伊卡洛斯az1 小时前
vim的跳转看头文件与分屏
linux·编辑器·vim
散峰而望1 小时前
基本魔法语言函数(一)(C语言)
c语言·开发语言·编辑器·github
paopao_wu1 小时前
DeepSeek-OCR实战(01):基础运行环境搭建-Ubuntu
linux·人工智能·ubuntu·ai·ocr
betazhou1 小时前
基于Linux环境使用ogg19版本从oracle 19c ADG备库远程同步数据
linux·运维·oracle·goldengate·adg·远程抽取
路由侠内网穿透.1 小时前
本地部署消息代理软件 RabbitMQ 并实现外部访问( Windows 版本 )
linux·运维·服务器·远程工作
孙同学_2 小时前
【Linux篇】System V IPC详解:共享内存、消息队列与信号量
linux·服务器
铭哥的编程日记2 小时前
【Linux网络】传输层协议TCP
linux·网络·tcp/ip
它说我会飞耶2 小时前
开机视频动画
linux
大聪明-PLUS3 小时前
Linux 上的 GitOps:使用 Git 进行无缝基础设施管理
linux·嵌入式·arm·smarc
LCG元3 小时前
Linux 环境变量 PATH 详解:为什么你装的命令"找不到"?
linux