From e5dfb045b994e1ab8fef9ef5d3f02ce20ea6b685 Mon Sep 17 00:00:00 2001 From: Ryan Kavanagh Date: Mon, 13 Dec 2021 16:55:42 -0500 Subject: many more renames --- dot_vim/ftplugin/gpg.vim | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 dot_vim/ftplugin/gpg.vim (limited to 'dot_vim/ftplugin/gpg.vim') diff --git a/dot_vim/ftplugin/gpg.vim b/dot_vim/ftplugin/gpg.vim new file mode 100644 index 0000000..20f641f --- /dev/null +++ b/dot_vim/ftplugin/gpg.vim @@ -0,0 +1,33 @@ +" Transparent editing of gpg encrypted files. +" By Wouter Hanegraaff +augroup encrypted +au! +" First make sure nothing is written to ~/.viminfo while editing +" an encrypted file. +autocmd BufReadPre,FileReadPre *.gpg set viminfo= +" We don't want a swap file, as it writes unencrypted data to disk +autocmd BufReadPre,FileReadPre *.gpg set noswapfile +" Switch to binary mode to read the encrypted file +autocmd BufReadPre,FileReadPre *.gpg set bin +autocmd BufReadPre,FileReadPre *.gpg let ch_save = &ch|set ch=2 +autocmd BufReadPre,FileReadPre *.gpg let shsave=&sh +autocmd BufReadPre,FileReadPre *.gpg let &sh='sh' +autocmd BufReadPre,FileReadPre *.gpg let ch_save = &ch|set ch=2 +autocmd BufReadPost,FileReadPost *.gpg '[,']!gpg --decrypt --default-recipient-self 2> /dev/null +autocmd BufReadPost,FileReadPost *.gpg let &sh=shsave +" Switch to normal mode for editing +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") +" Convert all text to encrypted text before writing +autocmd BufWritePre,FileWritePre *.gpg set bin +autocmd BufWritePre,FileWritePre *.gpg let shsave=&sh +autocmd BufWritePre,FileWritePre *.gpg let &sh='sh' +autocmd BufWritePre,FileWritePre *.gpg '[,']!gpg --encrypt --default-recipient-self 2>/dev/null +autocmd BufWritePre,FileWritePre *.gpg let &sh=shsave +" Undo the encryption so we are back in the normal text, directly +" after the file has been written. +autocmd BufWritePost,FileWritePost *.gpg silent u +autocmd BufWritePost,FileWritePost *.gpg set nobin +augroup END + -- cgit v1.2.3