1. 程式人生 > >自定義notepad++ --新增外掛SourceCookifier

自定義notepad++ --新增外掛SourceCookifier

對coder來說,notepad ++ 是一個很不錯的文字編輯器。平時用來看看程式碼、xml檔案,都比系統自帶的記事本舒服得多。不過,對於像我這種每天用notepad ++寫程式碼的人,一個原裝的notepad ++遠遠不能滿足。下面對notepad++做一些調整。

一、更改主題與顏色

npp的主題與顏色設定在setting/style configurator下。

首先,先選擇一種主題。主題是一般包含了各種語言的程式碼高亮方案,當然也包含全域性設定。全域性設定也就無法識別語言時的方案(如開啟一txt文字時)。notepad ++在改變主題時是即時預覽的。所以當你改變主題時當前文字沒有改變高亮,檢查一下當前檔案是否識別正確。例如當前文字被識別為java語言,但你改變的是C++的高亮,則當前文字反映不出來的。

下面以C語言為例,修改程式碼高亮

在language裡選中C語言後,在Style裡可以看到C語言可自定義的項(好像不同主題、不同語言的可定義項都不一樣)。下面列出各個可自定義項:

PREPROCESSOR    預處理

DEFAULT              預設(即除了其他可定義專案以外的程式碼)

INSTRUCTION WORD    結構關鍵字if else for while switch之類

TYPE WORD    型別關鍵字,int float struct之類

NUMBER    數字,也就是常數

STRING    字串,通常在""之間的字元被認為是字串

CHARACTER    字元,在''之間的單個字元被認為是字元

OPERATOR    運算元,如+ - * / =

COMMENT     註釋,通常在//之後

COMMENT LINE    註釋行,以/*開頭以*/結束

COMMENT DOC    文件註釋,以/**開頭,以*/結束

有部分我也不知道是什麼,抱歉。

知道了這些型別,我們選擇自己要調整的型別,在右邊選擇顏色、字型、大小、是否加粗、傾斜、是否加下劃線即OK。

有部分是可以新增自定義資料的。如TYPE WORD和INSTRUCTION WORD,是否要新增自定義的關鍵字型別

注意:搜尋結果是在language的最底下,而選中文字後的高亮則在global style裡

二、新增自己所需要的外掛。

在plugins/plugin manager裡可以管理外掛。

我常用的外掛:

light explorer    輕量的資源管理器,有收藏夾功能,stander menu可開啟系統的右鍵。比explorer外掛好用

nppFTP    FTP外掛,主要是因為伺服器不在身邊,經常需要上傳、下載

sourcecookefier    主要是函式列表、定義跳轉,比npp自帶的function list好用。函式列表能自動重新整理、排列。

下面介紹一下sourcecookefier的跳轉,也就是go go define功能。

先把source cookefier的模式改為cookie session mode(這三個模式的介紹在右鍵/幫助下有介紹)

然後把工程目錄拖到sorucecookifier裡,它會自動列出所有檔案型別,選擇檢測的檔案型別(C語言一般為.c和.h檔案)

等待生成快取檔案,之後在程式碼裡按住ctrl鍵+滑鼠左擊就會自動跳轉到函式或巨集定義的宣告處理。這個功能主要是用CTAGS實現的,不能區分同名函式(會有選擇)。另外,請記得儲存快取檔案。下次開啟npp時也要再次開啟。每次修改檔案後,也要記得儲存。

三、修改右鍵選單

npp修改右鍵的入口在setting/edit popup contextMenu,然後開啟一個檔案讓我們編輯。其實我們也可以自己找到那個contextMenu.xml檔案自己修改。這個檔案裡有比較詳細的註釋。

npp的右鍵選單分三種類型,一種是以名字來區分選單,一種是外掛選單,另一種是以ID來區分的選單。

1、以名字來區分的選單就是你把Npp的語言改為英文,在npp選單裡的功能都可以新增到右鍵。如

        <Item MenuEntryName="Edit" MenuItemName="Cut"/>
        <Item MenuEntryName="Edit" MenuItemName="Copy"/>
        <Item MenuEntryName="Edit" MenuItemName="Paste"/>
        <Item MenuEntryName="Edit" MenuItemName="Delete"/>
        <Item MenuEntryName="Edit" MenuItemName="Select all"/>
        <Item MenuEntryName="Edit" MenuItemName="Begin/End Select"/>

Item MenuEntryName="Edit" MenuItemName="Cut"則表示其功能就是編輯裡的剪下功能。當然,你也可以新增一個Item MenuEntryName="Search" MenuItemName="Find In Files...",即搜尋下的在檔案中查詢。

2、外掛選單就是你裝的外掛的功能。

        <Item FolderName="Plugin commands" PluginEntryName="MIME Tools" PluginCommandItemName="Base64 Encode" />
        <Item FolderName="Plugin commands" PluginEntryName="MIME Tools" PluginCommandItemName="Base64 Decode" />

把PluginEnteerName改成自己的外掛名,PluginCommandItemName改成自己的功能就OK.這些都可以在選單欄中plugin裡找到。

3、最後一種則是以ID來區分的,

        <Item FolderName="Remove style" id="43023"/>
        <Item FolderName="Remove style" id="43025"/>
        <Item FolderName="Remove style" id="43027"/>
        <Item FolderName="Remove style" id="43029"/>
        <Item FolderName="Remove style" id="43031"/>
        <Item FolderName="Remove style" id="43032"/>

這裡頭疼的是這些ID表示什麼。它在安裝目錄下的\localization\english.xml裡。

View Code

其他的,如分隔線、資料夾(Folder)怎麼新增,看註釋就知道了。

四、更高階的自定義

本人寫的語言是一種非主流的指令碼LPC。沒有IDE,沒有語法高亮。幸好LPC與C十分類似,使用C的語法高亮就可以。一開始我考慮Npp的自定義語法高亮,但沒有成功。好像不管我怎麼設定,其的型別檢測如巨集定義、預處理、字串這些不如它內建語言的精準,也有可能是我沒設定好。下面記錄一下相關檔案:

主題檔案在npp/themes裡

<WordsStyle name="PREPROCESSOR" styleID="9" fgColor="FFAA00" bgColor="2A211C" fontName="" fontStyle="0" fontSize="10" />

name="PREPROCESSOR" styleID="9"是內建型別,用於正則表示式判斷是否關鍵字、預處理以及如何高亮,不能自定義,有FUCNTION型別,但我設定了沒效果

<LexerType name="searchResult" desc="Search result" ext="">是修改搜尋結果,

在型別裡如TYPE WORD能新增自定義是因為有insert1欄位或type1欄位,這兩個欄位在npp/stylers.xml裡定義

Notepad++的自動補全的列表檔案在\plugins\APIs資料夾下,xml檔案,需要在設定裡把自動補全開啟