• puppet完全攻略(二)让puppet代码支持vim高亮显示


    puppet完全攻略(二)让puppet代码支持vim高亮显示
    2012-06-10 13:33:01
    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://viong.blog.51cto.com/844766/894381
    puppet的pp配置文件还没有被vim支持,编辑时候黑底白字,不容易排错,看起来也不好分辨,须做进一步修改才能完美显示
     
    须在用户根目录下的.vim里面添加2个文件,具体如下:
     
    1 vim目录下创建syntax/puppet.vim:
    #mkdir ~/.vim
    #cd ~/.vim
    #mkdir syntax
    #vim syntax/puppet.vim
     
    添加以下内容:
    ========================================================================
    " puppet syntax file
    " Filename: puppet.vim
    " Language: puppet configuration file
    " Maintainer: Dongwm<ciici1234@hotmail.com>
    " URL:
    " Last Change:
    " Version:
    "

    " Copied from the cfengine, ruby, and perl syntax files
    " For version 5.x: Clear all syntax items
    " For version 6.x: Quit when a syntax file was already loaded
    if version < 600
    syntax clear
    elseif exists("b:current_syntax")
    finish
    endif

    syn region puppetDefine start="^s*(class|define|site|node)" end="{" contains=puppetDefType,puppetDefName,puppetDefArguments
    syn keyword puppetDefType class define site node inherits contained
    syn keyword puppetInherits inherits contained
    syn region puppetDefArguments start="(" end=")" contains=puppetArgument
    syn match puppetArgument "w+" contained
    syn match puppetArgument "$w+" contained
    syn match puppetArgument "'[^']+'" contained
    syn match puppetArgument '"[^"]+"' contained
    syn match puppetDefName "w+" contained

    syn match puppetInstance "w+s*{" contains=puppetTypeBrace,puppetTypeName,puppetTypeDefault
    syn match puppetTypeBrace "{" contained
    syn match puppetTypeName "[a-z]w*" contained
    syn match puppetTypeDefault "[A-Z]w*" contained

    syn match puppetParam "w+s*=>" contains=puppetTypeRArrow,puppetParamName
    syn match puppetParamRArrow "=>" contained
    syn match puppetParamName "w+" contained
    syn match puppetVariable "$w+"
    syn match puppetVariable "${w+}"
    syn match puppetParen "("
    syn match puppetParen ")"
    syn match puppetBrace "{"
    syn match puppetBrace "}"

    syn region puppetString start=+"+ skip=+\\|\"+ end=+"+ contains=puppetVariable

    syn keyword puppetBoolean true false
    syn keyword puppetKeyword import inherits include
    syn keyword puppetControl case default

    " comments last overriding everything else
    syn match puppetComment "s*#.*$" contains=puppetTodo
    syn keyword puppetTodo TODO NOTE FIXME XXX contained

    " 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 yet
    if version >= 508 || !exists("did_puppet_syn_inits")
    if version < 508
    let did_puppet_syn_inits = 1
    command -nargs=+ HiLink hi link <args>
    else
    command -nargs=+ HiLink hi def link <args>
    endif

    HiLink puppetVariable Identifier
    HiLink puppetBoolean Boolean
    HiLink puppetType Identifier
    HiLink puppetDefault Identifier
    HiLink puppetKeyword Define
    HiLink puppetTypeDefs Define
    HiLink puppetComment Comment
    HiLink puppetString String
    HiLink puppetTodo Todo
    " HiLink puppetBrace Delimiter
    " HiLink puppetTypeBrace Delimiter
    " HiLink puppetParen Delimiter
    HiLink puppetDelimiter Delimiter
    HiLink puppetControl Statement
    HiLink puppetDefType Define
    HiLink puppetDefName Type
    HiLink puppetTypeName Statement
    HiLink puppetTypeDefault Type
    HiLink puppetParamName Identifier
    HiLink puppetArgument Identifier

    delcommand HiLink
    endif

    let b:current_syntax = "puppet"
    ========================================================================
    2. vim目录下创建ftdetect/puppet.vim
    #mkdir ftdetect
    vim ftdetect/puppet.vim
     
    添加以下内容:
     
    ========================================================================
    au BufRead,BufNewFile *.pp setfiletype puppet
     
    ========================================================================
     
    效果演示:
     
    [root@viong]# vim /etc/puppet/manifests/site.pp
     

    参考文档:http://www.dongwm.com/archives/rangpuppetdaimazhichivimgaoliangxianshi/

  • 相关阅读:
    NOIP 2012 T5 借教室 [洛谷P1083]
    POJ2437 Muddy roads
    POJ2288 Islands and Bridges
    洛谷P2014 TYVJ1051 选课
    POJ1741 Tree
    CODEVS1995 || TYVJ1863 黑魔法师之门
    TYVJ1939 玉蟾宫
    TYVJ1305 最大子序和
    POJ1737 Connected Graph
    TYVJ1864 守卫者的挑战
  • 原文地址:https://www.cnblogs.com/L-H-R-X-hehe/p/3992966.html
Copyright © 2020-2023  润新知