首页 > 其他分享 >Notepad++ 使用 及 插件开发 记录

Notepad++ 使用 及 插件开发 记录

时间:2024-09-13 23:15:31浏览次数:13  
标签:插件 lib PythonScript ++ Notepad plugins

Notepad++ 使用 及 插件开发 记录

Notepad++ 是一款免费的开源的跨平台的文本编辑器。支持语法高亮显示、语法折叠功能、宏、插件。类似软件有EmEditor、EditPad、Notepad2及Windows自带Notepad等。Notepad++和EmEditor功能更强。EmEditor打开文件更快,但是不开源、不免费、也没有Delphi插件开发模板。

1、安装使用

下载地址:https://github.com/notepad-plus-plus/notepad-plus-plus/releases

下载portable版本,解压缩后就可以使用。不喜欢关于对话框内容的,可以下载修改版。

修改版地址:https://gitee.com/mediv0001/NotepadPro/tree/master/NotepadPro%E5%8F%91%E8%A1%8C%E7%89%88

下载NotepadPro.exe,放到Notepad++目录中,启动NotepadPro.exe就可以使用。注意32位或64位版本要和Notepad++对应。

 

2、插件使用

插件复制到Notepad++\plugins\目录中就可以使用,注意插件要放在一个文件夹中,文件夹名称与插件名称相同,例如:Notepad++\plugins\Explorer\Explorer.dll。

运行notepad++.exe,插件\插件管理,可以下载插件。

 

PythonScript插件注意事项:

PythonScript插件可以让用户在Notepad++ 中运行Python脚本,以Python脚本设置Notepad++界面、编辑打开的文档。

从 插件\管理插件 功能安装的PythonScript插件是 Python2.7版本的插件。Python2.7对中文支持不好,如果 Notepad++ 安装在含有中文的目录中,可能会导致脚本无法运行。

Python3使用Unicode,可以更好的处理中文,可以运行中文目录中的脚本。

Python3版本的 PythonScript 插件下载地址:https://mygit.osfipin.com/repository/795778

用PythonScript_Full_3.0.18.0_PluginAdmin.zip中的文件替代 Notepad++\plugins\PythonScript\ 目录中的文件即可。

如果要给PythonScript插件中的Python环境安装第三方库,需要将对应版本的库文件复制到其中。例如安装xpinyin库,先在python_3.0.18中安装xpinyin库,然后复制

envs\python_3.0.18\Lib\site-packages\xpinyin\

Notepad++\plugins\PythonScript\lib\site-packages\xpinyin\

如果第三方库含有动态链接库,需要同时复制到其中。例如安装tkinter库,先下载克隆包:https://github.com/bruderstein/PythonScript

复制其中的三个文件夹和三个文件

PythonLib\tcl\tcl8.6\

PythonLib\tcl\tk8.6\

PythonLib\tcl\tkinter\

PythonLib\tcl_dll\_tkinter.pyd

PythonLib\tcl_dll\tcl86t.dll

PythonLib\tcl_dll\tk86t.dll

到Notepad++\plugins\PythonScript\lib\中:

Notepad++\plugins\PythonScript\lib\tcl8.6\

Notepad++\plugins\PythonScript\lib\tk8.6\

Notepad++\plugins\PythonScript\lib\tkinter\

Notepad++\plugins\PythonScript\lib\tcl86t.dll

Notepad++\plugins\PythonScript\lib\tk86t.dll

Notepad++\plugins\PythonScript\lib\_tkinter.pyd

 

3、插件开发

说明文档地址:

https://npp-user-manual.org/docs/plugins/#plugins-admin

其中有两个Delphi的模板:

https://sourceforge.net/projects/npp-plugins/files/DelphiPluginTemplate/DelphiPluginTemplate%202.0%20UNICODE/DelphiPluginTemplate2.zip/download

https://bitbucket.org/rdipardo/delphiplugintemplate/get/default.zip

 Github上有一些用Pascal语言写的Notepad++插件项目也可以参考。

  

DelphiPluginTemplate2.zip 中Helloworld工程的基本结构:

 nppplugin in 'lib\nppplugin.pas', //插件接口

scisupport in 'lib\SciSupport.pas', //高亮编辑器接口

NppForms in 'lib\NppForms.pas' {NppForm}, //基类窗体,对话框可以从此继承

NppDockingForms in 'lib\NppDockingForms.pas' {NppDockingForm}, //基类窗体,继承自TNppForm,可停靠窗体可以从此继承

helloworldplugin in 'helloworldplugin.pas', //自定义插件对象,继承自TNppPlugin

AboutForms in 'AboutForms.pas' {AboutForm},//自定义对话框,继承自TNppForm

helloworlddockingforms in 'helloworlddockingforms.pas' {HelloWorldDockingForm}; //自定义可停靠窗体,继承自TNppDockingForm

lib文件夹中的单元是插件共用的,后面三个是Helloworld插件的。

 

注意事项一:

nppplugin.pas单元中的TShortcutKey声明的Bug,有些源码将Key声明为Char,用Delphi2007以上版本的编译器编译会导致菜单项快捷键无法正常显示及触发,可以改为UChar,实际是Byte。Delphi7中Char相当于AnsiChar或Byte,Xe中Char相当于WideChar。

  TShortcutKey = record

    IsCtrl: Boolean;

    IsAlt: Boolean;

    IsShift: Boolean;

//    Key: Char;

    Key: UChar;//uu 参考nppRegEx

  end;

 

注意事项二:

获取文字或插入文字需要utf8解码或编码,否则中文会出现乱码。

 

标签:插件,lib,PythonScript,++,Notepad,plugins
From: https://www.cnblogs.com/unjiang/p/18413065

相关文章

  • 78_JAVA_new的使用在JAVA与C++的异同之处
    Java和C++都使用new关键字来创建对象和分配内存,但它们在实现和使用上有一些重要的异同之处。以下是这两种语言中new使用的主要异同点:1. 内存管理Java:自动内存管理:Java使用垃圾回收(GarbageCollection,GC)机制来自动管理内存。对象的生命周期由垃圾回收器自动管理,......
  • C++ 虚函数表解析
    一、何为多态多态(polymorphism)指为不同数据类型的实体提供统一的接口,或使用单一的符号来表示多个不同的类型。比如我们熟悉的函数重载、模板技术,都属于多态。无论是模板还是函数重载,都是静态绑定的。也就是说,究竟该调用哪个重载函数或者说调用哪个模板类的实例化,在编译期就是确认......
  • 尤雨溪推荐的拖拽插件,支持Vue2/Vue3 VueDraggablePlus
    大家好,我是「前端实验室」爱分享的了不起~今天在网上看到尤雨溪推荐的这款拖拽组件,试了一下非常不错,这里推荐给大家。说到拖拽工具库,非大名鼎鼎的的Sortablejs莫属。它是前端领域比较知名的,且功能强大的工具。但我们直接使用Sortablejs的情况很少,一般都是使用基于它的......
  • C++ 继承同名Impl简单测试构造顺序析构顺序
    /*****classBase*****/classBase{public:Base();virtual~Base();protected:structImpl;Impl*m_Impl;};structBase::Impl{intnum{100};};Base::Base(){m_Impl=newImpl;std::cout<<"Base构造!"......
  • Hash Table 哈希表工作原理介绍及C/C++/Python实现
    HashTable哈希表工作原理介绍及C/C++/Python实现哈希表(HashTable),也称为散列表,是一种通过哈希函数将键(Key)映射到表中一个位置以便快速访问记录的数据结构。它提供了非常高效的数据检索、插入和删除操作。哈希表的基本原理是使用一个哈希函数将输入(通常是字符串)转换为一个......
  • C++入门基础知识65——【关于C++ 数据封装】
    成长路上不孤单......
  • C++入门基础知识66——【关于C++ 接口(抽象类)】
    成长路上不孤单......
  • 人工智能 | ChatGPT 插件开发
    学习目标掌握ChatGPTApi的基本使用。L1.ChatGPT应用L2.GPT与代码分析结合L3.AutoGPT与ChatGPT 【当前阶段】L4.专属领域大语言模型应用L5.打造企业私有版大语言模型目录简介与官方文档环境准备示例简介学习价值:大部分市面上的人工智能应用都是基于API进行封装与改造。为......
  • 工具箱、多种灵活的代码采纳方式等6项功能升级,CodeGeeX v1.0.4版本上线Visual Studio
    CodeGeeXv1.0.4版本上线VisualStudio插件市场,这个版本为VisualStudio平台上的开发者带来了多项新功能和性能优化,以便于更好的利用智能辅助编程助手CodeGeeX插件,提升编程体验。新功能亮点速览:1.侧边栏工具箱功能v1.0.4版本中,CodeGeeX新增了侧边栏工具箱功能。在工具箱中,可以根据......
  • 《C++中动态数组的实现与探索》
    在C++编程中,动态数组是一种非常重要的数据结构,它能够根据实际需求在运行时动态地调整大小,为程序员提供了极大的灵活性。本文将深入探讨如何在C++中实现动态数组,包括使用内置数据结构和自定义实现的方法,同时分析其性能特点和应用场景。一、引言在编程过程中,我们经常会遇......