Notepad++ NppExec插件的使用

目录

  • [一. 简介](#一. 简介)
  • [二. 安装](#二. 安装)
  • [三. 常用脚本函数](#三. 常用脚本函数)
  • [四. 自定义脚本](#四. 自定义脚本)
    • [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文件夹中。

相关推荐
fengyehongWorld3 天前
Notepad++ 常用插件
notepad++
fengyehongWorld3 天前
Notepad++ PythonScript插件,添加自定义文本转换功能
notepad++
x***r1514 天前
Notepad++ 6.6.9安装步骤详解(附Notepad++离线安装教程)
notepad++
Uso_Magic8 天前
Notepad++ 批量光标编辑方法。
notepad++
秋912 天前
Notepad++ 完全使用手册:从入门到精通
notepad++
sanqima14 天前
设置Notepad++在cpp文件里的字体与样式
notepad++·字体与颜色
特立独行的猫a15 天前
HarmonyOS鸿蒙PC开源QT软件移植:移植开源文本编辑器 NotePad--(Ndd)到鸿蒙 PC实践总结
qt·开源·notepad++·harmonyos·notepad--·鸿蒙pc
qq_4335021817 天前
微信小程序更新机制踩坑记录:updateInfo 为什么总是读到旧数据?
微信小程序·小程序·notepad++
嵌入式×边缘AI:打怪升级日志20 天前
嵌入式Linux应用开发快速入门(从零到第一个程序)
linux·运维·notepad++