【问题标题】:How to start vim in "private mode"如何以“私人模式”启动vim
【发布时间】:2013-03-31 11:58:31
【问题描述】:

现代浏览器有一个称为“私人模式”或“隐身模式”的功能。我正在尝试用 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 是否还有其他方式可以泄露信息?

【问题讨论】:

  • 我相信你很好:-i -NONEcompatible 模式启动,所以你应该没有历史记录或 viminfo。
  • 当然,您也可以添加-u NONE -U NONE。您是否还要求 Vim 访问的文件保留所有上次访问/修改日期?
  • 当您直接在终端中错误地输入密码/密码并想要清理$HISTFILE 而不将敏感数据移动到.viminfo 时非常有用。顺便说一句,这是vim可以存储跟踪的唯一地方(加上swp文件)吗?
  • 别名建议:vimcognito.

标签: vim privacy


【解决方案1】:

您的设置看起来不错。我不确定当您以vi 调用 Vim 时是否会加载插件,但一些插件(例如提供 MRU 功能)也会存储信息(通常在 ~/.vim... 文件中)。可以通过--noplugin 避免它们的负载。

另外,对于偏执狂来说,$VIMINIT:set exrc:set modeline 会导致 Vimscript 代码被执行;这可以(重新)启用与隐私相关的选项。

【讨论】:

  • 那么完整的锡箔帽模式是什么?添加 --noplugin,清除 $VIMINIT,以及 :set noexrc 和 :set nomodeline ?
  • @tuxayo:“完整的锡箔纸”将编译他自己的精简版 Vim(vi?),它不读取任何 RC 文件,并且还有 :!system() 和相关命令已禁用。
  • 我在 vim 8.1 中测试过,当我使用 -u DEFAULTS -U DEFAULTS 使用默认 vim 设置而没有用户文件时,$VIMINIT 无效。 noexrc & nobackup 是默认值。因此,不需要:set noexrc 和清除$VIMINIT。我想只需在上面添加一个额外的--cmd 'set nomodeline'。我的版本是vim -i NONE -u DEFAULTS -U DEFAULTS -n -c 'set nomodeline'-c == --cmd-n 没有交换文件;-u DEFAULTS 也不会加载插件)
猜你喜欢
  • 2019-06-25
  • 2013-02-07
  • 1970-01-01
  • 1970-01-01
  • 2013-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多