在Vim中,如何对特定文件名进行自动访问

时间:2017-09-22 15:54:08

标签: vim

我正在使用Vim来加密文件。

在我的.vimrc中我有:

set viminfo='0,\"0,\/0,:0,f0
setlocal cryptmethod=blowfish

AFAIK第一行告诉Vim不要在.viminfo上保存信息,这样就不会保存要加密的文件。

问题是这会删除所有文件的所有viminfo好功能

我正在寻找类似的东西:

autocmd «ThisExactFileNameKeyword» thefileiwanttoencrypt set viminfo='0,\"0,\/0,:0,f0

Vim是否提供了放置«ThisExactFileNameKeyword»?

的命令

修改 Ingo Karkat的解决方案就像魅力一样

autocmd VimEnter * if ! empty(&l:key) | set viminfo='0,\"0,\/0,:0,f0 | echomsg "Adapted for encrypted editing" | endif

我只需将加密方法从 blowfish 更改为 blowfish2 ,以消除弱方法的警告。

1 个答案:

答案 0 :(得分:4)

当您阅读:help 'viminfo'时,您会发现这是全局选项。因此,它的内容总是适用于整个Vim会话。

为了区分正常编辑和编辑加密文件之间的设置,您必须使用单独的Vim会话来编辑加密文件

您可以在~/.vimrc中查看此内容,并相应地调整'viminfo'设置(以及其他设置)。例如:

if argc() == 1 && argv(0) ==# 'thefileiwanttoencrypt'
    set viminfo=...
endif

或任何加密文件:

autocmd VimEnter * if ! empty(&l:key) | set viminfo=... | echomsg "Adapted for encrypted editing" | endif