Gpg/vimconfig

From Linuxwiki
Revision as of 20:12, 7 March 2019 by Sunflower (talk | contribs) (Created page with " " transparent editing of gpg encrypted files. " By Wouter Hanegraaff <wouter@blub.net> augroup encrypted au! " First make sure nothing is written to ~/.viminfo w...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
" transparent editing of gpg encrypted files.
" By Wouter Hanegraaff <wouter@blub.net>
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 BufReadPost,FileReadPost    *.gpg '[,']!gpg --decrypt 2> /dev/null
   " 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   '[,']!gpg -ae 2>/dev/null
   " Undo the encryption so we are back in the normal text, directly
   " after the file has been written.
   autocmd BufWritePost,FileWritePost    *.gpg   u
augroup END