From 0f232f55b9a1ee127c7f750c5d1e22ca9aba2c07 Mon Sep 17 00:00:00 2001 From: Hunter Haugen Date: Mon, 24 Jun 2013 17:29:48 -0700 Subject: [PATCH] Add binary plist support --- .vimrc | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/.vimrc b/.vimrc index c14c050..5288c52 100644 --- a/.vimrc +++ b/.vimrc @@ -559,6 +559,35 @@ if has("autocmd") catch endtry augroup END + augroup plist + autocmd BufReadPre,FileReadPre *.plist set binary + fun MyBinaryPlistReadPost() + if getline("'[") =~ "^bplist" + '[,']!plutil -convert xml1 /dev/stdin -o /dev/stdout + let b:saveAsBinaryPlist = 1 + endif + set nobinary + filetype detect + endfun + autocmd BufReadPost *.plist call MyBinaryPlistReadPost() + autocmd FileReadPost *.plist call MyBinaryPlistReadPost() | let b:saveAsBinaryPlist = 0 + + fun MyBinaryPlistWritePre() + if exists("b:saveAsBinaryPlist") && b:saveAsBinaryPlist + set binary + silent '[,']!plutil -convert binary1 /dev/stdin -o /dev/stdout + if v:shell_error | undo | set nobinary | endif + endif + endfun + autocmd BufWritePre,FileWritePre *.plist call MyBinaryPlistWritePre() + fun MyBinaryPlistWritePost() + if exists("b:saveAsBinaryPlist") && b:saveAsBinaryPlist && !v:shell_error + undo + set nobinary + endif + endfun + autocmd BufWritePost,FileWritePost *.plist call MyBinaryPlistWritePost() + augroup END endif