防止Vim记录某些文件类型的事件


12

为了增加这个stackoverflow问题,应该输入哪些内容.vimrc来确保“私人编辑”某些文件扩展名(例如.gpg文件)。

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

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

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

但是除了适当的条件语句之外,还缺少什么?

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


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

Answers:


6

.vimrc如果您想防止敏感文件泄漏,则此处是应添加到您的设置的完整列表。

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

我建议您创建一个新的配置文件,.vimrc_securevim -u ~/.vimrc_secure在想要编辑敏感文件时使用(或创建脚本/别名)运行Vim 。这将最大程度地减少恶意插件或错误功能的风险。


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

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

@Carpetsmoker,这是怎么回事&l:cm != ""
通配符

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

@Carpetsmoker,能否请您详细说明一下?:我创建了一个线程在这里vi.stackexchange.com/questions/6195/...
Mateusz Piotrowski的
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.