惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
D
DataBreaches.Net
博客园 - 三生石上(FineUI控件)
博客园_首页
T
Tailwind CSS Blog
美团技术团队
Hugging Face - Blog
Hugging Face - Blog
博客园 - 叶小钗
大猫的无限游戏
大猫的无限游戏
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
云风的 BLOG
云风的 BLOG
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 聂微东
S
SegmentFault 最新的问题
小众软件
小众软件
酷 壳 – CoolShell
酷 壳 – CoolShell
N
Netflix TechBlog - Medium
Jina AI
Jina AI
WordPress大学
WordPress大学
U
Unit 42
J
Java Code Geeks
Blog — PlanetScale
Blog — PlanetScale
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Cloudflare Blog

Yesterday17's Blog

2026 新年解密红包 / Melody Flag | Yesterday17's Blog 谈谈 Iori 的设计思路(二):如何实现一个 Showroom 录制工具? | Yesterday17's Blog 谈谈 Iori 的设计思路(一):从 Nico Timeshift 说起 | Yesterday17's Blog Iori Minyami 0.1.0 发布 | Yesterday17's Blog 2025 新年解密红包 / Melody Flag | Yesterday17's Blog 使用 Cloudflare Warp 解决罗森票务的海外登录问题 | Yesterday17's Blog How To Blog 04: The Astro v5 Era | Yesterday17's Blog 谈谈 tokio::select! 的公平性 | Yesterday17's Blog Learning Pingora 05 - Connect with TLS | Yesterday17's Blog Leaving Bytedance | Yesterday17's Blog 大橋彩香 AsiaTour「Reflection」上海公演 个人向记录 & Repo | Yesterday17's Blog Recoving from burnout - What happened? | Yesterday17 Yubikey 重建手册 | Yesterday17's Blog How To Blog 03: Heimus | Yesterday17's Blog 🪧 Blog Migration Accouncement | Yesterday17's Blog Learn Your IDE - VSCode 是如何仅重启插件的? | Yesterday17's Blog How To Blog 02: Astro❤️Password | Yesterday17's Blog How To Blog 01: Why, How, and the Future | Yesterday17's Blog Learning Pingora 04 - Establish L4 Connection | Yesterday17's Blog Learning Pingora 03 - Upstreams and Peers | Yesterday17's Blog Learning Pingora 02 - A Simple HTTP Server | Yesterday17's Blog Learning Pingora 01 - Getting Started | Yesterday17's Blog 2024 新年解密红包 / Melody Flag | Yesterday17's Blog 向新的一年飞驰——记录 2023 | Yesterday17's Blog 「サクラノ刻」对话选摘(2) | Yesterday17's Blog PGP Key Revocation 注销声明 | Yesterday17's Blog 「サクラノ刻」对话选摘(1) | Yesterday17's Blog 2023 新年解密红包 / Melody Flag | Yesterday17's Blog 『蒼の彼方のフォーリズム』通关感想 | Yesterday17's Blog 单显卡直通教程 | Yesterday17's Blog
[工具][VSCode 扩展] AegiKit——方便 Aegisub 使用的工具箱 | ...
Yesterday17 · 2020-07-03 · via Yesterday17's Blog

这次来介绍的是我一周之前完工的 VSCode 扩展:AegiKit 的使用介绍。这里准备简单介绍一下这个扩展的功能和用法。

https://github.com/Yesterday17/AegiKit

功能列表

功能列表其实 Readme 里也有,但是鉴于不是所有人都会看这个,加之 Readme 里也说得比较简单,所以我在这里也列一下好了。

  • ASS 基础高亮
  • 卡拉 OK 模板行(template)的高亮
  • 卡拉 OK 代码行(code)的高亮
  • Lua 代码格式化
  • Lua 代码压缩(minify

下面就从几个大类来简单说明一下好了。

ASS 基础高亮

这个其实没什么好说的,为 VSCode 增加了新的 tmLanguage 支持也是耗时最长的。在我目前的颜色主题下,显示效果是这样的:

字幕高亮预览
字幕高亮预览

卡拉 OK 模板行高亮

AegiKit 为这种高亮定义了一种全新的文件后缀:karatmpl,以方便实现更精准的功能对应。

样式

首先先来看一下效果吧:

模板高亮预览
模板高亮预览

默认情况下,karatmpl 文件会开启自动换行,以方便阅读。对于被感叹号(!)包裹的内联 Lua 代码,也会根据 Lua 的高亮进行代码高亮的显示。

内联变量补全($

对于内联变量,只要你输入 $ 字符,就会显示 kara-templater 可用的所有内联变量。其中部分变量有中文解释,便于书写代码。

内联补全
内联补全

内联变量在代码中也有自己的高亮,以表明其身份。

颜色预览

对于诸如 1c 等表示颜色的标签,AegiKit 基于 VSCode 实现了颜色预览与编辑的功能。如下图所示:

颜色预览
颜色预览

这张图中,我们可以通过这个小方格来实时查看当前对应的颜色。此外,还可以通过 VSCode 的颜色拾取器来主动选择颜色:

颜色拾取
颜色拾取

不过目前,颜色选择的功能还没有和透明度关联起来,因此选择透明度是没有用的。

卡拉 OK 代码行高亮

Lua 代码在卡拉 OK 自动化中起到了非常关键的作用。可惜的是,Aegisub 并没有对 Lua,即卡拉 OK 代码行的高亮支持。并且在 Aegisub 中书写 Lua 也不是那么流畅。于是我把代码行高亮的部分也加到了 VSCode 里。

虽然目前代码行并没有太多的补全,但之后是有可能会有的。毕竟代码行也许要很多补全的内容,包括 _Gmaxjj 之类的。

代码格式化

AegiKit 自带了 Lua 的代码格式整理器,可以将 Aegisub 中单行的 Lua 代码变成人能正常阅读的多行代码。

代码格式化的方式和其他语言没有区别,按照正常的 VSCode 操作方式进行就可以了。

代码压缩

和上面的步骤相反,当我们想要将代码复制到 ASS 中时,我们需要压缩代码。这时候就可以使用代码压缩功能了。只需要使用这个命令就行了:

它会将目前编辑器中的代码压缩。

我还在寻找其他不修改当前源码,但可以获取压缩后源码的方式,所以可能还会有变动(