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

📄 ocaml.vim

📁 MSYS在windows下模拟了一个类unix的终端
💻 VIM
字号:
" Vim syntax file" Language:      OCAML" Filenames:     *.ml *.mli *.mll *.mly" Maintainers:   Markus Mottl     <mottl@miss.wu-wien.ac.at>"                Karl-Heinz Sylla <Karl-Heinz.Sylla@gmd.de>" URL:           http://miss.wu-wien.ac.at/~mottl/vim/syntax/ocaml.vim" Last Change:   2001 May 10"                2001 Feb 19 - small fix for functors"                2000 May 05 - small fix for optional arguments" 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" OCAML is case sensitive.syn case match" lowercase identifier - the standard way to matchsyn match    ocamlLCIdentifier /\<\(\l\|_\)\(\w\|'\)*\>/syn match    ocamlKeyChar    "|"" Errorssyn match    ocamlBraceErr   "}"syn match    ocamlBrackErr   "\]"syn match    ocamlParenErr   ")"syn match    ocamlArrErr     "|]"syn match    ocamlCommentErr "\*)"syn match    ocamlCountErr   "\<downto\>"syn match    ocamlCountErr   "\<to\>"syn match    ocamlDoErr      "\<do\>"syn match    ocamlDoneErr    "\<done\>"syn match    ocamlThenErr    "\<then\>"" Error-highlighting of "end" without synchronization:" as keyword or as error (default)if exists("ocaml_noend_error")  syn match    ocamlKeyword    "\<end\>"else  syn match    ocamlEndErr     "\<end\>"endif" Some convenient clusterssyn cluster  ocamlAllErrs contains=ocamlBraceErr,ocamlBrackErr,ocamlParenErr,ocamlCommentErr,ocamlCountErr,ocamlDoErr,ocamlDoneErr,ocamlEndErr,ocamlThenErrsyn cluster  ocamlAENoParen contains=ocamlBraceErr,ocamlBrackErr,ocamlCommentErr,ocamlCountErr,ocamlDoErr,ocamlDoneErr,ocamlEndErr,ocamlThenErrsyn cluster  ocamlContained contains=ocamlTodo,ocamlPreDef,ocamlModParam,ocamlModParam1,ocamlPreMPRestr,ocamlMPRestr,ocamlMPRestr1,ocamlMPRestr2,ocamlMPRestr3,ocamlModRHS,ocamlFuncWith,ocamlFuncStruct,ocamlModTypeRestr,ocamlModTRWith,ocamlWith,ocamlWithRest,ocamlModType,ocamlFullMod" Enclosing delimiterssyn region   ocamlEncl transparent matchgroup=ocamlKeyword start="(" matchgroup=ocamlKeyword end=")" contains=ALLBUT,@ocamlContained,ocamlParenErrsyn region   ocamlEncl transparent matchgroup=ocamlKeyword start="{" matchgroup=ocamlKeyword end="}"  contains=ALLBUT,@ocamlContained,ocamlBraceErrsyn region   ocamlEncl transparent matchgroup=ocamlKeyword start="\[" matchgroup=ocamlKeyword end="\]" contains=ALLBUT,@ocamlContained,ocamlBrackErrsyn region   ocamlEncl transparent matchgroup=ocamlKeyword start="\[|" matchgroup=ocamlKeyword end="|\]" contains=ALLBUT,@ocamlContained,ocamlArrErr" Commentssyn region   ocamlComment start="(\*" end="\*)" contains=ocamlComment,ocamlTodosyn keyword  ocamlTodo contained TODO FIXME XXX" Objectssyn region   ocamlEnd matchgroup=ocamlKeyword start="\<object\>" matchgroup=ocamlKeyword end="\<end\>" contains=ALLBUT,@ocamlContained,ocamlEndErr" Blockssyn region   ocamlEnd matchgroup=ocamlKeyword start="\<begin\>" matchgroup=ocamlKeyword end="\<end\>" contains=ALLBUT,@ocamlContained,ocamlEndErr" "for"syn region   ocamlNone matchgroup=ocamlKeyword start="\<for\>" matchgroup=ocamlKeyword end="\<\(to\|downto\)\>" contains=ALLBUT,@ocamlContained,ocamlCountErr" "do"syn region   ocamlDo matchgroup=ocamlKeyword start="\<do\>" matchgroup=ocamlKeyword end="\<done\>" contains=ALLBUT,@ocamlContained,ocamlDoneErr" "if"syn region   ocamlNone matchgroup=ocamlKeyword start="\<if\>" matchgroup=ocamlKeyword end="\<then\>" contains=ALLBUT,@ocamlContained,ocamlThenErr"" Modules" "struct"syn region   ocamlStruct matchgroup=ocamlModule start="\<struct\>" matchgroup=ocamlModule end="\<end\>" contains=ALLBUT,@ocamlContained,ocamlEndErr" "sig"syn region   ocamlSig matchgroup=ocamlModule start="\<sig\>" matchgroup=ocamlModule end="\<end\>" contains=ALLBUT,@ocamlContained,ocamlEndErr,ocamlModulesyn region   ocamlModSpec matchgroup=ocamlKeyword start="\<module\>" matchgroup=ocamlModule end="\<\u\(\w\|'\)*\>" contained contains=@ocamlAllErrs,ocamlComment skipwhite skipempty nextgroup=ocamlModTRWith,ocamlMPRestr" "open"syn region   ocamlNone matchgroup=ocamlKeyword start="\<open\>" matchgroup=ocamlModule end="\<\u\(\w\|'\)*\(\.\u\(\w\|'\)*\)*\>" contains=@ocamlAllErrs,ocamlComment" "include"syn region   ocamlNone matchgroup=ocamlKeyword start="\<include\>" matchgroup=ocamlModPath end="\<\(\u\(\w\|'\)*\.\)*\w\(\w\|'\)*\>" contains=o@ocamlAllErrs,camlComment" "module" - somewhat complicated stuff ;-)syn region   ocamlModule matchgroup=ocamlKeyword start="\<module\>" matchgroup=ocamlModule end="\<\u\(\w\|'\)*\>" contains=@ocamlAllErrs,ocamlComment skipwhite skipempty nextgroup=ocamlPreDefsyn region   ocamlPreDef start="."me=e-1 matchgroup=ocamlKeyword end="\l\|="me=e-1 contained contains=@ocamlAllErrs,ocamlComment,ocamlModParam,ocamlModTypeRestr,ocamlModTRWith nextgroup=ocamlModPreRHSsyn region   ocamlModParam start="([^*]" end=")" contained contains=@ocamlAENoParen,ocamlModParam1syn match    ocamlModParam1 "\<\u\(\w\|'\)*\>" contained skipwhite skipempty nextgroup=ocamlPreMPRestrsyn region   ocamlPreMPRestr start="."me=e-1 end=")"me=e-1 contained contains=@ocamlAllErrs,ocamlComment,ocamlMPRestr,ocamlModTypeRestrsyn region   ocamlMPRestr start=":" end="."me=e-1 contained contains=@ocamlComment skipwhite skipempty nextgroup=ocamlMPRestr1,ocamlMPRestr2,ocamlMPRestr3syn region   ocamlMPRestr1 matchgroup=ocamlModule start="\ssig\s\=" matchgroup=ocamlModule end="\<end\>" contained contains=ALLBUT,@ocamlContained,ocamlEndErr,ocamlModulesyn region   ocamlMPRestr2 start="\sfunctor\(\s\|(\)\="me=e-1 matchgroup=ocamlKeyword end="->" contained contains=@ocamlAllErrs,ocamlComment,ocamlModParam skipwhite skipempty nextgroup=ocamlFuncWith,ocamlMPRestr2syn match    ocamlMPRestr3 "\w\(\w\|'\)*\(\.\w\(\w\|'\)*\)*" containedsyn match  ocamlModPreRHS "=" contained skipwhite skipempty nextgroup=ocamlModParam,ocamlFullModsyn region  ocamlModRHS start="." end=".\w\|([^*]"me=e-2 contained contains=ocamlComment skipwhite skipempty nextgroup=ocamlModParam,ocamlFullModsyn match   ocamlFullMod "\<\u\(\w\|'\)*\(\.\u\(\w\|'\)*\)*" contained skipwhite skipempty nextgroup=ocamlFuncWithsyn region  ocamlFuncWith start="("me=e-1 end=")" contained contains=ocamlComment,ocamlWith,ocamlFuncStruct skipwhite skipempty nextgroup=ocamlFuncWithsyn region  ocamlFuncStruct matchgroup=ocamlModule start="[^a-zA-Z]struct\>"hs=s+1 matchgroup=ocamlModule end="\<end\>" contains=ALLBUT,@ocamlContained,ocamlEndErrsyn match    ocamlModTypeRestr "\<\w\(\w\|'\)*\(\.\w\(\w\|'\)*\)*\>" containedsyn region   ocamlModTRWith start=":\s*("hs=s+1 end=")" contained contains=@ocamlAENoParen,ocamlWithsyn match    ocamlWith "\<\(\u\(\w\|'\)*\.\)*\w\(\w\|'\)*\>" contained skipwhite skipempty nextgroup=ocamlWithRestsyn region   ocamlWithRest start="[^)]" end=")"me=e-1 contained contains=ALLBUT,@ocamlContained" "module type"syn region   ocamlKeyword start="\<module\s*type\>" matchgroup=ocamlModule end="\<\w\(\w\|'\)*\>" contains=ocamlComment skipwhite skipempty nextgroup=ocamlMTDefsyn match    ocamlMTDef "=\s*\w\(\w\|'\)*\>"hs=s+1,me=ssyn keyword  ocamlKeyword  and as assert classsyn keyword  ocamlKeyword  constraint elsesyn keyword  ocamlKeyword  exception external fun functionsyn keyword  ocamlKeyword  in inherit initializersyn keyword  ocamlKeyword  land lazy let matchsyn keyword  ocamlKeyword  method mutable new ofsyn keyword  ocamlKeyword  parser private raise recsyn keyword  ocamlKeyword  try typesyn keyword  ocamlKeyword  val virtual when while withsyn keyword  ocamlType     array bool char exn float format intsyn keyword  ocamlType     list option string unitsyn keyword  ocamlOperator asr lor lsl lsr lxor mod not orsyn keyword  ocamlBoolean      true falsesyn match    ocamlConstructor  "(\s*)"syn match    ocamlConstructor  "\[\s*\]"syn match    ocamlConstructor  "\[|\s*>|]"syn match    ocamlConstructor  "\[<\s*>\]"syn match    ocamlConstructor  "\u\(\w\|'\)*\>"" Polymorphic variantssyn match    ocamlConstructor  "`\w\(\w\|'\)*\>"" Module prefixsyn match    ocamlModPath      "\u\(\w\|'\)*\."he=e-1syn match    ocamlCharacter    "'.'\|'\\\d\d\d'\|'\\[\'ntbr]'"syn match    ocamlCharErr      "'\\\d\d'\|'\\\d'"syn match    ocamlCharErr      "'\\[^\'ntbr]'"syn region   ocamlString       start=+"+ skip=+\\\\\|\\"+ end=+"+syn match    ocamlFunDef       "->"syn match    ocamlRefAssign    ":="syn match    ocamlTopStop      ";;"syn match    ocamlOperator     "\^"syn match    ocamlOperator     "::"syn match    ocamlOperator     "<-"syn match    ocamlAnyVar       "\<_\>"syn match    ocamlKeyChar      "!"syn match    ocamlKeyChar      "|[^\]]"me=e-1syn match    ocamlKeyChar      ";"syn match    ocamlKeyChar      "\~"syn match    ocamlKeyChar      "?"syn match    ocamlKeyChar      "\*"syn match    ocamlKeyChar      "="syn match    ocamlNumber        "\<-\=\d\+\>"syn match    ocamlNumber        "\<-\=0[x|X]\x\+\>"syn match    ocamlNumber        "\<-\=0[o|O]\o\+\>"syn match    ocamlNumber        "\<-\=0[b|B][01]\+\>"syn match    ocamlFloat         "\<-\=\d\+\.\d*\([eE][-+]\=\d\+\)\=[fl]\=\>"" Labelssyn match    ocamlLabel        "\~\(\l\|_\)\(\w\|'\)*"lc=1syn match    ocamlLabel        "?\(\l\|_\)\(\w\|'\)*"lc=1syn region   ocamlLabel transparent matchgroup=ocamlLabel start="?(\(\l\|_\)\(\w\|'\)*"lc=2 end=")"me=e-1 contains=ALLBUT,@ocamlContained,ocamlParenErr" Synchronizationsyn sync minlines=50syn sync maxlines=500syn sync match ocamlDoSync      grouphere  ocamlDo      "\<do\>"syn sync match ocamlDoSync      groupthere ocamlDo      "\<done\>"syn sync match ocamlEndSync     grouphere  ocamlEnd     "\<\(begin\|object\)\>"syn sync match ocamlEndSync     groupthere ocamlEnd     "\<end\>"syn sync match ocamlStructSync  grouphere  ocamlStruct  "\<struct\>"syn sync match ocamlStructSync  groupthere ocamlStruct  "\<end\>"syn sync match ocamlSigSync     grouphere  ocamlSig     "\<sig\>"syn sync match ocamlSigSync     groupthere ocamlSig     "\<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_ocaml_syntax_inits")  if version < 508    let did_ocaml_syntax_inits = 1    command -nargs=+ HiLink hi link <args>  else    command -nargs=+ HiLink hi def link <args>  endif  HiLink ocamlBraceErr     Error  HiLink ocamlBrackErr     Error  HiLink ocamlParenErr     Error  HiLink ocamlArrErr       Error  HiLink ocamlCommentErr   Error  HiLink ocamlCountErr     Error  HiLink ocamlDoErr        Error  HiLink ocamlDoneErr      Error  HiLink ocamlEndErr       Error  HiLink ocamlThenErr      Error  HiLink ocamlCharErr      Error  HiLink ocamlComment      Comment  HiLink ocamlModPath      Include  HiLink ocamlModule       Include  HiLink ocamlModParam1    Include  HiLink ocamlModType      Include  HiLink ocamlMPRestr3     Include  HiLink ocamlFullMod      Include  HiLink ocamlModTypeRestr Include  HiLink ocamlWith         Include  HiLink ocamlMTDef        Include  HiLink ocamlConstructor  Constant  HiLink ocamlModPreRHS    Keyword  HiLink ocamlMPRestr2     Keyword  HiLink ocamlKeyword      Keyword  HiLink ocamlFunDef       Keyword  HiLink ocamlRefAssign    Keyword  HiLink ocamlKeyChar      Keyword  HiLink ocamlAnyVar       Keyword  HiLink ocamlTopStop      Keyword  HiLink ocamlOperator     Keyword  HiLink ocamlBoolean      Boolean  HiLink ocamlCharacter    Character  HiLink ocamlNumber       Number  HiLink ocamlFloat        Float  HiLink ocamlString       String  HiLink ocamlLabel        Identifier  HiLink ocamlType         Type  HiLink ocamlTodo         Todo  HiLink ocamlEncl         Keyword  delcommand HiLinkendiflet b:current_syntax = "ocaml"" vim: ts=28

⌨️ 快捷键说明

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