Created
June 19, 2015 00:17
-
-
Save mrash/0f12560983a8c2888c5f to your computer and use it in GitHub Desktop.
Transparent gpg encryption / decryption with vim (.vimrc hack) - provides a simple command-line alternative to password managers like LastPass
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
" 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 --default-recipient-self -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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment