现代浏览器有一个叫做“隐私模式”或“隐身模式”的功能。我正在尝试用vim做同样的事情,即以不留下任何活动痕迹的方式运行它。这样我就可以使用vim打开一个包含存储在加密卷中的敏感信息的文件,而不必担心任何信息会泄露。
以下是我到目前为止所做的:
alias vim_private="vim -i NONE --cmd 'set noswapfile' --cmd 'set nobackup'"
我在我的. bashrc.理由中提到了这一点:
-i NONE
,以便不会通过.viminfo泄漏文件名或寄存器内容--cmd 'set noswapfile'
用于防止创建交换文件--cmd 'set nobackup'
(无备份文件)
还有什么我遗漏的吗?vim还有其他泄露信息的方式吗?
2条答案
按热度按时间lxkprmvk1#
您的设置看起来很好。我不确定当您以
vi
的形式调用Vim时是否会加载插件,但一些插件(例如提供MRU功能的插件)也会存储信息(通常在~/.vim...
文件中)。可以通过--noplugin
避免加载它们。此外,对于偏执狂,
$VIMINIT
,:set exrc
和:set modeline
可能导致执行Vimscript代码;这可以(重新)启用隐私相关选项。qxgroojn2#
OP提供的别名将不起作用,这取决于你在vimrc文件中的命令。这是因为
--cmd
在你的vimrc文件加载之前运行命令,所以你的vimrc文件可能会覆盖这些值。相反,你可以使用-c
,它是相同的,除了在你的vimrc文件加载之后执行。由于在你的vimrc中有很多选项可能会泄漏数据,所以最好使用不同的方法。
使用vim,默认vimrc文件
就像上面建议的那样,另一种方法是使用别名来加载带有默认rc文件的vim:
我们可以将bash变量
HISTCONTROL
设置为ignorespace
选项,这样任何以空格为前缀的命令都不会保存到bash历史文件中。在zsh中,使用setopt HIST_IGNORE_SPACE
。使用您自己的vimrc文件加载vim
如果你仍然想加载你的vimrc,一个更灵活的选择是传递一个自定义变量
g:PrivateMode
到vim,你可以使用它来配置你的vimrc文件。然后在你的vimrc使用
你需要检查一下vimrc文件,看看是否有任何命令、插件等最终可能泄漏数据并在私有模式下禁用它们。