1

我在 N++ 中使用简单的NPP_Exec命令,这些命令对宏很好。例如。:

NPP_MENUCOMMAND Macro/Action1
NPP_MENUCOMMAND Encoding/Convert to ANSI
NPP_SAVE

但是我怎样才能多次运行一个特定的宏呢?我已经尝试过NPP_MENUCOMMAND Macro/Run ,但我仍然需要手动选择我需要的宏,并在弹出窗口中将其设置为“运行到行尾”。

4

2 回答 2

0

我刚刚找到了一个简单易用的解决方案。我没有使用命令行,但它也可以工作:

  1. 确保宏以 Ctrl-Tab 键结束
  2. 从设置 -> 首选项 -> MISC,禁用文档切换器。
  3. 打开所有要编辑的文件。
  4. 使用“多次运行宏”对话框,输入刚刚打开的文件数。
  5. 执行
  6. 保存全部

我没有创建它,在这里找到它:https ://sourceforge.net/p/notepad-plus/discussion/331754/thread/469ffec9/ ,但它对我来说就像一个魅力。我可以在不到 2 分钟的时间内编辑 400 个文档。

于 2018-11-15T13:21:30.887 回答
0

您可以将 NppExec 插件用于简单的循环,如下所示:

:REPEAT
  SCI_SENDMSG SCI_GETCURRENTPOS
  set pos1 = $(MSG_RESULT) 

  // put your Macro invocation here instead of the linedown:
  SCI_SENDMSG SCI_LINEDOWN

  SCI_SENDMSG SCI_GETCURRENTPOS
  set pos2 = $(MSG_RESULT) 

  // if the linedown (or your macro) doesnot give another pos, we have reached the end
  if $(pos1) == $(pos2) goto END
  // else loop
  goto REPEAT

:END
  • 它存储当前位置
  • 然后它会做一些事情来推进位置(在这个例子中是一个linedown,你可以把你的宏调用放在那里,确保它改变了光标位置)
  • 然后将该位置与存储的位置进行比较;如果位置没有改变,我们已经到了终点;
  • 在这种情况下,我们离开循环
于 2016-06-18T19:47:53.070 回答