zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    鸿蒙轻内核M核源码分析:数据结构之任务就绪队列
    Elasticsearch数据库优化实战:让你的ES飞起来
    还不会使用分布式锁?教你三种分布式锁实现的方式
    云小课 | 大数据融合分析:GaussDW(DWS)轻松导入MRS-Hive数据源
    JavaScript 空间坐标
    HttpWatch网络抓包工具的使用
    安卓Fragment和Activity之间的数据通讯
    Android MVP模式
    Android从服务端获取json解析显示在客户端上面
    JavaWeb网上商城的反思
  • 原文地址:https://www.cnblogs.com/L-H-R-X-hehe/p/3992966.html
Copyright © 2011-2022 走看看