Macros 如何为记事本++;?

Macros 如何为记事本++;?,macros,notepad++,Macros,Notepad++,我想为Notepad++编写一个宏,它应该分别用char4、char5、char6替换char1、char2、char3。这篇文章可以帮助您了解一些相关信息: 假设使用字母数字单词,您可以使用: 搜索=^([A-Za-z0-9]+)$ Replace=可替换:“\1” 或者,如果您只想突出显示行并在选择中使用“全部替换”和“替换”(使用相同的替换): 搜索=^(+)$ ^指向行的起点。 $指向该行的末尾 \1将是括号内的源匹配。记事本++中的宏只是一组编码操作:开始录制,操作缓冲区,可能激活菜

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

这篇文章可以帮助您了解一些相关信息:

假设使用字母数字单词,您可以使用:

搜索=^([A-Za-z0-9]+)$ Replace=可替换:“\1”

或者,如果您只想突出显示行并在选择中使用“全部替换”和“替换”(使用相同的替换):

搜索=^(+)$

^指向行的起点。 $指向该行的末尾


\1将是括号内的源匹配。

记事本++中的宏只是一组编码操作:开始录制,操作缓冲区,可能激活菜单,停止录制,然后播放宏。
经过调查,我发现它们保存在宏部分的shortcuts.xml文件中。例如,我有:


文件中,我们可以看到2170是ReplaceSel的代码(即插入字符串为nothing),2327是Tab命令,Resource Hacker(只要方便…)显示42024是“修剪尾随空间”菜单项,41006是“保存”。
我猜动作类型0是用于带有数字参数的闪烁命令,类型1是用于带有字符串参数的命令,2是用于记事本++命令

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

也许这就是SciTE的Lua脚本功能(或者程序员的记事本,似乎可以用Python编写脚本)的优势所在…:-)


[编辑]看起来我从或类似的地方获得了上述宏…:-)我想前几行是不必要的(副作用或录制),但无论如何它们都是宏代码的好例子。

实际上,shortcuts.xml文件不存储用户生成的宏,并且没有明显的候选项包含此信息。这些说明已经过时了

与各种网站的提示相反,v.5.4.2没有启用存储用户生成的宏。该XML文件存在,但宏没有存储在其中


我猜这是一个将在下一个版本中修复的错误。

我不确定这是否有帮助,但我需要创建一个宏来保存代码段,所以我只是记录了自己插入项目并设置了一个快捷方式。当然,我没有使用版本5.9,所以可能会有一些轻微的版本差异。要访问宏录制器,请转到宏>开始录制。然后执行操作,然后转到“宏>停止录制”。我建议您重新播放以确保正确,然后保存并设置快捷键


希望有帮助。

我刚刚在v5.9.1中完成了这项工作。只需进入宏菜单,单击“开始录制”,执行3个替换所有命令,然后停止录制。然后,您可以选择“保存当前录制的宏”,并根据需要随时播放,它将按您的预期执行替换。

我录制了一个宏,在%APPDATA%\Notepad++\shortcuts.xml中找到了它。它看起来像是在这个帖子的第一篇帖子中发布的


我使用NPP版本。5.9.6.2使用Win7。

我发现用于记事本++的“Python脚本”插件更有用,因为有了该插件,我可以以Python的形式编写简单的宏,它也有非常好的文档和用Python编写的宏示例。如果您对python非常熟悉,那么我认为“python脚本”将提供公正性。
有关更多信息,请参阅:

我个人的经验是,当记事本++退出时,shortcuts.xml会被最初加载的+后来录制的宏和设置覆盖。因此,您不能使用记事本++本身来编辑此文件


关闭Notepad++,用另一个工具编辑shortcuts.xml,保存它并重新启动Notepad++。

在OP发布10多年后,我认为这仍然是一个相关的问题(至少对我来说是这样)。今天,记事本++用户手册中有很多关于OP问题的信息:

  • 有关宏的常规信息:
  • 配置文件文档中有关于所用语言的一般说明:
  • 此处更详细地介绍了搜索和替换操作(根据OP的要求):
下面是一段宏代码:使用正则表达式“.”将SEARCHTEXT替换为REPLACETEXT。在与文件夹路径中的筛选器GLOBFILEFILTER匹配的每个文件中查找/r和/n(无子文件夹,不确定在何处定义/设置此标志)


关于此代码的备注:

  • 文件夹的路径需要以反斜杠结束
  • 像、&这样的字符需要在xml中转义。而是通过录制宏来创建搜索和替换字符串

如果功能不起作用怎么办!(希望现在已经修复。)查看%userprofile%\Application Data\Notepad++\shortcuts.xml他们存储在5.9.8版本的%userprofile%\Application Data\Notepad++\shortcuts.xml中。我不同意-5.9版本(Win7)用户宏确实存储在shortcuts.xml中。注意:它们只有在您退出NPP后才会写入。在v6.6.7中,您可以选择将设置同步到云,在这种情况下,您可以在…\Dropbox\Notepad++\shortcuts.xml中找到它们。本文对属性flagsbtw进行了细分,它确实记录了对话框操作。我在一个文档中多次使用宏查找/替换,它工作得非常好。但每次查找后都需要单击“确定”。如果您没有关联的键盘快捷键,则该文件似乎未保存…@Pete,您的wiki链接已“失效”。我发现;可能是你找到的那个的重新定位版本。它不仅仅是SciTE。Notepad++也有Python脚本:这个文件在Notepad之前不会保存+
<Macro name="REPLACE_IN_FILES_REGEX_DOT_FINDS_CR_AND_LF" Ctrl="no" Alt="no" Shift="no" Key="0">
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="SEARCHTEXT" />
    <Action type="3" message="1625" wParam="0" lParam="2" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="REPLACETEXT" />
    <Action type="3" message="1653" wParam="0" lParam="0" sParam="PATH" />
    <Action type="3" message="1652" wParam="0" lParam="0" sParam="GLOBFILEFILTER" />
    <Action type="3" message="1702" wParam="0" lParam="1024" sParam="" /> 
        <!-- #COMMENT: "1024" seems to be the flag ". finds /n and /r". This is not in the documentation. -->
    <Action type="3" message="1701" wParam="0" lParam="1660" sParam="" />
</Macro>