您的位置:首页 > 其它

自定义notepad++ --添加插件SourceCookifier

2018-02-23 13:54 429 查看
原文地址:https://www.cnblogs.com/coding-my-life/p/3676665.html
对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文件,需要在设置里把自动补全打开
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: