- 积分
- 37006
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2017-7-22
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 packard 于 2018-1-21 00:48 编辑
(18年1月编辑说明:把附件粘了上来,大家不用金钱下。)
原文以英文发表在 http://mailman.ucar.edu/pipermail/ncl-talk/2017-April/008731.html,但看上去没人鸟,所以在中文论坛也给中文观众朋友们分享一下。
ncl官网上有关于vim编辑器的提示(没读过的话先读一下,重点关注auto-completion功能,否则不知道我后面说啥):
https://www.ncl.ucar.edu/Applications/editor.shtml#vim
(国内镜像)http://met.sysu.edu.cn/GloCli/Team/ncl-mirror/Applications/editor.shtml#vim
里面有 ncl.dic,可以用作自动补全的字典。但是有两个问题
1. 字典有点旧,13年的,没有更新到6.4.0版本
2. 有些词语失踪了(是因为一行太长,后面的字没读进去)
可以执行以下短代码(比如每次ncl版本更新时)
(sed.ncl.dic.sh) http://bbs.06climate.com/forum.php?mod=attachment&aid=Njc0MDR8ZTNjZTc1NGVhZmI1ZDI5NzljNDZjYjUzOTgyYWU2MTl8MTcxMzk4MzY2Mw%3D%3D&request=yes&_f=.sh- #!/bin/sh
- # produce ncl3.dic from downloaded ncl3.vim
- wget http://www.ncl.ucar.edu/Applications/Files/ncl.dic
- mv -i ncl.dic ~/.vim/dictionary/
- wget http://www.ncl.ucar.edu/Applications/Files/ncl3.vim # updated 2 days after release of 6.4.0
- mv -i ncl3.vim ~/.vim/syntax/
- sed -n '/^syn keyword nclKeyword/p' ~/.vim/syntax/ncl3.vim > dic3b.ncl
- sed -n '/^syn keyword nclBoolean/p' ~/.vim/syntax/ncl3.vim >> dic3b.ncl
- sed -n '/nclKeyword/d;/nclBoolean/d;/^syn keyword/p' ~/.vim/syntax/ncl3.vim >> dic3b.ncl
- sed -i 's/syn keyword [^ ]* \+\b/\n/' dic3b.ncl
- t_update=`sed -n '/^" Updated/s/" Updated //p' ~/.vim/syntax/ncl3.vim`
- head -n 5 ~/.vim/dictionary/ncl.dic |sed "s/\(^.* Updated: \+\b\).*$/\1$t_update/;s/\(^.* Author: \+\b\).*$/\1Packard Chan\n" Based on previous version by Prince K Xavier, and ncl3.vim by Carl Schreck/" > ~/.vim/dictionary/ncl3.dic
- sed '1d' dic3b.ncl |fold -w 500 -s >> ~/.vim/dictionary/ncl3.dic
复制代码
注意这里我把新的dic文件命名为ncl3.dic。所以 ~/.vimrc 里面也要改成这个名字
(.vimrc) http://bbs.06climate.com/forum.php?mod=attachment&aid=Njc0MDV8MTM0YmUwMjFmZDMyNWMwYzNkMTZmN2Y1YzE2OGE2MDl8MTcxMzk4MzY2Mw%3D%3D&request=yes&_f=.vimrc- "Show autocomplete menus.
- set complete-=k complete+=k " Add dictionary search (as per dictionary option)
- set wildmode=list:full
- set wildmenu
- au BufRead,BufNewFile *.ncl set dictionary=~/.vim/dictionary/ncl3.dic
复制代码
附件只是给不能成功重复这些步骤的读者直接提供生成的结果。
(.vimrc) http://bbs.06climate.com/forum.php?mod=attachment&aid=Njc0MDV8MTM0YmUwMjFmZDMyNWMwYzNkMTZmN2Y1YzE2OGE2MDl8MTcxMzk4MzY2Mw%3D%3D&request=yes&_f=.vimrc
(sed.ncl.dic.sh) http://bbs.06climate.com/forum.php?mod=attachment&aid=Njc0MDR8ZTNjZTc1NGVhZmI1ZDI5NzljNDZjYjUzOTgyYWU2MTl8MTcxMzk4MzY2Mw%3D%3D&request=yes&_f=.sh
(ncl3.dic) http://bbs.06climate.com/forum.php?mod=attachment&aid=Njc0MDN8YTI4MDI4ZDc0YzUxYjk2ZjgxMjNkMDEwM2FmOGNiYTN8MTcxMzk4MzY2Mw%3D%3D&request=yes&_f=.dic
---------不关心细节的到此止步----------
(原来ncl.dic的问题)
我在vim7.2下,使用官网上旧的ncl.dic,输入xy,然后 Ctrl+n, 关键字xyCoordData会被截断成xyCo,然后xyCoordDataSpec到xyLineDashSegLenF这些关键词会失踪。
在vim下输 :help 'dictionary' 会提示我字典每行限制长度510 byte,因此导致以上问题。
(引用一下前人工作)
https://www.ncl.ucar.edu/Support/talk_archives/2011/1828.html 提到了我说的两个问题,但当时条件无法自动更新字典
http://bbs.06climate.com/forum.php?mod=viewthread&tid=2411 察觉到词语失踪的问题,并建议 :%s/ /\r\n/g 。但我还是觉得一行一个词有点丑,喜欢 fold -w 500 -s
http://bbs.06climate.com/forum.php?mod=viewthread&tid=49436 给了结果,不给方法。也不能随着版本更新而自动更新。
|
|