" Name: gnupg.vim " Last Change: 2019 Feb 23 " Maintainer: James McCoy " Original Author: Markus Braun " Summary: Vim plugin for transparent editing of gpg encrypted files. " License: This program is free software; you can redistribute it and/or " modify it under the terms of the GNU General Public License " as published by the Free Software Foundation; either version " 2 of the License, or (at your option) any later version. " See http://www.gnu.org/copyleft/gpl-2.0.txt " " Section: Plugin header {{{1 " guard against multiple loads {{{2 if (exists("g:loaded_gnupg") || &cp || exists("#GnuPG")) finish endif let g:loaded_gnupg = '2.7.0-dev' " check for correct vim version {{{2 if (v:version < 702) echohl ErrorMsg | echo 'plugin gnupg.vim requires Vim version >= 7.2' | echohl None finish endif " Section: Autocmd setup {{{1 if (!exists("g:GPGFilePattern")) let g:GPGFilePattern = '*.\(gpg\|asc\|pgp\)' endif augroup GnuPG autocmd! " do the decryption exe "autocmd BufReadCmd " . g:GPGFilePattern . " call gnupg#init(1) |" . \ " call gnupg#decrypt(1)" exe "autocmd FileReadCmd " . g:GPGFilePattern . " call gnupg#init(0) |" . \ " call gnupg#decrypt(0)" " convert all text to encrypted text before writing " We check for GPGCorrespondingTo to avoid triggering on writes in GPG Options/Recipient windows exe "autocmd BufWriteCmd,FileWriteCmd " . g:GPGFilePattern . " if !exists('b:GPGCorrespondingTo') |" . \ " call gnupg#init(0) |" . \ " call gnupg#encrypt() |" . \ " endif" augroup END " Section: Highlight setup {{{1 highlight default link GPGWarning WarningMsg highlight default link GPGError ErrorMsg highlight default link GPGHighlightUnknownRecipient ErrorMsg " Section: Commands {{{1 command! GPGViewRecipients call gnupg#view_recipients() command! GPGEditRecipients call gnupg#edit_recipients() command! GPGViewOptions call gnupg#view_options() command! GPGEditOptions call gnupg#edit_options() " Section: Menu {{{1 if (has("menu")) amenu Plugin.GnuPG.View\ Recipients :GPGViewRecipients amenu Plugin.GnuPG.Edit\ Recipients :GPGEditRecipients amenu Plugin.GnuPG.View\ Options :GPGViewOptions amenu Plugin.GnuPG.Edit\ Options :GPGEditOptions endif " vim600: set foldmethod=marker foldlevel=0 :