Notepad++ 当您保存文件时,可以自动运行该文件上的程序吗?

pba*_*ney 5 notepad++ macros

我想在保存文件 (CTRL-S) 时对源代码运行 linter。保存文件时是否可以在文件上运行外部命令?

Ana*_*man 5

据我所知,从最严格的意义上来说,没有直接的选项可以在保存后直接运行程序。也就是说,按照以下步骤按Ctrl+时您可能会得到(功能上)类似的行为......S

\n\n

使用 Ctrl + S 保存并执行

\n\n

安装 NppExec

\n\n

通常,常规 Notepad++ 宏与“运行”菜单中的项目相结合可能是实现所需行为的最简单途径。但是,默认情况下,当前似乎不允许将“运行”菜单中的命令作为宏操作。

\n\n

为了绕过这个问题,我们需要一个名为 的插件NppExec。这个插件允许我们编写适度改进的宏(命令脚本)来从 Notepad++ 运行程序。特别是,它允许我们将保存文档和运行程序结合起来(如上所述,这通常是不可能的)。

\n\n

要安装 NppExec:

\n\n
    \n
  • 打开插件管理器(Plugins \xe2\x86\x92插件管理器\xe2\x86\x92显示插件管理器)。

  • \n
  • NppExec在插件列表中找到并标记它。

  • \n
  • 点击Install

  • \n
\n\n

安装后,您需要按照指示重新启动 Notepad++。

\n\n

创建命令脚本

\n\n

重新启动 Notepad++ 后,打开Plugins \xe2\x86\x92 NppExec \xe2\x86\x92 Execute...窗口 ( F6)。在文本字段中,将要执行的命令(按顺序)放在单独的行上:

\n\n
NPP_SAVE\n# ... Another command here ...\n# ... Another command here ...\n
Run Code Online (Sandbox Code Playgroud)\n\n

顺便说一句,我不太清楚您希望如何处理该文件(关于您的 linting 过程),因此我很抱歉上面的示例并不更完整。

\n\n
\n\n

请注意,每个# ... Another command here ...只是此示例的占位符。重要的,#符号实际上并不代表 NppExec 中的注释......这只是我的简写。=)

\n\n
\n\n

可用命令

\n\n

鉴于我们知道我们希望首先保存,我们可以使用NPP_SAVE来启动命令脚本。NPP_SAVE是一个NppExec特定的命令,它告诉 Notepad++ 保存当前文档。

\n\n

一般来说,对于其余命令,您可能会直接调用这些命令(假设它们是NppExec在命令行注册的命令或项目,其输出无关紧要)或使用eg NPP_RUN cmd /k somecommand.exe(或 的其他变体NPP_RUN cmd)来生成新的cmd窗口(其中通常可能更可取)。

\n\n

任何可以从命令行运行的东西(包括批处理文件和脚本)都可能是您的命令的可行选项。Notepad++ 环境变量也可用。您可能使用的最常见的是$(FULL_CURRENT_PATH)(最好用双引号引用,即"$(FULL_CURRENT_PATH)"),它提供了当前文档的已保存版本的完整 Windows 路径。

\n\n

值得一提的是,与Run普通的“运行...”对话框类似,“执行...”OK窗口中将立即执行您的命令。这允许您在保存之前测试它们的功能。同样,该字段在运行之间保持不变。Command(s)

\n\n

一旦您对命令脚本感到满意,您将需要选择Save...,为脚本指定适当的名称,然后Save再次选择以保留它以供以后使用。完成后关闭执行...窗口。

\n\n

将命令脚本添加到菜单

\n\n

我们现在可以将NppExec命令脚本添加到 Notepad++ 菜单中,以便为其分配快捷方式:

\n\n
    \n
  • 转到插件\xe2\x86\x92 NppExec \xe2\x86\x92高级选项...。

  • \n
  • Associated script:在左下角的下拉菜单中选择命令脚本。

  • \n
  • 单击Add/Modify将其添加到Menu items上方的字段中。

  • \n
  • 或者,标记旁边的复选框Place to the Macros submenu以将命令脚本添加到主菜单。否则,它将显示为Plugins \xe2\x86\x92 NppExec下的一个选项。

  • \n
  • 单击OK完成。

  • \n
\n\n

按照指示重新启动 Notepad++,并验证命令脚本现在是否显示为“宏”菜单或“插件\xe2\x86\x92 NppExec”底部的菜单条目。

\n\n

将热键添加到命令脚本

\n\n

最后,重新分配Ctrl+ S

\n\n
    \n
  • 打开设置\xe2\x86\x92快捷方式映射器...。

  • \n
  • 主菜单选项卡上,突出显示“保存”条目。单击Clear窗口底部的 清除该项目的热键设置 ( Ctrl+ S)。

  • \n
  • 选择插件命令选项卡。向下滚动并突出显示命令脚本的条目NppExec(按名称标识)。它可能是条目块中的最后一项NppExec.dll

  • \n
  • 单击Modify并设置适当的热键选项(标记并从下拉列表中Ctrl选择)。S

  • \n
  • 单击OK以保存新的快捷方式设置和快捷方式映射Close器...。

  • \n
\n\n

Ctrl您的命令脚本现在应该由+触发S(无需重新启动)。

\n\n
\n\n

您应该注意,无论您分配什么热键组合,普通版本Save仍将与“文件\xe2\x86\x92”“保存”菜单项和工具栏图标(单个蓝色软盘)相关联。

\n\n
\n

  • 愿上帝保佑您全面且格式良好的答案!这很漂亮 (2认同)