if has("autocmd") " Support editing of gpg-encrypted files augroup gnupg " Remove all gnupg autocommands au! " Enable editing of gpg-encrypted files " read: set binary mode before reading the file " decrypt text in buffer after reading " write: encrypt file after writing " append: decrypt file, append, encrypt file autocmd BufReadPre,FileReadPre *.gpg set bin autocmd BufReadPre,FileReadPre *.gpg let ch_save = &ch|set ch=2 " autocmd BufReadPost,FileReadPost *.gpg '[,']!gpg -q -d 2>/dev/null autocmd BufReadPost,FileReadPost *.gpg '[,']!gpg -q -d autocmd BufReadPost,FileReadPost *.gpg set nobin autocmd BufReadPost,FileReadPost *.gpg let &ch = ch_save|unlet ch_save autocmd BufReadPost,FileReadPost *.gpg execute ":doautocmd BufReadPost " . expand("%:r") autocmd BufWritePost,FileWritePost *.gpg !mv :r autocmd BufWritePost,FileWritePost *.gpg !gpg --default-recipient-self -e :r autocmd BufWritePost,FileWritePost *.gpg !rm :r " autocmd FileAppendPre *.gpg !gpg -q -d 2>/dev/null autocmd FileAppendPre *.gpg !gpg -q -d autocmd FileAppendPre *.gpg !mv :r autocmd FileAppendPost *.gpg !mv :r autocmd FileAppendPost *.gpg !gpg --default-recipient-self -e :r autocmd FileAppendPost *.gpg !rm :r " Same as above, but for ASCII-armored files "autocmd BufRead *.asc GiFULLDATE autocmd BufReadPre,FileReadPre *.asc set bin autocmd BufReadPre,FileReadPre *.asc let ch_save = &ch|set ch=2 " autocmd BufReadPost,FileReadPost *.asc '[,']!gpg -q -d 2>/dev/null autocmd BufReadPost,FileReadPost *.asc '[,']!gpg -q -d autocmd BufReadPost,FileReadPost *.asc set nobin autocmd BufReadPost,FileReadPost *.asc let &ch = ch_save|unlet ch_save autocmd BufReadPost,FileReadPost *.asc execute ":doautocmd BufReadPost " . expand("%:r") autocmd BufWritePost,FileWritePost *.asc !mv :r autocmd BufWritePost,FileWritePost *.asc !gpg --default-recipient-self -a -e :r autocmd BufWritePost,FileWritePost *.asc !rm :r " autocmd FileAppendPre *.asc !gpg -q -d 2>/dev/null autocmd FileAppendPre *.asc !gpg -q -d autocmd FileAppendPre *.asc !mv :r autocmd FileAppendPost *.asc !mv :r autocmd FileAppendPost *.asc !gpg --default-recipient-self -a -e :r autocmd FileAppendPost *.asc !rm :r augroup END endif