152 lines
4.6 KiB
Plaintext
152 lines
4.6 KiB
Plaintext
*ft_mp.txt* For Vim version 9.1. Last change: 2022 Aug 12
|
|
|
|
This is the documentation for the METAFONT and MetaPost filetype plugins.
|
|
Unless otherwise specified, the commands, settings and mappings defined below
|
|
apply equally to both filetypes.
|
|
|
|
NOTE: the plugin requires +vim9script.
|
|
|
|
==============================================================================
|
|
CONTENTS *mp.vim* *ft-metapost*
|
|
*mf.vim* *ft-metafont*
|
|
|
|
1. Introduction |ft-metapost-intro|
|
|
2. Commands |ft-metapost-commands|
|
|
3. Settings |ft-metapost-settings|
|
|
4. Mappings |ft-metapost-mappings|
|
|
|
|
==============================================================================
|
|
*ft-metapost-intro*
|
|
*ft-metafont-intro*
|
|
Introduction ~
|
|
This filetype plugin provides extensive support for editing METAFONT and
|
|
MetaPost documents, including syntax coloring, indentation, and completion.
|
|
|
|
Defining indentation rules for METAFONT and MetaPost code is tricky and
|
|
somewhat subjective, because the syntax is quite liberal. The plugin uses some
|
|
heuristics that work well most of the time, but in particular cases you may
|
|
want to to override the automatic rules, so that the manually defined
|
|
indentation is preserved by commands like `gg=G`.
|
|
|
|
This can be achieved by appending `%>`, `%<`, `%=` or `%!` to a line to
|
|
explicitly control the indentation of the next line. The `<` and `>` symbols
|
|
may be repeated many times: for instance, `%>>` will cause the next line to be
|
|
indented twice. Of course, `%<` means that the next line should be
|
|
de-indented; `%=` sets the indentation of the next line to be equal to the
|
|
indentation of the current line; and `%!` means that the indentation of the
|
|
next line should not change from whatever it has been manually set.
|
|
|
|
For example, this is the default indentation of a simple macro:
|
|
>
|
|
def foo =
|
|
makepen(
|
|
subpath(T-n,t) of r
|
|
shifted .5down
|
|
--subpath(t,T) of r shifted .5up -- cycle
|
|
)
|
|
withcolor black
|
|
enddef
|
|
<
|
|
By adding the special comments, the indentation can be adjusted arbitrarily:
|
|
>
|
|
def foo =
|
|
makepen(
|
|
subpath(T-n,t) of r %>
|
|
shifted .5down %>
|
|
--subpath(t,T) of r shifted .5up -- cycle %<<<
|
|
)
|
|
withcolor black
|
|
enddef
|
|
<
|
|
*ft-metapost-commands*
|
|
Commands ~
|
|
*:FixBeginfigs*
|
|
Renumber beginfig() blocks in the current buffer so that the n-th figure has
|
|
number n. MetaPost only.
|
|
|
|
*ft-metapost-settings*
|
|
*ft-metafont-settings*
|
|
Settings ~
|
|
*'g:mf_other_macros'*
|
|
Highlight some other basic macro names, e.g., from cmbase, logo, etc. This is
|
|
set to 1 by default in METAFONT buffers, and it is set to 0 by default in
|
|
MetaPost buffers.
|
|
|
|
*'g:mf_plain_macros'*
|
|
Highlight keywords defined by plain.mf. This is set to 1 by default in
|
|
METAFONT buffers, and it is set to 0 by default in MetaPost buffers.
|
|
|
|
*'g:mf_plain_modes'*
|
|
Highlight keywords defined by modes.mf. This is set to 1 by default in
|
|
METAFONT buffers, and it is set to 0 by default in MetaPost buffers.
|
|
|
|
*'g:mp_close_tag'*
|
|
Define additional keywords that end indented blocks. For instance, if you
|
|
define:
|
|
>
|
|
g:mp_close_tag = ['\<endfoo\>']
|
|
<
|
|
any line starting with `endfoo` will be de-indented compared to its previous
|
|
line.
|
|
>
|
|
g:mp_close_tag = []
|
|
<
|
|
*'b:mp_metafun'*
|
|
*'g:mp_metafun'*
|
|
If set to 1, highlight ConTeXt's MetaFun keywords. MetaPost only.
|
|
>
|
|
g:mp_metafun = 0
|
|
<
|
|
*'g:mp_mfplain_macros'*
|
|
Highlight keywords defined by mfplain.mp. MetaPost only.
|
|
>
|
|
g:mp_mfplain_macros = 1
|
|
<
|
|
*'g:mp_open_tag'*
|
|
Define additional keywords that start indented blocks. For instance, if you
|
|
define:
|
|
>
|
|
g:mp_open_tag = ['\<beginfoo\>']
|
|
<
|
|
the line following `beginfoo` will be indented.
|
|
>
|
|
g:mp_open_tag = []
|
|
<
|
|
*'g:mp_other_macros'*
|
|
Highlight keywords defined by all base macro packages (boxes, rboxes, format,
|
|
graph, marith, sarith, string, TEX). This option affects only MetaPost
|
|
buffers.
|
|
>
|
|
g:mp_other_macros = 1
|
|
<
|
|
*'g:mp_plain_macros'*
|
|
Highlight keywords defined by plain.mp. MetaPost only.
|
|
>
|
|
g:mp_plain_macros = 1
|
|
<
|
|
*'g:no_mp_maps'*
|
|
*'g:no_mf_maps'*
|
|
When set, do not define any mapping in buffers with the corresponding
|
|
filetype.
|
|
>
|
|
g:no_mp_maps = 0
|
|
g:no_mf_maps = 0
|
|
<
|
|
*ft-metapost-mappings*
|
|
*ft-metafont-mappings*
|
|
Mappings ~
|
|
|
|
]] [count] vardefs, macros or figures forward.
|
|
|
|
[[ [count] vardefs, macros or figures backward.
|
|
|
|
][ [count] end of vardefs, macros or figures forward.
|
|
|
|
[] [count] end of vardefs, macros or figures backward.
|
|
|
|
]} [count] end of blocks (fi, endfor, endgroup) forward.
|
|
|
|
[{ [count] begin of blocks (if, for, begingroup) backward.
|
|
|
|
vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
|