我想在保存文件 (CTRL-S) 时对源代码运行 linter。保存文件时是否可以在文件上运行外部命令?
据我所知,从最严格的意义上来说,没有直接的选项可以在保存后直接运行程序。也就是说,按照以下步骤按Ctrl+时您可能会得到(功能上)类似的行为......S
\n\n使用 Ctrl + S 保存并执行
\n\n安装 NppExec
\n\n通常,常规 Notepad++ 宏与“运行”菜单中的项目相结合可能是实现所需行为的最简单途径。但是,默认情况下,当前似乎不允许将“运行”菜单中的命令作为宏操作。
\n\n为了绕过这个问题,我们需要一个名为 的插件NppExec。这个插件允许我们编写适度改进的宏(命令脚本)来从 Notepad++ 运行程序。特别是,它允许我们将保存文档和运行程序结合起来(如上所述,这通常是不可能的)。
要安装 NppExec:
\n\n打开插件管理器(Plugins \xe2\x86\x92插件管理器\xe2\x86\x92显示插件管理器)。
NppExec在插件列表中找到并标记它。
点击Install。
安装后,您需要按照指示重新启动 Notepad++。
\n\n创建命令脚本
\n\n重新启动 Notepad++ 后,打开Plugins \xe2\x86\x92 NppExec \xe2\x86\x92 Execute...窗口 ( F6)。在文本字段中,将要执行的命令(按顺序)放在单独的行上:
\n\nNPP_SAVE\n# ... Another command here ...\n# ... Another command here ...\nRun Code Online (Sandbox Code Playgroud)\n\n顺便说一句,我不太清楚您希望如何处理该文件(关于您的 linting 过程),因此我很抱歉上面的示例并不更完整。
\n\n请注意,每个# ... Another command here ...只是此示例的占位符。重要的,#符号实际上并不代表 NppExec 中的注释......这只是我的简写。=)
可用命令
\n\n鉴于我们知道我们希望首先保存,我们可以使用NPP_SAVE来启动命令脚本。NPP_SAVE是一个NppExec特定的命令,它告诉 Notepad++ 保存当前文档。
一般来说,对于其余命令,您可能会直接调用这些命令(假设它们是NppExec在命令行注册的命令或项目,其输出无关紧要)或使用eg NPP_RUN cmd /k somecommand.exe(或 的其他变体NPP_RUN cmd)来生成新的cmd窗口(其中通常可能更可取)。
任何可以从命令行运行的东西(包括批处理文件和脚本)都可能是您的命令的可行选项。Notepad++ 环境变量也可用。您可能使用的最常见的是$(FULL_CURRENT_PATH)(最好用双引号引用,即"$(FULL_CURRENT_PATH)"),它提供了当前文档的已保存版本的完整 Windows 路径。
值得一提的是,与Run普通的“运行...”对话框类似,“执行...”OK窗口中将立即执行您的命令。这允许您在保存之前测试它们的功能。同样,该字段在运行之间保持不变。Command(s)
一旦您对命令脚本感到满意,您将需要选择Save...,为脚本指定适当的名称,然后Save再次选择以保留它以供以后使用。完成后关闭执行...窗口。
将命令脚本添加到菜单
\n\n我们现在可以将NppExec命令脚本添加到 Notepad++ 菜单中,以便为其分配快捷方式:
转到插件\xe2\x86\x92 NppExec \xe2\x86\x92高级选项...。
Associated script:在左下角的下拉菜单中选择命令脚本。
单击Add/Modify将其添加到Menu items上方的字段中。
或者,标记旁边的复选框Place to the Macros submenu以将命令脚本添加到主宏菜单。否则,它将显示为Plugins \xe2\x86\x92 NppExec下的一个选项。
单击OK完成。
按照指示重新启动 Notepad++,并验证命令脚本现在是否显示为“宏”菜单或“插件\xe2\x86\x92 NppExec”底部的菜单条目。
\n\n将热键添加到命令脚本
\n\n最后,重新分配Ctrl+ S:
\n\n打开设置\xe2\x86\x92快捷方式映射器...。
在主菜单选项卡上,突出显示“保存”条目。单击Clear窗口底部的 清除该项目的热键设置 ( Ctrl+ S)。
选择插件命令选项卡。向下滚动并突出显示命令脚本的条目NppExec(按名称标识)。它可能是条目块中的最后一项NppExec.dll。
单击Modify并设置适当的热键选项(标记并从下拉列表中Ctrl选择)。S
单击OK以保存新的快捷方式设置和快捷方式映射Close器...。
Ctrl您的命令脚本现在应该由+触发S(无需重新启动)。
\n\n您应该注意,无论您分配什么热键组合,普通版本Save仍将与“文件\xe2\x86\x92”“保存”菜单项和工具栏图标(单个蓝色软盘)相关联。