欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

基于python/c++开发notepad++的插件,pythonscript(一) 基于Python/C++开发Notepad++的插件,PythonScript(二) 有大用

        PythonScript是Notepad++的一款插件,它可以在日常使用中辅助简化工作并拓展功能。通过使用Python脚本,你可以实现一些自动化的任务,如文件自动保存和选中单词翻译等。PythonScript插件本身是用C++和Boost.Python编译而成,因此学习和了解PythonScript可以提高我们在Python和C++应用方面的能力。

        对于初学者来说,PythonScript插件是一个很好的入门学习工具。它可以帮助你提升编程能力,学习编程技巧,并了解与Windows相关的编程知识。通过使用PythonScript插件,你可以在Notepad++中结合Python和C++进行开发,扩展编辑器的功能,进行自定义的编程和脚本操作。

notepad++简介

Notepad++是一个免费开源的文本编辑器,适用于Windows操作系统。它提供了比Windows自带的记事本更多的功能和特性,使其成为程序员和编码爱好者的首选工具之一。

notepad++插件

Notepad++支持插件来扩展其功能和增强用户的编辑体验。插件可以添加额外的功能、工具和集成,使Notepad++更适合特定的编程语言或任务。以下是一些常用的Notepad++插件:

  1. NppExec:提供了一个强大的命令行窗口,可以运行和测试代码片段,执行自定义命令等。

  2. Compare:用于比较两个文本文件或文件夹之间的差异,并高亮显示差异部分。

  3. Emmet:扩展HTML和CSS编辑的功能,提供快速的代码编写和自动补全

  4. Explorer:添加一个文件资源管理器,可以在Notepad++界面中浏览和操作文件。

  5. XML Tools:用于处理和验证XML文档的插件,支持格式化、转换、验证、压缩等操作。

  6. JSON Viewer:可视化显示和编辑JSON数据,提供折叠、展开、格式化等功能。

  7. Markdown Viewer:将Markdown格式的文本实时预览为HTML,方便在编辑器中查看和编辑Markdown文档。

  8. FTP_synchronize:用于与远程FTP服务器同步文件的插件,支持上传、下载、删除文件等操作。

  9. Plugin Manager:用于管理和安装Notepad++插件的插件,简化了插件的安装和更新过程。

这只是一小部分常见的Notepad++插件,还有很多其他插件可以根据个人需求进行安装和使用。可以通过Notepad++的官方网站或第三方插件库来获取更多插件,并根据自己的需要选择适合的插件来增强Notepad++的功能。

PythonScript插件

PythonScript是Notepad++的一个插件,它允许在Notepad++中使用Python脚本来进行自定义编程和扩展功能。通过PythonScript插件,你可以编写和运行Python脚本,与Notepad++进行交互,并使用Python的强大功能来增强编辑器的功能。

以下是PythonScript插件的一些主要特点和功能:

  1. Python脚本编写:可以使用Python编写脚本,在Notepad++中执行代码。你可以编写自定义的功能、自动化任务、批量处理等。

  2. 脚本扩展功能:可以通过Python编写插件,向Notepad++添加自定义功能和命令。这使得你可以根据自己的需求来扩展编辑器的功能,例如添加特定语言的语法高亮、自动完成或者其他定制功能。

  3. 与Notepad++交互:可以使用Python脚本与Notepad++进行交互,访问和修改编辑器的状态、文本内容以及运行编辑器的功能。这使得你可以根据需要对文本进行操作、自动化重复任务等。

  4. 脚本管理:提供了一个简单的界面,可以管理和加载Python脚本,包括加载、卸载脚本。

使用PythonScript插件,你可以将Notepad++打造成一个功能强大的Python集成开发环境,并根据自己的需求来灵活定制编辑器的功能。PythonScript插件自带有相关的文档和示例,可以帮助我们学习如何使用和扩展它。

安装工具

学习的前提是我们需要先安装用到的工具,包含notepad++和PythonScript插件,如下是工具的github地址

  1. notepad++ github地址:GitHub - notepad-plus-plus/notepad-plus-plus: Notepad++ official repository

    我们到release中下载相应32位安装包,目前最新版本是8.5.4,选 npp.8.5.4.Installer.exe 并下载

  2. PythonScript github地址: GitHub - bruderstein/PythonScript: Python Script plugin for Notepad++

    我们到release中下载相应32位安装包,选第一个 PythonScript_3.0.16.0.msi 并下载

1. 笔者使用windows 10,两个安装包已下载到桌面,先安装notepad++,双击安装包,然后一路默认,可以看到默认安装在C盘 ( C:Program Files (x86)\Notepad++),并且选择创建桌面快捷方式

           

             

2. 然后双击pythonscript安装包,同意协议并一路默认,可以看到插件默认安装路径也是在C:Program Files (x86)\Notepad++            

           

3. 安装完成后,可以进到notepad++安装目录,看到pythonscript已经在notepad++的plugins目录中

           

 4. 此时打开Notepad++提示报错,选否按钮(不要选是),退出提示

           

 5. 进到PythonScript目录中,复制python310.dllC:Program Files (x86)\Notepad++目录下,

           

6. python310.dll还依赖vcruntime140.dll,可以在计算机搜索vcruntime140.dll,复制到C:\Program Files (x86)\Notepad++目录下,如果搜索不到,可以到网上搜索下载.

           

 7. 最后notepad++和PythonScript都安装完成,打开notepad++,可以在"插件"菜单下看到"Python Script"子菜单.可以开始愉快的开发python脚本了.

           

开始学习Python开发

        在安装了PythonScript插件后,你可以在Notepad++的菜单栏中找到"Python Script"选项。点击该选项,会弹出一个子菜单,其中包含"Show Console"、"Scripts"和"Context-Help"等选项。

  • "Show Console"选项可以打开PythonScript的控制台窗口,用于显示脚本的输出和错误信息。可以看到默认输出显示了一些信息,包含python的版本(3.10.11)/tag/32 bit,以及启动花费的时间(235ms).

  • "Scripts"选项可以(需要键盘同时按住Ctrl键)打开PythonScript的示例脚本,其中包含了一些示例脚本代码,可以作为参考和学习的素材。

  • "Context-Help"选项可以打开PythonScript的官方文档,其中包含了详细的API文档和使用示例,可以帮助我们理解和学习PythonScript的各种功能和用法。

 通过查阅PythonScript的文档和示例,我们可以了解插件的各种功能,学习如何编写脚本来实现我们的需求,并扩展Notepad++的功能。文档和示例提供了丰富的参考资料,可以进一步提高我们在PythonScript插件中的应用能力和编程技巧。记得在学习和使用PythonScript时,要及时保存你的工作,以免因为脚本执行错误或其他原因造成数据丢失。下面开发我们的第一个功能:自动保存文档.

自动保存文档

Notepad++默认不具备自动保存功能,当我们编辑了文档,每次都需要手动点击保存,或者使用Ctrl+S快捷键来保存文档,否者编辑器会出现显眼的红色图标,提示我们文档未保存.

           

 我们可以使用"AutoSave" 插件,它可以每隔一段时间自动保存你的文档。可以在菜单栏中选择 "插件" -> "插件管理",然后在 "可用" 标签下找到 "AutoSave" 插件进行安装和配置。

           

 但我们有了PythonScript,不必为了自动保存文件而专门下载一个插件,我们可以使用PythonScript来完成自动保存文件这一功能.操作步骤如下.

1.打开"插件"菜单,"Python Script"->"Scripts"->"startup",同时按住Ctrl按键,点击"startup"选项

           

可以看到编辑器打开了一个startup.py的python脚本

           

 2. 我们试着在脚本最后加上如下python代码,记得保存脚本

print("hello world")
           

           

 关闭notepad++,再重新打开,然后打开"插件"菜单,"Python Script"->"Show Console",可以发现控制台多了一个hello world打印,说明我们的python代码起作用了.

           

 3.点击"Configuration...",在弹出的窗口中,将Initialisation的选项由"LAZY"改为"ATSTARTUP",后续脚本随着Notepad++打开会自动运行

           


           

           

 4.接下来注释掉print("hello world"),加上下面这段脚本并保存,

  1. # print("hello world")                        
  2. import threading,os
  3. class AutoSave():
  4. def __init__(self):
  5. self.count = 0                        
  6. def task_run(self):
  7. self.count += 1                        
  8. print(self.count)
  9. path = notepad.getCurrentFilename()
  10. if os.path.exists(path):
  11. notepad.save()
  12. threading.Timer(1, self.task_run).start()
  13. threading.Timer(1, AutoSave().task_run).start()
           
           

这段代码实现自动保存的功能。它使用了 threading 模块来创建一个定时器,每隔 1 秒钟执行一次 task_run 方法。在 task_run 方法中,首先增加计数器 count 的值,并打印出来(如不需要,可以注释掉print语句)。然后,通过 notepad.getCurrentFilename() 获取当前文档的路径,并使用 os.path.exists() 判断该路径是否存在。如果存在,就调用 notepad.save() 来保存文档。最后,使用 threading.Timer(1, self.task_run).start() 来设置下一次自动保存的计时器。

           

 重启notepad++,并打开PythonScript控制台,可以看到控制台每隔一秒打印出一个数字,打印出1,2,3,4...,

           

在修改文档后文档图标由红变蓝,说明自动保存生效了.效果如下.

           

 

自此,我们初步入门了Python Script开发Python脚本,后续可以根据需要开发更多脚本和功能,混合C++编程,来配合辅助notepad++编辑器的日常使用.


           


           


           

文章知识点与官方知识档案匹配,可进一步学习相关知识
Python入门技能树桌面应用开发Tkinter323388 人正在系统学习中                



来自   https://blog.csdn.net/qq_39092568/article/details/131404330


基于Python/C++开发Notepad++的插件,PythonScript(二)


本节我们来编译一下PythonScript的C++源码,需要用到的工具有Git,Visual Studio 2022社区版和Python3.10.11,笔者已在电脑安装

  1. 安装 Git:首先需要安装 Git。你可以从 Git 官网(Git)下载适合你操作系统的版本,并按照官方指南进行安装。

  2. 安装 VS2022:你可以从 Visual Studio 官方网站(Visual Studio: IDE and Code Editor for Software Developers and Teams)下载适合你的操作系统版本的 Visual Studio 2022,并按照官方指南进行安装。

  3. 安装Python3.10.11: 前往 Python 官方网站(Welcome to Python.org),点击首页上的“Downloads”,选择windows,下载 https://www.python.org/ftp/python/3.10.11/python-3.10.11.exe并安装。

1.下载源码

PythonScript的C++源码在github上可以找到,仓库地址如下

GitHub - bruderstein/PythonScript: Python Script plugin for Notepad++

用浏览器打开,点击code,选择HTTPS连接,复制仓库地址

然后在电脑文件管理器地址栏输入cmd,打开控制台,输入git,可以看到git命令有效

 接下来切换当前路径到桌面,

cd /d E:\z\

然后下载PythonScript github源码,因为PythonScript依赖其他源码,所以需要带--recursive参数

git clone --recursive https://github.com/bruderstein/PythonScript

下载完成,提示如下

 可以看到桌面多了一个PythonScript文件夹,进入文件夹,用VS2022打开PythonScript.sln

2.编译源码

首先右键点击NppPlugin,选择build编译

 耐心等待一会,VS2022会在后台下载BoostPython,然后编译NppPlugin源码,编译完成后输出提示信息如下

 然后右键点击PythonScript,选择build编译,提示报错,找不到pyconfig.h,因为需要python3的源码

 我们从上一篇文章可以知道目前使用python dll的版本是3.10.11,这也是为何我们需要安装Python3.10.11

 找到我们安装Python3.10.11的路径,

 需要将include文件夹的python源码和libs文件夹的python库配置到PythonScript的项目中

 

 配置完成,再次编译PythonScript,编译通过,生成的PythonScript.dll即为我们需要的Notepad++插件,路径为"E:\z\PythonScript\bin\Debug\PythonScript.dll"

 然后找到PythonScript.cpp,在237行initialisePython函数末尾添加如下代码,这段代码通过GetLocalTime获取当前的日期时间并通过Python控制台打印.

  1. SYSTEMTIME time;
  2. ::GetLocalTime(&time);
  3. sprintf_s(result,"current time: %04d/%02d/%02d %02d:%02d:%02d\n", time.wYear, time.wMonth, time.wDay, time.wHour, time.wMinute, time.wSecond);
  4. g_console->message(result);

 然后重新编译PythonScript,之后将生成的PythonScript.dll(路径为"E:\z\PythonScript\bin\Debug\PythonScript.dll"),复制替换"C:\Program Files (x86)\Notepad++\plugins\PythonScript"的PythonScript.dll.最后重新打开Notepad++,可以看到Python控制台多打印出了一行current time: 2023/07/10 00:22:01,证明我们编译的PythonScript源码已经在Notepad++运行成功了

 编译PythonScript源码至此完成.读者如有疑问可在评论区提出哦




 

普通分类: