使用 NppExec 和 Ruby 為 Notepad++ 編寫新的巨集功能腳本

使用 NppExec 和 Ruby 為 Notepad++ 編寫新的巨集功能腳本

我在美國和歐洲工作,在查看日誌或註釋時,月/日(美國)和日/月(歐盟)格式之間的切換會導致歧義(例如,2012 年7 月8 日是7 月8 日還是8 月7 日?

我想更改 Notepad++ 時間戳功能以使用國際格式

YYYY-MM-DD--DAY--HH:MM

2012-08-19--Sun--20:30

請注意,拼寫一周中的哪一天將是一個很好的額外功能,並且可以避免在日曆中查找今天是哪一天。

目前NPP不具備這種彈性。 有沒有辦法使用某種巨集或腳本(也許使用 Ruby)來做到這一點?

答案1

分享如何使用 NppExec 外掛程式和 Ruby 來執行此操作。

解決方案:

方法:取得外部腳本語言(在本例中為 Ruby)來傳回格式化的時間戳,並讓 NppExec 接收它並將其插入到 Notepad++ 中顯示的目前檔案中的遊標位置。

首先配置控制台:

    npe_console v+   // set console to receive output in $(OUTPUT) variable
    npe_console d+   // set current working directory to same as current file

然後在 NppExec > 執行選單命令中,輸入以下程式碼片段:

    // Diary snippet (Generates timestamp YYYY-MM-DD--DAY--HH:MM for NPP++)
    npp_console disable     // turn off output displaying to console
    // this ruby one-liner does the work
    ruby -r Date -e "dt=DateTime.now; dname = Date::ABBR_DAYNAMES[dt.wday]; puts dt.strftime(\"%Y-%m-%d--#{dname}--%H:%M\");"  
    sel_settext $(OUTPUT)   // put result at cursor in current file
    npp_console enable      // restore output displaying to console
    npp_console 0           // hide the console window

這使用 Ruby 引擎產生時間戳並將其插入 Notepad++ 中目前檔案中遊標所在的位置。結果(大約有 500 毫秒的延遲)是時間戳:

    2012-08-20--Mon--20:16

筆記:雖然這確實可以完成工作,但如果有人有一個不依賴任何外部東西(在本例中為 Ruby)的解決方案,那就更好了。


編輯:“生產”解決方案......(穩健性和便利性)

透過執行以下步驟,可以將上述解決方案投入生產...

一個障礙是關閉 Notepad++ 會遺失控制台配置,因此必須在每次重新啟動時進行設定。

因此,我們將控制台配置設定為每次 Notepad++ 啟動時自動執行的腳本。

然後將鍵盤快捷鍵(熱鍵)關聯到日記腳本以方便使用。

步驟1: 將日記程式碼輸入 NppExec Excute... 對話方塊:Plugins > NppExec > Execute...,為其命名(稍後您將使用該名稱)

步驟 1 - 輸入日記代碼

第2步: 類似地輸入setup_console配置代碼:

第 2 步 - 輸入控制台設定碼

步驟 3、4、5: 在中Plugins > NppExec > Advanced Options,設定setup_console在啟動時運行(3),為日記程式碼建立一個Menu項目(4),並將Menu項目放入選單中Macro(5):

步驟 3、4、5 - 完成所有設置

第6步:將鍵盤熱鍵(快捷鍵)設定為日記腳本:Settings > Shortcut Mapper... > Plugins,然後向下捲動直到找到您使用的日記腳本名稱...

第 6 步 - 鍵盤快速鍵

結果:查看Macros選單命令下,您將看到帶有鍵盤快捷鍵的新時間戳命令。

結果-完成

完畢!

相關內容