⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sml.vim

📁 MSYS在windows下模拟了一个类unix的终端
💻 VIM
字号:
" Vim syntax file" Language:      SML" Filenames:     *.sml *.sig" Maintainers:   Markus Mottl            <mottl@miss.wu-wien.ac.at>"                Fabrizio Zeno Cornelli  <zeno@filibusta.crema.unimi.it>" URL:           http://miss.wu-wien.ac.at/~mottl/vim/syntax/sml.vim" Last Change:   2001 May 10"                2000 Oct 01 - integrated Fabrizio's syntax file and"                              cleaned up for distribution"                2000 Feb 24 - structures and signatures improved" For version 5.x: Clear all syntax items" For version 6.x: Quit when a syntax file was already loadedif version < 600  syntax clearelseif exists("b:current_syntax")  finishendif" SML is case sensitive.syn case match" lowercase identifier - the standard way to matchsyn match    smlLCIdentifier /\<\(\l\|_\)\(\w\|'\)*\>/syn match    smlKeyChar    "|"" Errorssyn match    smlBraceErr   "}"syn match    smlBrackErr   "\]"syn match    smlParenErr   ")"syn match    smlCommentErr "\*)"syn match    smlThenErr    "\<then\>"" Error-highlighting of "end" without synchronization:" as keyword or as error (default)if exists("sml_noend_error")  syn match    smlKeyword    "\<end\>"else  syn match    smlEndErr     "\<end\>"endif" Some convenient clusterssyn cluster  smlAllErrs contains=smlBraceErr,smlBrackErr,smlParenErr,smlCommentErr,smlEndErr,smlThenErrsyn cluster  smlAENoParen contains=smlBraceErr,smlBrackErr,smlCommentErr,smlEndErr,smlThenErrsyn cluster  smlContained contains=smlTodo,smlPreDef,smlModParam,smlModParam1,smlPreMPRestr,smlMPRestr,smlMPRestr1,smlMPRestr2,smlMPRestr3,smlModRHS,smlFuncWith,smlFuncStruct,smlModTypeRestr,smlModTRWith,smlWith,smlWithRest,smlModType,smlFullMod" Enclosing delimiterssyn region   smlEncl transparent matchgroup=smlKeyword start="(" matchgroup=smlKeyword end=")" contains=ALLBUT,@smlContained,smlParenErrsyn region   smlEncl transparent matchgroup=smlKeyword start="{" matchgroup=smlKeyword end="}"  contains=ALLBUT,@smlContained,smlBraceErrsyn region   smlEncl transparent matchgroup=smlKeyword start="\[" matchgroup=smlKeyword end="\]" contains=ALLBUT,@smlContained,smlBrackErrsyn region   smlEncl transparent matchgroup=smlKeyword start="#\[" matchgroup=smlKeyword end="\]" contains=ALLBUT,@smlContained,smlBrackErr" Commentssyn region   smlComment start="(\*" end="\*)" contains=smlComment,smlTodosyn keyword  smlTodo contained TODO FIXME XXX" letsyn region   smlEnd matchgroup=smlKeyword start="\<let\>" matchgroup=smlKeyword end="\<end\>" contains=ALLBUT,@smlContained,smlEndErr" localsyn region   smlEnd matchgroup=smlKeyword start="\<local\>" matchgroup=smlKeyword end="\<end\>" contains=ALLBUT,@smlContained,smlEndErr" Blocks" "begin"syn region   smlEnd matchgroup=smlKeyword start="\<begin\>" matchgroup=smlKeyword end="\<end\>" contains=ALLBUT,@smlContained,smlEndErr" "if"syn region   smlNone matchgroup=smlKeyword start="\<if\>" matchgroup=smlKeyword end="\<then\>" contains=ALLBUT,@smlContained,smlThenErr"" Modules" "struct"syn region   smlStruct matchgroup=smlModule start="\<struct\>" matchgroup=smlModule end="\<end\>" contains=ALLBUT,@smlContained,smlEndErr" "sig"syn region   smlSig matchgroup=smlModule start="\<sig\>" matchgroup=smlModule end="\<end\>" contains=ALLBUT,@smlContained,smlEndErr,smlModulesyn region   smlModSpec matchgroup=smlKeyword start="\<structure\>" matchgroup=smlModule end="\<\u\(\w\|'\)*\>" contained contains=@smlAllErrs,smlComment skipwhite skipempty nextgroup=smlModTRWith,smlMPRestr" "open"syn region   smlNone matchgroup=smlKeyword start="\<open\>" matchgroup=smlModule end="\<\u\(\w\|'\)*\(\.\u\(\w\|'\)*\)*\>" contains=@smlAllErrs,smlComment" "structure" - somewhat complicated stuff ;-)syn region   smlModule matchgroup=smlKeyword start="\<\(structure\|functor\)\>" matchgroup=smlModule end="\<\u\(\w\|'\)*\>" contains=@smlAllErrs,smlComment skipwhite skipempty nextgroup=smlPreDefsyn region   smlPreDef start="."me=e-1 matchgroup=smlKeyword end="\l\|="me=e-1 contained contains=@smlAllErrs,smlComment,smlModParam,smlModTypeRestr,smlModTRWith nextgroup=smlModPreRHSsyn region   smlModParam start="([^*]" end=")" contained contains=@smlAENoParen,smlModParam1syn match    smlModParam1 "\<\u\(\w\|'\)*\>" contained skipwhite skipempty nextgroup=smlPreMPRestrsyn region   smlPreMPRestr start="."me=e-1 end=")"me=e-1 contained contains=@smlAllErrs,smlComment,smlMPRestr,smlModTypeRestrsyn region   smlMPRestr start=":" end="."me=e-1 contained contains=@smlComment skipwhite skipempty nextgroup=smlMPRestr1,smlMPRestr2,smlMPRestr3syn region   smlMPRestr1 matchgroup=smlModule start="\ssig\s\=" matchgroup=smlModule end="\<end\>" contained contains=ALLBUT,@smlContained,smlEndErr,smlModulesyn region   smlMPRestr2 start="\sfunctor\(\s\|(\)\="me=e-1 matchgroup=smlKeyword end="->" contained contains=@smlAllErrs,smlComment,smlModParam skipwhite skipempty nextgroup=smlFuncWithsyn match    smlMPRestr3 "\w\(\w\|'\)*\(\.\w\(\w\|'\)*\)*" containedsyn match  smlModPreRHS "=" contained skipwhite skipempty nextgroup=smlModParam,smlFullModsyn region  smlModRHS start="." end=".\w\|([^*]"me=e-2 contained contains=smlComment skipwhite skipempty nextgroup=smlModParam,smlFullModsyn match   smlFullMod "\<\u\(\w\|'\)*\(\.\u\(\w\|'\)*\)*" contained skipwhite skipempty nextgroup=smlFuncWithsyn region  smlFuncWith start="("me=e-1 end=")" contained contains=smlComment,smlWith,smlFuncStructsyn region  smlFuncStruct matchgroup=smlModule start="[^a-zA-Z]struct\>"hs=s+1 matchgroup=smlModule end="\<end\>" contains=ALLBUT,@smlContained,smlEndErrsyn match    smlModTypeRestr "\<\w\(\w\|'\)*\(\.\w\(\w\|'\)*\)*\>" containedsyn region   smlModTRWith start=":\s*("hs=s+1 end=")" contained contains=@smlAENoParen,smlWithsyn match    smlWith "\<\(\u\(\w\|'\)*\.\)*\w\(\w\|'\)*\>" contained skipwhite skipempty nextgroup=smlWithRestsyn region   smlWithRest start="[^)]" end=")"me=e-1 contained contains=ALLBUT,@smlContained" "signature"syn region   smlKeyword start="\<signature\>" matchgroup=smlModule end="\<\w\(\w\|'\)*\>" contains=smlComment skipwhite skipempty nextgroup=smlMTDefsyn match    smlMTDef "=\s*\w\(\w\|'\)*\>"hs=s+1,me=ssyn keyword  smlKeyword  abstype and andalso casesyn keyword  smlKeyword  datatype else eqtypesyn keyword  smlKeyword  exception fn fun handlesyn keyword  smlKeyword  in infix infixl infixlsyn keyword  smlKeyword  match nonfix of orelsesyn keyword  smlKeyword  raise handle typesyn keyword  smlKeyword  val where while with withtypesyn keyword  smlType     bool char exn int list optionsyn keyword  smlType     real string unitsyn keyword  smlOperator div mod not or quot remsyn keyword  smlBoolean      true falsesyn match    smlConstructor  "(\s*)"syn match    smlConstructor  "\[\s*\]"syn match    smlConstructor  "#\[\s*\]"syn match    smlConstructor  "\u\(\w\|'\)*\>"" Module prefixsyn match    smlModPath      "\u\(\w\|'\)*\."he=e-1syn match    smlCharacter    +#"."\|#"\\\d\d\d"+syn match    smlCharErr      +#"\\\d\d"\|#"\\\d"+syn region   smlString       start=+"+ skip=+\\\\\|\\"+ end=+"+syn match    smlFunDef       "=>"syn match    smlRefAssign    ":="syn match    smlTopStop      ";;"syn match    smlOperator     "\^"syn match    smlOperator     "::"syn match    smlAnyVar       "\<_\>"syn match    smlKeyChar      "!"syn match    smlKeyChar      ";"syn match    smlKeyChar      "\*"syn match    smlKeyChar      "="syn match    smlNumber        "\<-\=\d\+\>"syn match    smlNumber        "\<-\=0[x|X]\x\+\>"syn match    smlReal          "\<-\=\d\+\.\d*\([eE][-+]\=\d\+\)\=[fl]\=\>"" Synchronizationsyn sync minlines=20syn sync maxlines=500syn sync match smlEndSync     grouphere  smlEnd     "\<begin\>"syn sync match smlEndSync     groupthere smlEnd     "\<end\>"syn sync match smlStructSync  grouphere  smlStruct  "\<struct\>"syn sync match smlStructSync  groupthere smlStruct  "\<end\>"syn sync match smlSigSync     grouphere  smlSig     "\<sig\>"syn sync match smlSigSync     groupthere smlSig     "\<end\>"" 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_sml_syntax_inits")  if version < 508    let did_sml_syntax_inits = 1    command -nargs=+ HiLink hi link <args>  else    command -nargs=+ HiLink hi def link <args>  endif  HiLink smlBraceErr     Error  HiLink smlBrackErr     Error  HiLink smlParenErr     Error  HiLink smlCommentErr   Error  HiLink smlEndErr       Error  HiLink smlThenErr      Error  HiLink smlCharErr      Error  HiLink smlComment      Comment  HiLink smlModPath      Include  HiLink smlModule       Include  HiLink smlModParam1    Include  HiLink smlModType      Include  HiLink smlMPRestr3     Include  HiLink smlFullMod      Include  HiLink smlModTypeRestr Include  HiLink smlWith         Include  HiLink smlMTDef        Include  HiLink smlConstructor  Constant  HiLink smlModPreRHS    Keyword  HiLink smlMPRestr2     Keyword  HiLink smlKeyword      Keyword  HiLink smlFunDef       Keyword  HiLink smlRefAssign    Keyword  HiLink smlKeyChar      Keyword  HiLink smlAnyVar       Keyword  HiLink smlTopStop      Keyword  HiLink smlOperator     Keyword  HiLink smlBoolean      Boolean  HiLink smlCharacter    Character  HiLink smlNumber       Number  HiLink smlReal         Float  HiLink smlString       String  HiLink smlType         Type  HiLink smlTodo         Todo  HiLink smlEncl         Keyword  delcommand HiLinkendiflet b:current_syntax = "sml"" vim: ts=28

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -