標籤:python notepad plugins
要使用Python擴充NotePad++,首先需要為NotePad++安裝Python Script外掛程式,NotePad++外掛程式的安裝方法可以參考這裡。
安裝了Python Script外掛程式後,在菜單的Plugins下就會看到Python Script菜單了。
Python Script介紹
點擊Plugins->Python Script->New Script菜單,開啟的目錄就是使用者的Python指令碼存放的目錄。將Python指令碼放到該目錄下後,在Python Script下的Scripts目錄下將出現與Python指令碼同名的菜單,點擊該菜單即可執行對應的Python指令碼。
例如,我在該目錄下放置了兩個指令碼:
則在Scripts目錄下為:
點擊Show Console可以開啟Python的控制台,裡面會顯示使用的Python的版本號碼,Python指令碼可以輸出資訊到控制台中,後面將詳細介紹。
Context-help是Python Script的協助文檔,包括了Api的介紹,後面將經常用到。
Npp模組介紹
Npp模組包含了notepad、editor和console對象,這些對象用於操作Notepad++,notepad對象是Notepad類的執行個體,editor是Editor類的執行個體,console對象是Console類的執行個體。
在startup.py指令碼中已經引入了Npp模組:
from Npp import *
由於startup指令碼和你的指令碼在同一個命名空間下,在你的Python指令碼中可以直接使用它們,在後面的例子中會具體看到。
下面對Npp中的對象做一個簡單介紹,更詳細的介面參考Context-help。
console對象
Console可以開啟控制台,console對象就是用於操作該控制台視窗,你能顯示或者隱藏控制台、清除控制台內的內容、輸出資訊到控制台。console還支援運行一個命令並將命令結果輸出到控制台,這樣,你能用Python Script調用你的編譯器,或者運行任何命令列工具。
下面是一個簡單的例子,顯示控制台,並列印資訊:
console.show()console.write("Hello,world!")
將上面的指令碼儲存到指定目錄,並在scprits菜單下執行該指令碼,就會自動開啟控制台,並在控制台中輸入“Hello,world!”,即下面的效果:
notepad對象
notepad對象就代表了Notepad++自身,可以使用notepad對象開啟和儲存檔案、選擇不同的tab、轉換格式、運行外掛程式命令等。
下面是一個例子,如果你編輯的是以“.log”結尾的檔案,在該檔案儲存時,將自動在檔案結尾新增時間戳記:
import datetimedef addSaveStamp(args):if notepad.getCurrentFilename()[-4:] == ‘.log‘:editor.appendText("File saved on %s\r\n" % datetime.date.today())notepad.callback(addSaveStamp, [NOTIFICATION.FILEBEFORESAVE])
notepad的callback方法就是註冊一個時間的回調監聽,事件類型在枚舉NOTIFICATION中定義。
如果你想要取消一個註冊的監聽,則通過下面的方法:
#取消所有的註冊監聽notepad.clearCallbacks()#取消針對某些事件的註冊監聽notepad.clearCallbacks([NOTIFICATION.FILESAVING, NOTIFICATION.FILESAVED])#取消指定函數的監聽notepad.clearCallbacks(addSaveStamp)#取消指定函數對某些事件的監聽notepad.clearCallbacks(addSaveStamp, [NOTIFICATION.FILESAVED])
editor對象
editor對象對應Notepad++的文本地區,提供了一些方法協助操作資料,其中很多方法直接使用Python也可以實現,editor對象提供這些方法只是為了簡化操作。
下面是一個簡單的例子,找到當前開啟的檔案中以‘#‘開頭的行,刪除這些行,並儲存檔案:
for i in range(editor.getLineCount() - 1, -1, -1) :line = editor.getLine(i)if line.startswith(‘#‘):editor.gotoLine(i)editor.lineDelete()notepad.save()
指令碼從最後一行開始向前遍曆,找到以‘#‘開頭的行就將其刪除,最後儲存檔案。這段指令碼的問題是如果檔案沒有儲存過,則會彈出一個檔案儲存對話方塊。
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
使用Python擴充NotePad++