If you are using vi/vim/gvim for scripting with NCL, you can sometimes hardly remember NCL commands or you are just too lazy to type out "gsFillWTF..." all the time, this might be something for you.
- Download the two .txt files "NCL_functions.txt" and "NCL_resources.txt" from the ".vim" folder in this repository into your ".vim" folder
- Add the lines of "add_ncl_complete_to_your_vimrc" to your "~/.vimrc" to include the complete function
cat add_ncl_complete_to_your_vimrc >> ~/.vimrc
If you don't have a .vimrc file yet, you may also just my working example "example.vimrc" and rename it in your $HOME
Optional:
- Variable completion: Set a file path and 'ENABLE' vars_completion in your ".vimrc"
- requires CDO - if you have a neat idea how to implement it with NCL commands please approach me - For now, the first 12 (random number) words of NCL Resources are displayed in the pop-up window before the last two words as "Default information" separated by "...". If you usually work on a wide vi window, you can modify this number of strings.
- If you fancy other auto-completion setting, play with the line
set complete=longest,menuone
The current setting completes up to the last common string and then shows a menu. Other options are listed in the vim help or http://vimdoc.sourceforge.net/htmldoc/options.html#'completeopt'
Syntax highlighting:
- coming soon dynamical hopefully
for now data from Version 6.4.0 - https://www.ncl.ucar.edu
Snippets:
- copy "ncl.snippets" into "/.vim/bundle/vim-snippets/snippets" after you installed the vim plugin snipmate https://github.com/garbas/vim-snipmate
There are also a few snippets for loops and some combined graphic commands in the end of the file, just check it out. Type the snippet (any command from "ncl.snippets", basically all commands that require brackets) and press <Tab>
Start typing your desired cdo command and hit <Ctrl-X><Ctrl-U>
res@gsF<Ctrl-X><Ctrl-U>
addf<Ctrl-X><Ctrl-U>
Get the following autocompletion options
gsFillBackgroundColor NCL Res: This resource of type ... Default: Transparent
gsFillColor NCL Res: This resource of type ... Default: Foreground
or
addfile NCL Func.:
addfiles NCL Func.:
or
<ncl_command> <type>: <description> ... Default: <value>
...
Hit <Ctrl-N> go get the first shown match
res@gsFillBackgroundColor
or
addfile
Hit another <Ctrl-N> to choose the next match or move down with arrow keys and hit for your choice
- MIT
- static ncl data
Aaron Spring
Bundesstraße 53
ZMAW Room 229
[email protected]
Looking forward to receiving your questions, comments or wishes
- v0.1:
uses all NCL resources and NCL functions from website as of 2016/09/18
also completes variables gathered by 'cdo vardes files' if cdo installed and vars_completion enabled
requires '*.ncl' files
ncl_completion can be enabled or disabled in .vimrc - v0.2: static snippets and static syntax highlighting
- v0.3: updated towards NCL 6.4.0
- syntax highlighting
- getting functions and resources dynamically, see example uses 'cdo --operators' https://github.com/aaronspring/cdo_lazy_vim
- anything else needed?
- Prince K Xavier, the dude who set up auto-completion for NCL and made me think to do this for CDO first and now I'm back to NCL
- same stuff for CDO: https://github.com/aaronspring/cdo_lazy_vim