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

简介:
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/




    本文转自viong 51CTO博客,原文链接:http://blog.51cto.com/viong/894381,如需转载请自行联系原作者





相关文章
|
6月前
|
机器学习/深度学习 开发工具
帅气的代码编辑方式——Vim编辑器
帅气的代码编辑方式——Vim编辑器
|
9月前
|
开发工具
vim对整个文档的代码进行快速排版
vim对整个文档的代码进行快速排版
123 0
|
IDE 程序员 Linux
快速搭建vim代码环境
快速搭建vim代码环境,降低对vim使用门槛
269 1
快速搭建vim代码环境
|
开发工具 Android开发
粘贴到vi/vim的代码,怎样避免向右不断缩进,保持原来的格式?解决vi/vim在粘贴中会在行首多很多缩进和空格的问题。
SecureCRT会将你原来的文本原封不动的按照字符串的样式发送给服务器。所以当你的服务器上的vi/vim设置为autoindent的话,在 i 模式下,那么它会将SecureCRT传输而来的这些字符串再进行一下缩进。
1719 0
|
开发工具 Python
代码缺少一块?在vim里面使用tab进行代码补全
前言Pydiction 允许你在 Vim 中实现 TAB 代码补全, 可以补全的内容包括:标准的、自定义的,以及第三方模块和包。外加关键字、BIFs,和字符串。 Pydiction 由 3 个主要文件构成: python_pydiction.vim -- 该文件为 Vim 的 plugin 文件,实现 Python 文件的 TAB 补全功能。
1185 0
|
Web App开发 Java Go
vim设置一键执行python代码
根据系统将下面代码复制到vim配置文件vimrc中,即可在vim中一键【F5】运行.py文件。 Windows下的gvim "一键运行代码 function CheckPythonSyntax() let mp = &makeprg let ef = ...
2576 0
|
Linux 开发工具 git
VIM 配置及内核代码编译
配置文本编辑器 VIM 来提高在LInux环境下C++的开发体验
4927 0