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://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解码或编码,否则中文会出现乱码。