Octave syntax and indentation support for Vim:
- Syntax highlighting is taken from Rik's script
- Identation is ported accordingly using upstream Lua's as a base.
From the syntax file description:
- Highlights entire Octave grammar (
endwhile
,endfor
, etc.), not just Matlab keywords - Updated to highlight all core Octave functions as of version 4.2.0
- Highlights user functions and anonymous functions [
@(...)
] from within the.m
file being edited - Use-dependent highlighting of Octave system variables
- When querying system variables, keyword is highlighted as a constant.
For example,
var = true
, highlightstrue
as a constant. - When setting variables or otherwise invoking keyword as a function,
keyword is highlighted as a function. For example,
var = true (2,4)
, highlightstrue
as a function.
- When querying system variables, keyword is highlighted as a constant.
For example,
- Support for multi-line strings with line continuation characters
as well as escaped quotes (
\"
or\'
) within string. - Support for multi-line block comments
- Support for highlighting numbers that use hex (0x) or binary (0b) syntax
- Error highlighting for bad number syntax, bad structure variable names, bad block comments, bad line continuations.
- Optional support for highlighting operators (
+
,-
,*
, etc.), user variables, or tabs, which can be achieved by uncommenting appropriate tagged lines in the syntax file.
The indentation file provides basic automatic indentation of blocks.
- Install Pathogen, Vundle, NeoBundle, or Plug package manager for Vim.
- Use this repository as submodule or package.
For example, when using Plug:
Plug 'https://github.com/gnu-octave/vim-octave.git', {'for': 'octave'}
You can also use Vim 8 built-in package manager:
mkdir -p ~/.vim/pack/default/start
git clone https://github.com/gnu-octave/vim-octave.git ~/.vim/pack/default/start/vim-octave
Note that this plugin contributes to vim-polyglot language pack.
The plugin should work out of the box. You can enable omni completion
by setting omnifunc=syntaxcomplete#Complete
.