vim-gnupg/plugin/gnupg.vim
James McCoy 6219a5a0d7
Use proper pattern for g:GPGFilePattern
Per |file-pattern|, autocmds use glob-like syntax for patterns, not
regular expressions.

Signed-off-by: James McCoy <jamessan@jamessan.com>
2019-05-30 21:56:08 -04:00

72 lines
2.6 KiB
VimL

" Name: gnupg.vim
" Last Change: 2019 May 30
" Maintainer: James McCoy <jamessan@jamessan.com>
" Original Author: Markus Braun <markus.braun@krawel.de>
" 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 <silent> Plugin.GnuPG.View\ Recipients :GPGViewRecipients<CR>
amenu <silent> Plugin.GnuPG.Edit\ Recipients :GPGEditRecipients<CR>
amenu <silent> Plugin.GnuPG.View\ Options :GPGViewOptions<CR>
amenu <silent> Plugin.GnuPG.Edit\ Options :GPGEditOptions<CR>
endif
" vim600: set foldmethod=marker foldlevel=0 :