Vim plugin that provides syntax highlighting, indentation, error matching, Ctags, tagbar scopes and compiler options for BlitzMax.
Method | Instructions |
---|---|
Vim 8 package | git clone https://github.com/Hezkore/vim-blitzmax ~/.vim/pack/hezkore/start/bmx |
vim-plug | Plug 'Hezkore/vim-blitzmax', { 'for': 'blitzmax' } |
Manual | Copy files to ~/.vim/ on Unix or %USERPROFILE%\vimfiles\ on Windows |
Open or create the vimrc
file in ~/.vim/
on Unix or %USERPROFILE%\vimfiles\
on Windows and add
let g:blitzmax_path=<your blitzmax path>
Install Vim and run the vimtutor.
Alternatively you can read the online documentations at vimhelp.org.
Opening a .bmx
file will set the Vim compiler to bmk
You can manually set it if needed with the command :compiler bmk
Use the command :make <blitzmax bmk operation> [blitzmax bmk options]
to build your executable.
For example :make makeapp -x %
to compile the current file (%
) and execute it (-x
).
Or something more advanced :make makeapp -d -t console -w -a -x -o %<.debug %
This will create a debug console application.
Add nnoremap <F5> :make makeapp -d -t console -w -a -x -o %<.debug %<CR>
to your vimrc
for a quick way of compiling a debug console application by pressing F5.
You can read more about the BlitzMax bmk compile operations and options here, and about Vim's make
command here.
Use the command :clist
:cl
or :copen
:cw
to view any compiling warnings or errors.
:cnext
:cn
and :cprev
:cp
will move to the next and previous problem respectively.
More about Vim's quickfix view can be found here.
The internal BlitzMax debugger is used for live-debugging.
Key | Action |
---|---|
T | Stack trace |
R | Run from here |
S | Step through source code |
E | Step into function call |
L | Leave function or local block |
Q | Quit |
H | Help text |
Dxxxxxxxx | Dump object at hex address xxxxxxxx |
The tagbar plugin is supported right out of the box.
You can generate your own ctags with the command :MakeBmxCtags
This will generate ctags for the file in the current buffer, files in the same folder, as well as sub-folders.
:MakeBmxCtags
also accepts a path, for example :MakeBmxCtags ~/Code/MyBmxProject
Use :MakeBmxModuleCtags
to generate ctags for all your BlitzMax modules.
Remember to add exe 'set tags+='.g:blitzmax_path.'/mod/tags'
to your vimrc
file in order to match tags from your modules.
You can read more about Vim tags here.
- Q: I'm getting
Error creating Ctags!
when creating ctags.- A: The
MakeBmxCtags
commands relies on the external program 'ctags', which you can find here.
- A: The
- Q: The compiler, tagbar and ctags don't match/update with my code.
- A: The document is read from disk, you'll have to save (
:w
) first!
- A: The document is read from disk, you'll have to save (
- Q: Jumping to a tag jumps to the wrong location.
- A: You can press g ] to view multiple tag matches.
You can read more about Vim tags here.
- A: You can press g ] to view multiple tag matches.
- Q: Jumping to a tag makes me lose my current document.
- A: You can use Ctr + t to jump a step back in the tag stack.
Alternatively, use Ctr + W ] or Ctrl + W g ] to open the tag in a split view.
You can read more about Vim tags here.
- A: You can use Ctr + t to jump a step back in the tag stack.
- Q: Tags from my modules aren't matched.
- A: Make sure you've added
exe 'set tags+='.g:blitzmax_path.'/mod/tags'
to yourvimrc
file, and that you've called:MakeBmxModuleCtags
at least once.
- A: Make sure you've added
- Q: I'm getting
Undefined variable: g:blitzmax_path
at start.- A: If you've added
exe 'set tags+='.g:blitzmax_path.'/mod/tags'
to yourvimrc
file, then make sure it's entered after/below thelet g:blitzmax_path=<your blitzmax path>
line.
- A: If you've added
- Q: I'm having other issues with the plugin.
- A: Post your issue in the GitHub issues section.