要增加这个stackoverflow问题,应该在.vimrc中添加些什么以确保“私人编辑”某些文件扩展名(例如.gpg文件)。

在不影响会话效率的情况下,不应该保存任何有关已完成工作的信息,包括寄存器,搜索历史,命令历史,视图,交换等。对于gpg文件,可以使用此vim插件,但是除了编辑插件外,如何将这些讨论的思想扩展到任意文件类型?

我们可能会使用以下命令,

if <ft in privacy_ext_list>
  set noswapfile
  set noundofile
  set viminfo=
endif 


,但是除了适当的条件语句外,还有什么遗漏?

此外,Vimscript是否有办法制作文件扩展名数组,然后评估当前文件类型是否在该数组中?

评论

@Carpetsmoker我认为这个问题更广泛。作者不仅在询问如何在特定文件类型的缓冲区中设置参数,而且在一定程度上还需要设置哪些参数以确保隐私。这当然不是很明显,也不是集中在一起,所以我认为这是一个很好的问题。

#1 楼

如果您想防止敏感文件外泄,请参阅此处的完整设置列表。

set nobackup
set nowritebackup
set noundofile
set noswapfile
set viminfo=""
set noshelltemp
set history=0
set nomodeline
set secure


我建议您创建一个新的配置文件当您要编辑敏感文件时,调用.vimrc并使用.vimrc_secure运行Vim(或创建脚本/别名)。这样可以最大程度地减少恶意插件或错误功能的风险。

评论


从某种意义上说,我喜欢.vimrc_secure独立于.vimrc(就像您所说的那样,然后允许用户:e私人文件[因此也将文件保留在shell历史之外)),但是使用vim -u 〜/ .vimrc-incognito根本不会源〜/ .vimrc,对吗?享受私密性不应以降低舒适度为代价(除非舒适度从根本上是通过恶意插件或错误功能破坏的)。虽然应该强调未知风险,但是,肯定有某种方法可以有条件地包装您的解决方案...

– HAL 9001
2015年2月19日在17:47



我不建议使用单独的vimrc文件,原因很简单,因为它很容易忘记。像这样的autocmd:au BufRead * if&key!=“” | setlocal nobackup noundofile ... | endif应该为您做魔术,这是不可能忘记的。

–马丁·图尔诺伊(Martin Tournoij)
2015年2月25日在16:52



@ Carpetsmoker,&l:cm!=“”到底是什么?

–通配符
16年1月20日在21:22

@Wildcard Ehm ....看起来像我想要的&cryptmethod,指的是该设置。 l:部分是一个错误(我使用了特殊的mod功能来编辑我的评论)。感谢您指出了这一点!

–马丁·图尔诺伊(Martin Tournoij)
16年1月20日在22:24



@Carpetsmoker,能否请您详细说明一下?我在这里创建了一个线程:vi.stackexchange.com/questions/6195/…

– Mateusz Piotrowski
16年1月20日在22:50