Vim语法隐藏密码

亚伦·托彭斯(Aaron Toponce)

我正在使用以下帖子的格式为PGP加密的密码创建Vim语法突出显示文件:http : //pig-monkey.com/2013/04/password-management-vim-gnupg/即,语法如下:

Super Ecommerce{{{
    user:   foobar
    pass:   g0d
    Comments{{{
        birthday:   1/1/1911
        first car:  delorean
    }}}
}}}

已经可以折叠{{{}}}防止肩部冲浪了。但是,在扩展条目时,我还要隐藏带有红色背景和红色前景文本的密码,以防止扩展时继续出现肩膀冲浪现象。

目前,我通过将密码包装在((()))块中来解决此问题这样,我可以控制哪些密码被隐藏,哪些密码未被隐藏。解决这个问题的我的Vim语法是:

set conceallevel=3
syntax region gpgpassPasswords start="\v\(\(\(" end="\v\)\)\)"
highlight link gpgpassPasswords Conceal
highlight gpgpassPasswords ctermbg=red ctermfg=red

然后,我们的“超级电子商务”模块将如下所示:

Super Ecommerce{{{
    user:   foobar
    pass:   (((g0d)))
    ...

然后(((g0d)))将其打印为红色背景上的红色前景文本,从而有效地隐藏了密码。

但是,我想我只希望隐藏^\s*pass:\s*不带(((和的所有密码)))不幸的是,我似乎无法正确隐藏仅隐藏密码,而不隐藏所有其他内容的语法。

如何隐藏没有额外区域字符的密码?

克里斯汀·布兰伯特

我认为以下应该起作用:

syn match MyPassword /\%(^\s*pass:\s*\)\@<=\S\+/ conceal cchar=*
setl conceallevel=2 concealcursor=nv

但是,这在某种程度上取决于您的其他语法规则。对于较新的Vims,您也可以只使用matchadd()函数调用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章