[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Inline text editor?



Christopher Swingley wrote:
> How about this in your ~/.vimrc:
> 
>     " Attempt to do the right thing for *,.gpg files
>     augroup GPG
>       au!
>       au BufReadPre *.gpg       :set noswapfile
>       au BufReadPost *.gpg      :%!gpg --decrypt -q 2> /dev/null
>       au BufWritePre *.gpg      :%!gpg -e -q --yes
>       au BufWritePost *.gpg     u
>     augroup END    
> 
> This particular group of settings will only happen when the file being 
> edited has a *.gpg extension.

Here is a perhaps slightly better one:

" 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
augroup END

-- 
see shy jo



Reply to: