目录
- [一. 简介](#一. 简介)
- [二. 安装](#二. 安装)
- [三. 常用脚本函数](#三. 常用脚本函数)
- [四. 自定义脚本](#四. 自定义脚本)
-
- [4.1 运行代码的脚本](#4.1 运行代码的脚本)
-
- [4.1.1 代码本体](#4.1.1 代码本体)
- [4.1.2 脚本与菜单项目关联](#4.1.2 脚本与菜单项目关联)
- [4.1.3 运行脚本](#4.1.3 运行脚本)
- [4.2 调用外部程序](#4.2 调用外部程序)
-
- [4.2.1 脚本介绍](#4.2.1 脚本介绍)
- [4.2.3 效果](#4.2.3 效果)
- [五. 注意事项](#五. 注意事项)
一. 简介
🔷NppExec是一款可以让Notepad++直接执行命令、脚本、甚至编译运行程序的插件。
该插件内置了控制台窗口,还提供了脚本执行引擎。
🔷核心功能
- 在编辑器里直接运行程序。简易程序的话,直接在Notepad++中即可开发运行
- 运行
PowerShell/ CMD 命令 - 执行
Python/ Java / C 编译 - 调用自己的脚本
- 运行
- 提供了控制台窗口
- 显示程序输出
- 支持输入
- 可以抓取输出结果
- 👍支持脚本
Notepad++对宏的支持较弱,NppExec插件的脚本功能可以弥补该不足- 可以一键运行当前文件
二. 安装
🔷通过插件市场安装之后,插件界面如下图所示。
Execute NppExec Script:执行脚本Advanced Options:高级设置Help/Docs:参考文档,提供了脚本的使用说明

三. 常用脚本函数
- 获取系统临时文件夹
bash
set tmpdir = $(SYS.TEMP)
echo $(tmpdir)
- 弹出框,弹出选中的文本
bash
messagebox "$(SELECTED_TEXT)" : "提示"
- 输入框,输入之后的值会存储在
$(INPUT)变量中
bash
inputbox "message" : "默认值"
echo $(INPUT)
四. 自定义脚本
4.1 运行代码的脚本
4.1.1 代码本体
bash
NPP_SAVE
// 移动到当前目录下
cd $(CURRENT_DIRECTORY)
// 获取文件后缀名, 并赋值
set EXT = $(EXT_PART)
if "$(EXT)" == ".js" GOTO JS
if "$(EXT)" == ".py" GOTO PYTHON
if "$(EXT)" == ".php" GOTO PHP
if "$(EXT)" == ".java" GOTO JAVA
echo "不支持的文件类型: $(EXT)"
GOTO EXIT
// 运行js
:JS
echo Running JavaScript...
node "$(FULL_CURRENT_PATH)"
GOTO EXIT
// 运行Python
:PYTHON
echo Running Python...
python "$(FULL_CURRENT_PATH)"
GOTO EXIT
// 运行PHP
:PHP
echo Running PHP...
php "$(FULL_CURRENT_PATH)"
GOTO EXIT
// 运行Java
:JAVA
echo Compiling Java...
javac -encoding UTF-8 "$(FILE_NAME)"
if $(EXITCODE) != 0 GOTO EXIT
echo Running Java...
java -Dfile.encoding=UTF-8 "$(NAME_PART)"
GOTO EXIT
:EXIT
echo Done.
4.1.2 脚本与菜单项目关联
🔷将代码放到Execute NppExec Script中后,点击保存,然后给脚本取名之后,再次保存

🔷将脚本代码与菜单项目关联

4.1.3 运行脚本
🔷通过宏菜单运行脚本,程序的执行结果会输出到控制台上。

🔷还可以将脚本绑定到右键菜单上来运行。

4.2 调用外部程序
4.2.1 脚本介绍
🧐由于在3.1章节介绍了如何将脚本绑定到菜单上,此处只介绍代码
npp_console off:关闭控制台显示,不关闭的话,脚本执行之后,控制台会自动打开npe_console v+:开启控制台增强模式- 用于将子线程的输出值保存到
$(OUTPUT)变量中 - 如果不开启,无法接收
powershell的输出值
- 用于将子线程的输出值保存到
sel_settext:用于替换在Notepad++中选中的文本
bash
npp_console off
npe_console v+
// 调用外部脚本
powershell.exe -NoProfile -ExecutionPolicy RemoteSigned -File "E:\My_Project\PowerShellStudy\获取Mac地址.ps1"
// 将子线程的输出值保存到变量中
set local content = "$(OUTPUT)"
// 替换选中的文本
sel_settext "$(content)"
获取Mac地址.ps1
powershell
$MacAddress = Get-CimInstance Win32_NetworkAdapterConfiguration | Where-Object { $_.MACAddress -ne $null } | Select-Object Description, MACAddress
Write-Output $($MacAddress | Format-Table -AutoSize)
4.2.3 效果

五. 注意事项
🔷当有多条脚本代码时,新书写代码时,需要使用trmporary script面板书写,否则会将已经保存的代码给覆盖掉。

🔷保存的代码存储在当前用户的AppData文件夹中。
