如何在vim中模糊文本

时间:2014-05-08 12:52:24

标签: vim jpasswordfield

我在配置文件中存储了纯文本密码。有没有办法模糊或替换XXXXX密码。

当我在vim中打开配置文件时,我希望看到

密码= XXXXX

2 个答案:

答案 0 :(得分:6)

在配置文件中隐藏密码的最简单,最安全的方法是

请勿在文件中输入PLAINTEXT密码

任何以你所描述的方式使用vim的解决方案都只会模糊的密码。其他人可以在没有vim的情况下打开/读取文件,看到密码。

如果出于某种原因,这个 是你想要的用例(例如,用于投影演示文稿,而你是用于一些不正当的理由使用密码观众可以利用现场利用的东西(你为什么要这样做),你可以写一个autocmd来掩盖等号之后的一切。

autocmd BufRead * silent! %s/=[^=]*$/=XXXX/

但请注意,这仅适用于演示文稿:文本实际上是重写的,您不希望保存此文件。

您的另一个选择是使用7.3的语法突出显示将文本标记为隐藏。

答案 1 :(得分:5)

是的,使用Vim 7.3中引入的隐藏功能,您可以将匹配替换为一个替换字符。因此,您可以将整个密码压缩为单个*,或将每个字符替换为*(通过单独匹配每个密码字符)。

使用语法突出显示实现隐藏。只要您没有密码文件的任何现有语法,这只是编写一个简单的syntax/password.vim语法脚本并执行

:setlocal syntax=password

更难以集成到其他语法中。

有关详细信息,请参阅:help :syn-conceal。此帮助页面还包含有关编写语法的所有信息。您特别需要:help :syn-match

关于隐藏的好处是你仍然可以将原始密码文本(例如剪贴板)拉出来而不会泄露它。 'conceallevel''concealcursor'选项控制着。

更简单的替代

如果您只是想避免其他人从您的肩膀上读取您的密码,您可以为所有单独的登录条目(/ paragraph)定义 folds ,从关闭所有折叠开始,并且只是短暂打开用于访问的单个当前折叠。