自定義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檔案,需要在設定裡把自動補全開啟