📄 perl.vim
字号:
syn region perlStringUnexpanded matchgroup=perlStringStartEnd start="'" end="'" contains=@perlInterpSQsyn region perlString matchgroup=perlStringStartEnd start=+"+ end=+"+ contains=@perlInterpDQsyn region perlQQ matchgroup=perlStringStartEnd start=+\<q#+ end=+#+ contains=@perlInterpSQsyn region perlQQ matchgroup=perlStringStartEnd start=+\<q|+ end=+|+ contains=@perlInterpSQsyn region perlQQ matchgroup=perlStringStartEnd start=+\<q(+ end=+)+ contains=@perlInterpSQ,perlBracketssyn region perlQQ matchgroup=perlStringStartEnd start=+\<q{+ end=+}+ contains=@perlInterpSQsyn region perlQQ matchgroup=perlStringStartEnd start=+\<q/+ end=+/+ contains=@perlInterpSQsyn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx]#+ end=+#+ contains=@perlInterpDQsyn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx]|+ end=+|+ contains=@perlInterpDQsyn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx](+ end=+)+ contains=@perlInterpDQ,perlBracketssyn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx]{+ end=+}+ contains=@perlInterpDQsyn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx]/+ end=+/+ contains=@perlInterpDQsyn region perlQQ matchgroup=perlStringStartEnd start=+\<qw#+ end=+#+ contains=@perlInterpSQsyn region perlQQ matchgroup=perlStringStartEnd start=+\<qw|+ end=+|+ contains=@perlInterpSQsyn region perlQQ matchgroup=perlStringStartEnd start=+\<qw(+ end=+)+ contains=@perlInterpSQ,perlBracketssyn region perlQQ matchgroup=perlStringStartEnd start=+\<qw{+ end=+}+ contains=@perlInterpSQsyn region perlQQ matchgroup=perlStringStartEnd start=+\<qw/+ end=+/+ contains=@perlInterpSQsyn region perlQQ matchgroup=perlStringStartEnd start=+\<qr#+ end=+#[imosx]*+ contains=@perlInterpMatchsyn region perlQQ matchgroup=perlStringStartEnd start=+\<qr|+ end=+|[imosx]*+ contains=@perlInterpMatchsyn region perlQQ matchgroup=perlStringStartEnd start=+\<qr(+ end=+)[imosx]*+ contains=@perlInterpMatchsyn region perlQQ matchgroup=perlStringStartEnd start=+\<qr{+ end=+}[imosx]*+ contains=@perlInterpMatchsyn region perlQQ matchgroup=perlStringStartEnd start=+\<qr/+ end=+/[imosx]*+ contains=@perlInterpSlash" Constructs such as print <<EOF [...] EOF, 'here' documents"if version >= 600 " XXX Any statements after the identifier are in perlString colour (i.e. " 'if $a' in 'print <<EOF if $a'). if exists("perl_fold") syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\z(\I\i*\)+ end=+^\z1$+ contains=@perlInterpDQ fold syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*"\z(\S\+\)"+ end=+^\z1$+ contains=@perlInterpDQ fold syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*'\z(\S\+\)'+ end=+^\z1$+ contains=@perlInterpSQ fold syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*""+ end=+^$+ contains=@perlInterpDQ,perlNotEmptyLine fold syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*''+ end=+^$+ contains=@perlInterpSQ,perlNotEmptyLine fold else syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\z(\I\i*\)+ end=+^\z1$+ contains=@perlInterpDQ syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*"\z(\S\+\)"+ end=+^\z1$+ contains=@perlInterpDQ syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*'\z(\S\+\)'+ end=+^\z1$+ contains=@perlInterpSQ syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*""+ end=+^$+ contains=@perlInterpDQ,perlNotEmptyLine syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*''+ end=+^$+ contains=@perlInterpSQ,perlNotEmptyLine endifelse syn match perlUntilEOFstart "<<EOF.*" nextgroup=perlUntilEOFDQ skipnl transparent syn match perlUntilEOFstart "<<\s*\"EOF\".*" nextgroup=perlUntilEOFDQ skipnl transparent syn match perlUntilEOFstart "<<\s*'EOF'.*" nextgroup=perlUntilEOFSQ skipnl transparent syn match perlUntilEOFstart "<<\s*\"\".*" nextgroup=perlUntilEmptyDQ skipnl transparent syn match perlUntilEOFstart "<<\s*''.*" nextgroup=perlUntilEmptySQ skipnl transparent syn region perlUntilEOFDQ matchgroup=perlStringStartEnd start=++ end="^EOF$" contains=@perlInterpDQ contained syn region perlUntilEOFSQ matchgroup=perlStringStartEnd start=++ end="^EOF$" contains=@perlInterpSQ contained syn region perlUntilEmptySQ matchgroup=perlStringStartEnd start=++ end="^$" contains=@perlInterpDQ,perlNotEmptyLine contained syn region perlUntilEmptyDQ matchgroup=perlStringStartEnd start=++ end="^$" contains=@perlInterpSQ,perlNotEmptyLine containedendif" Class declarations"syn match perlPackageDecl "^\s*package\s\+\S\+" contains=perlStatementPackagesyn keyword perlStatementPackage package contained" Functions" sub [name] [(prototype)] {"syn region perlFunction start="\s*sub\>" end="[;{]"he=e-1 contains=perlStatementSub,perlFunctionPrototype,perlFunctionPRef,perlFunctionName,perlCommentsyn keyword perlStatementSub sub containedsyn match perlFunctionPrototype "([^)]*)" containedif exists("perl_want_scope_in_variables") syn match perlFunctionPRef "\h\w*::" contained syn match perlFunctionName "\h\w*[^:]" containedelse syn match perlFunctionName "\h[[:alnum:]_:]*" containedendif" All other # are comments, except ^#!syn match perlComment "#.*" contains=perlTodosyn match perlSharpBang "^#!.*"" Formatssyn region perlFormat matchgroup=perlStatementIOFunc start="^\s*format\s\+\k\+\s*=\s*$"rs=s+6 end="^\s*\.\s*$" contains=perlFormatName,perlFormatField,perlVarPlainsyn match perlFormatName "format\s\+\k\+\s*="lc=7,me=e-1 containedsyn match perlFormatField "[@^][|<>~]\+\(\.\.\.\)\=" containedsyn match perlFormatField "[@^]#[#.]*" containedsyn match perlFormatField "@\*" containedsyn match perlFormatField "@[^A-Za-z_|<>~#*]"me=e-1 containedsyn match perlFormatField "@$" contained" __END__ and __DATA__ clausesif exists("perl_fold") syntax region perlDATA start="^__\(DATA\|END\)__$" skip="." end="." contains=perlPOD foldelse syntax region perlDATA start="^__\(DATA\|END\)__$" skip="." end="." contains=perlPODendif"" Foldingif exists("perl_fold") syn region perlPackageFold start="^package \S\+;$" end="^1;$" transparent fold keepend syn region perlSubFold start="^\z(\s*\)sub\>.*[^};]$" end="^\z1}\s*$" transparent fold syn region perlBEGINENDFold start="^\z(\s*\)BEGIN\>.*[^};]$" end="^\z1}\s*$" transparent fold syn sync fromstart setlocal foldmethod=syntaxendifif version >= 508 || !exists("did_perl_syn_inits") if version < 508 let did_perl_syn_inits = 1 command -nargs=+ HiLink hi link <args> else command -nargs=+ HiLink hi def link <args> endif " The default highlighting. HiLink perlSharpBang PreProc HiLink perlControl PreProc HiLink perlInclude Include HiLink perlSpecial Special HiLink perlString String HiLink perlCharacter Character HiLink perlNumber Number HiLink perlType Type HiLink perlIdentifier Identifier HiLink perlLabel Label HiLink perlStatement Statement HiLink perlConditional Conditional HiLink perlRepeat Repeat HiLink perlOperator Operator HiLink perlFunction Function HiLink perlFunctionPrototype perlFunction HiLink perlComment Comment HiLink perlTodo Todo if exists("perl_string_as_statement") HiLink perlStringStartEnd perlStatement else HiLink perlStringStartEnd perlString endif HiLink perlList perlStatement HiLink perlMisc perlStatement HiLink perlVarPlain perlIdentifier HiLink perlFiledescRead perlIdentifier HiLink perlFiledescStatement perlIdentifier HiLink perlVarSimpleMember perlIdentifier HiLink perlVarSimpleMemberName perlString HiLink perlVarNotInMatches perlIdentifier HiLink perlVarSlash perlIdentifier HiLink perlQQ perlString if version >= 600 HiLink perlHereDoc perlString else HiLink perlUntilEOFStart perlStringStartEnd HiLink perlUntilEOFDQ perlString HiLink perlUntilEOFSQ perlString HiLink perlUntilEmptyDQ perlString HiLink perlUntilEmptySQ perlString HiLink perlUntilEOF perlString endif HiLink perlStringUnexpanded perlString HiLink perlSubstitutionSQ perlString HiLink perlSubstitutionDQ perlString HiLink perlSubstitutionSlash perlString HiLink perlSubstitutionHash perlString HiLink perlSubstitutionBracket perlString HiLink perlSubstitutionCurly perlString HiLink perlSubstitutionPling perlString HiLink perlTranslationSlash perlString HiLink perlTranslationHash perlString HiLink perlTranslationBracket perlString HiLink perlTranslationCurly perlString HiLink perlMatch perlString HiLink perlMatchStartEnd perlStatement HiLink perlFormatName perlIdentifier HiLink perlFormatField perlString HiLink perlPackageDecl perlType HiLink perlStorageClass perlType HiLink perlPackageRef perlType HiLink perlStatementPackage perlStatement HiLink perlStatementSub perlStatement HiLink perlStatementStorage perlStatement HiLink perlStatementControl perlStatement HiLink perlStatementScalar perlStatement HiLink perlStatementRegexp perlStatement HiLink perlStatementNumeric perlStatement HiLink perlStatementList perlStatement HiLink perlStatementHash perlStatement HiLink perlStatementIOfunc perlStatement HiLink perlStatementFiledesc perlStatement HiLink perlStatementVector perlStatement HiLink perlStatementFiles perlStatement HiLink perlStatementFlow perlStatement HiLink perlStatementScope perlStatement HiLink perlStatementInclude perlStatement HiLink perlStatementProc perlStatement HiLink perlStatementSocket perlStatement HiLink perlStatementIPC perlStatement HiLink perlStatementNetwork perlStatement HiLink perlStatementPword perlStatement HiLink perlStatementTime perlStatement HiLink perlStatementMisc perlStatement HiLink perlFunctionName perlIdentifier HiLink perlFunctionPRef perlType HiLink perlPOD perlComment HiLink perlShellCommand perlString HiLink perlSpecialAscii perlSpecial HiLink perlSpecialDollar perlSpecial HiLink perlSpecialString perlSpecial HiLink perlSpecialStringU perlSpecial HiLink perlSpecialMatch perlSpecial HiLink perlSpecialBEOM perlSpecial HiLink perlDATA perlComment HiLink perlBrackets Error " Possible errors HiLink perlNotEmptyLine Error HiLink perlElseIfError Error delcommand HiLinkendif" Syncing to speed up processing"if !exists("perl_no_sync_on_sub") syn sync match perlSync grouphere NONE "^\s*package\s" syn sync match perlSync grouphere perlFunction "^\s*sub\s" syn sync match perlSync grouphere NONE "^}"endifif !exists("perl_no_sync_on_global_var") syn sync match perlSync grouphere NONE "^$\I[[:alnum:]_:]+\s*=\s*{" syn sync match perlSync grouphere NONE "^[@%]\I[[:alnum:]_:]+\s*=\s*("endifif exists("perl_sync_dist") execute "syn sync maxlines=" . perl_sync_distelse syn sync maxlines=100endifsyn sync match perlSyncPOD grouphere perlPOD "^=pod"syn sync match perlSyncPOD grouphere perlPOD "^=head"syn sync match perlSyncPOD grouphere perlPOD "^=item"syn sync match perlSyncPOD grouphere NONE "^=cut"let b:current_syntax = "perl"" vim: ts=8
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -