NVIM 文件加密编辑

在NVIM上模拟vim的加密文件编辑方案。[1]

前言

安全与便利是一个矛盾的存在,如何平衡随实际应用而变。NVIM又由于本身的设计逻辑,抛弃了对加密 的支持。[1:1]

VIM中的文件加密编辑功能刚刚好满足需求,习惯了后再转到NVIM就有比较强烈的愿望能有一样的功能, 至少差不多。最终不失所望,在NVIM的Issue上找到了方案。[1:2]

方法

  1. 安装ccrypt,[2]配置好环境变量
  2. 配置NVIM[1:3]
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    augroup CPT
    au!
    au BufReadPre *.cpt set bin
    au BufReadPre *.cpt set viminfo=
    au BufReadPre *.cpt set noswapfile
    au BufReadPost *.cpt let $vimpass = inputsecret("Password: ")
    au BufReadPost *.cpt silent '[,']!ccrypt -cb -E vimpass
    au BufReadPost *.cpt set nobin
    au BufWritePre *.cpt set bin
    au BufWritePre *.cpt '[,']!ccrypt -e -E vimpass
    au BufWritePost *.cpt u
    au BufWritePost *.cpt set nobin
    augroup END
  3. 把需要加密的文件命名为.cpt结尾就好了

这种方式加密的文件与VIM加密的算法不兼容。即用VIM打开的话,是解密不了的。


  1. https://github.com/neovim/neovim/issues/701 ↩︎ ↩︎ ↩︎ ↩︎

  2. https://ccrypt.sourceforge.net/ ↩︎