gpt4 book ai didi

macros - 如何为 Notepad++ 编写宏?

转载 作者:行者123 更新时间:2023-12-03 08:35:50 25 4
gpt4 key购买 nike

我想为 Notepad++ 编写一个宏,它应该分别用 char4、char5、char6 替换 char1、char2、char3。

最佳答案

Notepad++ 中的宏只是一堆编码操作:您开始录制,对缓冲区进行操作,也许激活菜单,停止录制然后播放宏。
经过调查,我发现它们保存在宏部分的文件快捷方式.xml 中。例如,我在那里:

<Macro name="Trim Trailing and save" Ctrl="no" Alt="yes" Shift="yes" Key="83">
<Action type="1" message="2170" wParam="0" lParam="0" sParam=" " />
<Action type="1" message="2170" wParam="0" lParam="0" sParam=" " />
<Action type="1" message="2170" wParam="0" lParam="0" sParam=" " />
<Action type="0" message="2327" wParam="0" lParam="0" sParam="" />
<Action type="0" message="2327" wParam="0" lParam="0" sParam="" />
<Action type="2" message="0" wParam="42024" lParam="0" sParam="" />
<Action type="2" message="0" wParam="41006" lParam="0" sParam="" />
</Macro>

我没有查看源代码,但从外观上看,我会说我们有消息发送到 Scintilla(编辑组件,可能键入 0 和 1)和 Notepad++ 本身(可能激活菜单项)。
我认为它不会在对话框中记录操作(如搜索/替换)。

看着 Scintilla.iface文件,我们可以看到2170是ReplaceSel的代码(即insert string is nothing is selected),2327是Tab命令,Resource Hacker(拿在手上...)显示42024是“Trim Trailing Space”菜单item 和 41006 是“保存”。
我猜操作类型 0 用于带有数字参数的 Scintilla 命令,类型 1 用于带有字符串参数的命令,2 用于 Notepad++ 命令。

问题:Scintilla 没有“全部替换”命令:客户端的任务是进行迭代,无论是否确认,等等。
另一个问题:似乎类型 1 操作仅限于 1 个字符(我手动编辑,退出 N++ 时它被截断了)。
我尝试了一些技巧,但我担心这样的任务超出了宏功能。

也许这就是具有 Lua 脚本能力的 SciTE(或似乎可以用 Python 编写脚本的程序员记事本)具有优势的地方...... :-)

[编辑] 看起来我从 this thread 得到了上面的宏或类似的地方... :-) 我想第一行是不必要的(副作用或录音),但无论如何它们都是宏代码的好例子。

关于macros - 如何为 Notepad++ 编写宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/362444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com