Notepad++:创建替换选定文本的宏

Notepad++:创建替换选定文本的宏

我需要一个 Notepad++ 宏来执行搜索和替换,而是针对运行宏时突出显示的文本部分。

我尝试录制宏,但它只录制我在录制宏时突出显示的文本部分。这不是我想要的。我需要应用搜索和替换每次运行宏时都会显示不同的文本。

录制宏后,AppData\Notepad++\shortcuts.xml出现这个东西:

<Macro name="SaR_macro" Ctrl="yes" Alt="no" Shift="yes" Key="89">
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="some text" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

也许有办法在some text上面的位置插入类似“当前选择”的内容?我应该这样做吗?

编辑

更准确地说,我想实现这个目标。假设我有一个如下所示的 txt 文件:

text text text text text - qwerty
text text text text - asdf
text text text text text text - zxc

我想要实现的情况是:我选择- qwerty,然后按下宏热键,结果 变成- qwerty了其他内容。然后我选择- asdf,接下来按下宏热键,结果 变成了- asdf与之前相同的内容。接下来, 也发生了相同的情况- zxc

答案1

恐怕仅使用一个热键是无法实现的。

不过还有另一种选择:

您可以在 PythonScript 插件中运行 Python 脚本。

如果尚未安装,请按照此操作指导

  • 创建脚本(插件>> PythonScript >> 新脚本)
  • 复制此代码并保存文件(例如 replace_highlight.py):

editor.replaceSel('new text')

  • 转到插件 >> PythonScript >> 配置
  • 选择脚本replace_highlight.py
  • 节省
  • 重启 Notepad++(工具栏中会出现一个 PythonScript 图标)
  • 打开要修改的文件
  • 突出显示要替换的文本
  • 点击之前创建的图标
  • 完毕

如果你想更换所有事件选定的文本,使用以下代码:

editor.replace(editor.getSelText(), 'NEW TEXT')

相关内容