📄 mf.vim
字号:
" Vim syntax file" Language: Metafont" Maintainer: Andreas Scherer <andreas.scherer@pobox.com>" Last Change: April 25, 2001" For version 5.x: Clear all syntax items" For version 6.x: Quit when a syntax file was already loadedif version < 600 syn clearelseif exists("b:current_syntax") finishendif" Metafont 'primitives' as defined in chapter 25 of 'The METAFONTbook'" Page 210: 'boolean expressions'syn keyword mfBoolExp true false known unknown odd charexists not and or" Page 210: 'numeric expression'syn keyword mfNumExp normaldeviate length ASCII oct hex angle turningnumbersyn keyword mfNumExp totalweight directiontime xpart ypart xxpart xypartsyn keyword mfNumExp yxpart yypart sqrt sind cosd mlog mexp floorsyn keyword mfNumExp uniformdeviate" Page 211: 'internal quantities'syn keyword mfInternal tracingtitles tracingequations tracingcapsulessyn keyword mfInternal tracingchoices tracingspecs tracingpenssyn keyword mfInternal tracingcommands tracingrestores tracingmacrossyn keyword mfInternal tracingedges tracingoutput tracingonline tracingstatssyn keyword mfInternal pausing showstopping fontmaking proofingsyn keyword mfInternal turningcheck warningcheck smoothing autoroundingsyn keyword mfInternal granularity fillin year month day timesyn keyword mfInternal charcode charext charwd charht chardp charicsyn keyword mfInternal chardx chardy designsize hppp vppp xoffset yoffsetsyn keyword mfInternal boundarychar" Page 212: 'pair expressions'syn keyword mfPairExp point of precontrol postcontrol penoffset rotatedsyn keyword mfPairExp scaled shifted slanted transformed xscaled yscaledsyn keyword mfPairExp zscaled" Page 213: 'path expressions'syn keyword mfPathExp makepath reverse subpath curl tension atleastsyn keyword mfPathExp controls cycle" Page 214: 'pen expressions'syn keyword mfPenExp nullpen pencircle makepen" Page 214: 'picutre expressions'syn keyword mfPicExp nullpicture" Page 214: 'string expressions'syn keyword mfStringExp jobname readstring str char decimal substring" Page 217: 'commands and statements'syn keyword mfCommand end dump save interim newinternal randomseed letsyn keyword mfCommand delimiters outer everyjob show showvariable showtokensyn keyword mfCommand showdependencies showstats message errmessage errhelpsyn keyword mfCommand batchmode nonstopmode scrollmode errorstopmodesyn keyword mfCommand addto also contour doublepath withpen withweight cullsyn keyword mfCommand keeping dropping display inwindow openwindow at from tosyn keyword mfCommand shipout special numspecial" Page 56: 'types'syn keyword mfType boolean numeric pair path pen picture string transform" Page 155: 'grouping'syn keyword mfStatement begingroup endgroup" Page 165: 'definitions'syn keyword mfDefinition enddef def expr suffix text primary secondarysyn keyword mfDefinition tertiary vardef primarydef secondarydef tertiarydef" Page 169: 'conditions and loops'syn keyword mfCondition if fi else elseif endfor for forsuffixes foreversyn keyword mfCondition step until exitif" Other primitives listed in the indexsyn keyword mfPrimitive charlist endinput expandafter extensiblesyn keyword mfPrimitive fontdimen headerbyte inner input intersectiontimessyn keyword mfPrimitive kern ligtable quote scantokens skipto" Keywords defined by plain.mf (defined on pp.262-278)if !exists("plain_mf_macros") let plain_mf_macros = 1 " Set this to '0' if your source gets too colourful " metapost.vim does so to turn off Metafont macrosendifif plain_mf_macros syn keyword mfMacro abs addto_currentpicture aspect_ratio base_name syn keyword mfMacro base_version beginchar blacker blankpicture bot bye byte syn keyword mfMacro capsule_def ceiling change_width clear_pen_memory clearit syn keyword mfMacro clearpen clearxy counterclockwise culldraw cullit syn keyword mfMacro currentpen currentpen_path currentpicture syn keyword mfMacro currenttransform currentwindow cutdraw cutoff d decr syn keyword mfMacro define_blacker_pixels define_corrected_pixels syn keyword mfMacro define_good_x_pixels define_good_y_pixels syn keyword mfMacro define_horizontal_corrected_pixels define_pixels syn keyword mfMacro define_whole_blacker_pixels define_whole_pixels syn keyword mfMacro define_whole_vertical_blacker_pixels syn keyword mfMacro define_whole_vertical_pixels dir direction directionpoint syn keyword mfMacro displaying ditto div dotprod down downto draw drawdot syn keyword mfMacro endchar eps epsilon extra_beginchar extra_endchar syn keyword mfMacro extra_setup erase exitunless fill filldraw fix_units flex syn keyword mfMacro font_coding_scheme font_extra_space font_identifier syn keyword mfMacro font_normal_shrink font_normal_space font_normal_stretch syn keyword mfMacro font_quad font_setup font_size font_slant font_x_height syn keyword mfMacro fullcircle generate gfcorners gobble gobbled grayfont h syn keyword mfMacro halfcircle hide hround identity image_rules incr infinity syn keyword mfMacro interact interpath intersectionpoint inverse italcorr syn keyword mfMacro join_radius killtext labelfont labels left lft localfont syn keyword mfMacro loggingall lowres lowres_fix mag magstep makebox makegrid syn keyword mfMacro makelabel maketicks max min mod mode mode_def mode_name syn keyword mfMacro mode_setup nodisplays notransforms number_of_modes numtok syn keyword mfMacro o_correction openit origin pen_bot pen_lft pen_rt pen_top syn keyword mfMacro penlabels penpos penrazor penspeck pensquare penstroke syn keyword mfMacro pickup pixels_per_inch proof proofoffset proofrule syn keyword mfMacro proofrulethickness quartercircle range reflectedabout syn keyword mfMacro relax right rotatedabout rotatedaround round rt rulepen syn keyword mfMacro savepen screenchars screen_rows screen_cols screenrule syn keyword mfMacro screenstrokes shipit showit slantfont smode smoke softjoin syn keyword mfMacro solve stop superellipse takepower tensepath titlefont syn keyword mfMacro tolerance top tracingall tracingnone undraw undrawdot syn keyword mfMacro unfill unfilldraw unitpixel unitsquare unitvector up upto syn keyword mfMacro vround w whateverendif" Some other basic macro names, e.g., from cmbase, logo, etc.if !exists("other_mf_macros") let other_mf_macros = 1 " Set this to '0' if your code gets too colourful " metapost.vim does so to turn off Metafont macrosendifif other_mf_macros syn keyword mfMacro beginlogocharendif" Numeric tokenssyn match mfNumeric "[-]\=\d\+"syn match mfNumeric "[-]\=\.\d\+"syn match mfNumeric "[-]\=\d\+\.\d\+"" Metafont lengthssyn match mfLength "\<\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\>"syn match mfLength "\<[-]\=\d\+\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\#\=\>"syn match mfLength "\<[-]\=\.\d\+\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\#\=\>"syn match mfLength "\<[-]\=\d\+\.\d\+\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\#\=\>"" Metafont coordinates and pointssyn match mfCoord "\<[xy]\d\+\>"syn match mfPoint "\<z\d\+\>"" String constantssyn region mfString start=+"+ end=+"+" Comments:syn match mfComment "%.*$"" synchronizingsyn sync maxlines=50" Define the default highlighting" For version 5.7 and earlier: only when not done already" For version 5.8 and later: only when an item doesn't have highlighting yetif version >= 508 || !exists("did_mf_syntax_inits") if version < 508 let did_mf_syntax_inits = 1 command -nargs=+ HiLink hi link <args> else command -nargs=+ HiLink hi def link <args> endif HiLink mfBoolExp Statement HiLink mfNumExp Statement HiLink mfInternal Identifier HiLink mfPairExp Statement HiLink mfPathExp Statement HiLink mfPenExp Statement HiLink mfPicExp Statement HiLink mfStringExp Statement HiLink mfCommand Statement HiLink mfType Type HiLink mfStatement Statement HiLink mfDefinition Statement HiLink mfCondition Conditional HiLink mfPrimitive Statement HiLink mfMacro Macro HiLink mfCoord Identifier HiLink mfPoint Identifier HiLink mfNumeric Number HiLink mfLength Number HiLink mfComment Comment HiLink mfString String delcommand HiLinkendiflet b:current_syntax = "mf"" vim: ts=8
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -