【浅谈IDE宏指令录制】为加速chrome扩展国际化,我从vscode回归notepad++

news2024/11/24 10:45:55

vscode 的宏录制功能 —— 差强人意

安装vscode开源扩展:https://github.com/C10udburst/macros-vscode.git

可开启类似于 notetepad 的宏录制与回放功能!比如录制字符串替换,能记录操作之时,替换对话框中的文本!(这一点,VSstudio都不行,只能实时替换对话框中存在的字符)

可能需要新版本的 vscode 才能安装。如果不想切换,也可以专门下载个 cursor 编辑器,这是 openai 的vscode 分支,还能免费问gpt问题、
请添加图片描述

缺点是,只能录制当前标签页,一切换就停止录制。

而且发现 vscode 这方面一言难尽,api不全,录制个最小化字符串的命令,结果它给我重新打印一遍,根本不能使用,无奈,只好用回我的 textrument。textrument 是我改的npp,修改过程学到了不少,抛开作者不谈,这是个很好的c++开源项目,适合新手入门。


notepad++ 的宏录制功能

优点:所有免费编辑器之中的冠军

缺点1:录制后,不方便组合修改。

缺点2:录制后,保存于xml会转义中文字符串,更加不方便修改。

缺点3:录制后,存储于xml,所以如果像vscode那样,打开了多个npp窗口,会导致,其中一个窗口录制的,其他窗口无法读取,而且极易丢失辛辛苦苦编排好的操作。

Textrument 的宏录制功能

优点:继承 notepad++

优点:存储于数据库,安全可靠

优点:存储于sqlite数据库,可以用sqlite官方开源的qt db browser for sqlite 打开编辑。注意,编辑框须ctrl+enter提交到表格,然后ctrl+s保存。

总之全是优点,还有其他小优化。

请添加图片描述

加速chrome扩展国际化

chrome扩展国际化的工作量非常大,所以前期只准备中英两种翻译。即便如此,也很麻烦。

主要是i8n的键值对,键名只能是英文加下划线,所以需要对键名规整化:

Hello World -> hello_world

在 message.json 就是:

,"hello_world": { "message": "Hello World" }

以及:

,"hello_world": { "message": "你好,世界!" }

最终打包release的时候,还可以进一步缩写"hello_world":,比如缩写成“hw1”。

没找到专门的插件来做这件事,没有android studio那样的多语言编辑器。但是可以用宏录制功能来初步实现加速迭代 —— 录制 键名规整化、生成键值对的步骤,然后手动粘贴到多个 message.json,最后逐一修改翻译。

录制好的宏:

[{"type":0,"message":2013,"wParam":0,"lParam":0,"desc":"全选"}
,{"type":0,"message":2179,"wParam":0,"lParam":0,"desc":"粘贴"}
,{"type":3,"message":1700,"wParam":0,"lParam":0}
,{"type":3,"message":1601,"wParam":0,"lParam":0,"sParam":" "}
,{"type":3,"message":1625,"wParam":0,"lParam":0}
,{"type":3,"message":1602,"wParam":0,"lParam":0,"sParam":"_"}
,{"type":3,"message":1702,"wParam":0,"lParam":768}
,{"type":3,"message":1701,"wParam":0,"lParam":1609}
,{"type":0,"message":2013,"wParam":0,"lParam":0}
,{"type":2,"message":0,"wParam":42016,"lParam":0}
,{"type":2,"message":0,"wParam":42017,"lParam":0}
,{"type":0,"message":2453,"wParam":0,"lParam":0}
,{"type":0,"message":2327,"wParam":0,"lParam":0}
,{"type":1,"message":2170,"wParam":0,"lParam":0,"sParam":",\""}
,{"type":0,"message":2451,"wParam":0,"lParam":0,"desc":"END"}
,{"type":1,"message":2170,"wParam":0,"lParam":0,"sParam":"\": { \"message\": \""}
,{"type":0,"message":2179,"wParam":0,"lParam":0,"desc":"粘贴"}
,{"type":1,"message":2170,"wParam":0,"lParam":0,"sParam":"\" }\r\n"}
,{"type":0,"message":2327,"wParam":0,"lParam":0}
,{"type":0,"message":2013,"wParam":0,"lParam":0}
,{"type":0,"message":2178,"wParam":0,"lParam":0,"desc":"复制"}
]

使用步骤:

  1. 导入至 textbase.db

  2. 复制vscode中需要规整化的英文翻译:
    请添加图片描述

  3. 使用宏:切换至 textrument 窗口,运行导入的宏指令“chrome扩展键值对规整化”:
    请添加图片描述

  4. 运用结果:切换回 vscode,手动ctrl+v粘贴规整化的键值对:
    请添加图片描述

  5. 接着,在vscode中复制建名称,ctrl+v粘贴回原来位置:

请添加图片描述

结果优雅:

请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mac上安装Java的JDK多版本管理软件jEnv

JDK的多版本管理软件主要有以下三种: jEnv jEnv 是一个命令行工具,可以帮助您管理和切换不同版本的 Java 环境。它可以让您在不同的项目之间轻松切换 Java 版本。您可以使用 jenv global 命令设置全局 Java 版本,也可以使用 jenv local 命令…

【力扣】42. 接雨水

这道题我卡了差不多1个小时,不是不会做,是不知道怎么能用栈来实现,后面看了一个博主的视频,豁然开朗,我主要的纠结点在于当指针指到7的时候,我计算出4到7的水块是2,但实际上是0,因为…

打造完美家庭空间,让生活更加舒适

在现代繁忙的都市生活中,家是人们温暖而舒适的避风港。而如何打造一个恰到好处的家庭空间,成为了许多人心中的追求。今天,就让我们来探索一些空间布局方案,为您的家庭营造一个完美融合功能与美感的舒适空间。 🏠&…

RT-Thread 内存管理(学习二)

内存堆管理应用示例 这是一个内存堆的应用示例&#xff0c;这个程序会创建一个动态的线程&#xff0c;这个线程会动态申请内存并释放&#xff0c;每次申请更大的内存&#xff0c;当申请不到的时候就结束。 #include <rtthread.h>#define THREAD_PRIORITY 25 #defi…

微信小程序通过createSelectorQuery获取元素 高度,宽度与界面距离

小程序官方有提供给我们一个 const query wx.createSelectorQuery() 函数 我们可以先编写这样一段代码 wxml <view><button bindtap"getDom">点击查看</button><view class "textIn" style "height: 100px;width: 30px;&quo…

IDEA 初始化配置

进入所有配置 配置外观 取消退出前确认和启动软件自动打开之前最后的项目 设置使用键盘Ctrl鼠标滚轮调整代码大小 设置字符集 设置构建工具 自动构建与自动编译 启用注解

think-rom(thinkphp) 数据库参数绑定bigint被处理成浮点数(科学计数)问题

背景 think-orm(db库)在处理长整型参数时会进行一次安全处理转换成浮点型&#xff0c;但php浮点数超过一定长度就会失去精准度变成科学计数&#xff0c;导致where条件匹配不上&#xff0c;这个问题目前覆盖thinkphp3到8全系&#xff1b; 解决方案 全局搜索 (float) $val[0] : …

迁移人大金仓问题汇总

迁移人大金仓问题汇总 1、SQL 错误 [42883]: 错误: 操作符不存在: tinyint Hint: 没有匹配指定名称和参数类型的操作符. 您也许需要增加明确的类型转换. SELECT id, model_id, process_definition_id, task_definition_key, TYPE, OPTIONS, scope_userid, scope_clas…

雷达分辨率单元、单向/双向雷达方程、天气雷达方程简介

一、点状目标 如果两个点状目标在一个分辨率单元中,经典脉冲雷达只能看到一个目标。 点状目标 二、雷达距离分辨率 对于简单的键控开/关脉冲调制: 对于使用脉冲内调制的雷达,距离分辨率取决于压缩脉冲的脉冲持续时间。脉冲压缩比(PCR)取决于传输带宽BWtx,即距离分辨率取…

大语言模型学到什么

背景&#xff1a; 这篇文章是对《LANGUAGE MODELS REPRESENT SPACE AND TIME》论文的翻译加解读。之所以选这篇文章是因为最近在研究大模型的可解释性&#xff0c;以及基于可解释性对大模型的下游任务适配做训练级别可控性增强研究。其实总结成两句话就是&#xff1a; 1.大模…

amber14自由能计算及增强采样方法

1分子力学简介 1.1分子力学的基本假设 1.2分子力学的主要形式 2分子力场 2.1分子力场的简介 2.2分子力场的原理 分子力场的分类及应用 二.LINUX入门 教学目标&#xff1a;掌握数值计算平台&#xff0c;熟悉计算机语言&#xff0c;能够使用vim编辑器简单编辑文件。 3LINUX 简介 …

84.柱状图中最大的矩形

class Solution { public:int largestRectangleArea(vector<int>& heights) {//法一&#xff1a;枚举宽&#xff0c;超时if(0){int nheights.size();int area0;for(int left0;left<n;left){int minHINT_MAX;for(int rightleft;right<n;right){minHmin(minH,hei…

Spring实例化源码解析之MessageSource(七)

前言 在阅读完 registerBeanPostProcessors 源码之后&#xff0c; 下一步就进入到 initMessageSource&#xff0c;这一步主要作用是初始化国际化文件。 源码分析 这段源码是一个Java方法&#xff0c;用于初始化消息源&#xff08;MessageSource&#xff09;。在Spring框架中…

万字详解HTTP协议面试必备技能

目录 一、HTTP 是什么 二、理解 "应用层协议" 2.1理解 HTTP 协议的工作过程 2.2HTTP 协议格式 2.3抓包工具的使用 2.4抓包工具的原理 2.5抓包结果 2.5.1HTTP请求 2.5.2HTTP响应 2.6协议格式总结 三、HTTP 请求 (Request) 3.1认识 URL 3.1.1URL 基本格式 …

Jmeter 多实例压测

Apache JMeter 是一个开源的 Java 应用程序&#xff0c;用于性能测试和负载测试。它最初是为测试 Web 应用程序而创建的&#xff0c;但现在已广泛用于测试各种不同类型的应用程序&#xff0c;包括数据库、消息队列、FTP 服务器等。JMeter 提供了丰富的功能&#xff0c;使您能够…

行内元素文字背景被截断的问题,如何进行修改?

1.问题如图所示 这里背景是被截断的&#xff0c;有什么css样式可以修改它呢&#xff1f; 效果实现如图&#xff1a; 不一样的地方在于这里的截断位置是引用了开头和结尾的位置。 如何实现&#xff1f; <!DOCTYPE html> <html lang"en"> <head><…

终于找到了!Jenkins最全最详细入门指南

目录 一、介绍 二、功能 三、搭建Jenkins目的 四、安装 五、Jenkins的三大概念 六、创建job & 配置git 七、构建触发器&#xff08;build triggers&#xff09; 八、运行python脚本 九、测试报告展示 十、配置邮件并发送 最后 一、介绍 Jenkins是开源的,使用Java编…

Linux系统部署PostgreSQL 单机数据库

安装方式 1 安装包方式 &#xff08;Packages and Installers&#xff09; 支持的操作系统包括 liunxMacosWindowsBSDSolaris 2 源码安装 &#xff08;Source code&#xff09; 下载源码包 通过下载地址PostgreSQL: File Browser 可以看到有各个版本的源码目录 选择13.1…

二维离散傅里叶变换的实现

二维离散傅里叶变换的实现 1.使用Python包实现2.使用c实现2.1 FFTW库安装2.2 结果比较 参考文献 1.使用Python包实现 import numpy as np import matplotlib.pyplot as plt anp.array([0, 2, 4, 1,6, 1, 3, 2,5]).reshape(3,3) fnp.fft.fft2(a) fshiftnp.fft.fftshift(f) mag…

CSS圆角大杀器,使用滤镜构建圆角及波浪效果

目录 1&#xff0c;border-radius实现圆角2&#xff0c;filter: contrast() 配合 filter: blur() 实现圆角3&#xff0c;使用 filter: contrast() 配合 filter: blur() 实现波浪效果 1&#xff0c;border-radius实现圆角 通常我们加个 border-radius就可实现一个div盒子的圆角…