立即注册 登录
气象家园 返回首页

水木清见的个人空间 http://bbs.06climate.com/?6970 [收藏] [复制] [分享] [RSS]

日志

使用Notepad++写NCL脚本

热度 3已有 3875 次阅读2013-12-20 00:38 |个人分类:NCL学习

1、替换脚本切换的快捷键

设置-->管理快捷键-->Next Tab改为用Ctrl+Tab控制,这样方便右手鼠标左手键盘的切换操作(相对于Ctrl + Page down/up而言)。

 

2、自动补全括号和双引号

设置-->首选项-->自动完成-->Auto Insert勾选( )和 

 

3、实现语法高亮

①语言-->Define your language-->新建-->命名;

②在样式中选择颜色、粗细、字体等格式;

③勾选“前缀模式”,使得以该组的关键字开头的词均按该组格式显示,比如res和res2都可以显示为同一格式;

④数字运算符中,“需要界定符”防止在常规字符中也高亮运算符,例如ind可能出现在含Wind的单词中,但因没有界定符(如空格),所以不会高亮为运算符;

⑤关键字、数字必须前后有界定才能高亮;

⑥可以导出为xml文件备份,或在导出的xml文件中修改完善后再导入(文件中的关键字等信息用空格间隔!);

 

目前存在问题:

A.带下划线的运算符后一半常无法正常显示

B.部分关键字需要重新调整补全

C.无法使用折叠

D.无法设定NCL语言为默认语言

E.新老版本的xml文件标签不一致(测试的是6.5.2和6.2.2,本xml文件适用于6.5.2)

 

4、实现函数自动补全和提示函数参数

①在\Notepad++\plugins\APIs目录下新建与2中自定义语言的名称相同的XML文件

②复制其它函数文件,去掉中间KeyWord标签的内容,修改AutoComplete language的名称,使之与自定义语言的名称相同

③environment标签下,修改startFunc值为=(从输入等号开始提示函数参数),stopFunc值为&lt;br&gt;(换行<br>的转义字符,提示内容在回车后不显示,这里用的是中文分号)

④将所有需要自动补全的函数和resource名称复制到一个新建的文本文件中,用Notepad++的插件TextFX排序:TextFX Tools --> +Sort ascending -->Sort Lines case insensitive(at column)(升序,对大小写不敏感)

 

⑤对每个名称,加上KeyWord标签(注意大小写!)

⑥提示函数参数的写法如下例:

<KeyWord name="vcGlyphStyle" func="yes" >

<Overload retVal="">

<Param name ="LineArrow" />

<Param name ="FillArrow" />

<Param name ="WindBarb" />

<Param name ="CurlyVector" />

</Overload>

</keyword>

 

NCL官网上没有找到成列的resources,一种简便的方法是在Support的Editor Enhancements下找Kate的ncl.xml文档,替换掉xml标签。

 

目前存在问题:

A.提示函数参数极不完善,需要慢慢补充

B.测试量不够

语法高亮、函数自动补全和提示函数参数的文件,NCL xml files for Notepad++6.5.2 (1.0版):http://vdisk.weibo.com/s/zdM2AcPbxsd9R

发表评论 评论 (4 个评论)

回复 mofangbao 2013-12-20 21:41
要上传才行的。。。
回复 水木清见 2013-12-20 22:22
mofangbao: 要上传才行的。。。
   昨天在搜狗的兼容模式下是可以看的咧..不过现在已经改好了~~
回复 平流层的萝卜 2013-12-22 11:06
很给力,mark一下
回复 2.7 2014-11-15 13:41
最近也在参考楼主的文章弄这个来着,发现ncl的editor enhancements 页面有notepad++的高亮支持了,http://www.ncl.ucar.edu/Applications/editor.shtml#Notepad++,供参考~~

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

返回顶部