Notepad++ 使用 及 插件開發(fā) 記錄

Notepad++ 是一款免費(fèi)的開源的跨平臺的文本編輯器。支持語法高亮顯示、語法折疊功能、宏、插件。類似軟件有EmEditor、EditPad、Notepad2及Windows自帶Notepad等。Notepad++和EmEditor功能更強(qiáng)。EmEditor打開文件更快,但是不開源、不免費(fèi)、也沒有Delphi插件開發(fā)模板。

1、安裝使用

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

下載portable版本,解壓縮后就可以使用。不喜歡關(guān)于對話框內(nèi)容的,可以下載修改版。

修改版地址: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++對應(yīng)。

 

2、插件使用

插件復(fù)制到Notepad++\plugins\目錄中就可以使用,注意插件要放在一個(gè)文件夾中,文件夾名稱與插件名稱相同,例如:Notepad++\plugins\Explorer\Explorer.dll。

運(yùn)行notepad++.exe,插件\插件管理,可以下載插件。

 

PythonScript插件注意事項(xiàng):

PythonScript插件可以讓用戶在Notepad++ 中運(yùn)行Python腳本,以Python腳本設(shè)置Notepad++界面、編輯打開的文檔。

從 插件\管理插件 功能安裝的PythonScript插件是 Python2.7版本的插件。Python2.7對中文支持不好,如果 Notepad++ 安裝在含有中文的目錄中,可能會導(dǎo)致腳本無法運(yùn)行。

Python3使用Unicode,可以更好的處理中文,可以運(yùn)行中文目錄中的腳本。

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

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

如果要給PythonScript插件中的Python環(huán)境安裝第三方庫,需要將對應(yīng)版本的庫文件復(fù)制到其中。例如安裝xpinyin庫,先在python_3.0.18中安裝xpinyin庫,然后復(fù)制

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

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

如果第三方庫含有動態(tài)鏈接庫,需要同時(shí)復(fù)制到其中。例如安裝tkinter庫,先下載克隆包:https://github.com/bruderstein/PythonScript

復(fù)制其中的三個(gè)文件夾和三個(gè)文件

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、插件開發(fā)

說明文檔地址:

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

其中有兩個(gè)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++插件項(xiàng)目也可以參考。

  

DelphiPluginTemplate2.zip 中Helloworld工程的基本結(jié)構(gòu):

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

scisupport in 'lib\SciSupport.pas', //高亮編輯器接口

NppForms in 'lib\NppForms.pas' {NppForm}, //基類窗體,對話框可以從此繼承

NppDockingForms in 'lib\NppDockingForms.pas' {NppDockingForm}, //基類窗體,繼承自TNppForm,可??看绑w可以從此繼承

helloworldplugin in 'helloworldplugin.pas', //自定義插件對象,繼承自TNppPlugin

AboutForms in 'AboutForms.pas' {AboutForm},//自定義對話框,繼承自TNppForm

helloworlddockingforms in 'helloworlddockingforms.pas' {HelloWorldDockingForm}; //自定義可??看绑w,繼承自TNppDockingForm

lib文件夾中的單元是插件共用的,后面三個(gè)是Helloworld插件的。

 

注意事項(xiàng)一:

nppplugin.pas單元中的TShortcutKey聲明的Bug,有些源碼將Key聲明為Char,用Delphi2007以上版本的編譯器編譯會導(dǎo)致菜單項(xiàng)快捷鍵無法正常顯示及觸發(fā),可以改為UChar,實(shí)際是Byte。Delphi7中Char相當(dāng)于AnsiChar或Byte,Xe中Char相當(dāng)于WideChar。

  TShortcutKey = record

    IsCtrl: Boolean;

    IsAlt: Boolean;

    IsShift: Boolean;

//    Key: Char;

    Key: UChar;//uu 參考nppRegEx

  end;

 

注意事項(xiàng)二:

獲取文字或插入文字需要utf8解碼或編碼,否則中文會出現(xiàn)亂碼。