作为一名初学者程序员,最近我一直在练习vim命令,看到使用"g?"命令可以有效地将许多行的"Ivm"变成"Vim"。我知道这会将每个字母向右移动13次,但不明白这在除了像这样的特殊情况下有何用处。
g?
命令(输入:help g?
查看简要文档)实现了 rot13
算法,它将每个字母在字母表中向前或向后旋转13个位置。rot13
弱加密文章的一部分。这足以使其无法被意外地阅读(除非你有很多练习),但如果你使用一个内置 rot13
函数的新闻阅读器(大多数都有),就可以轻松阅读。假装这是一个剧透。使用 rot13 过滤以阅读。
将变成
如果我不想阅读剧透,我可以忽略它。如果我想阅读它,我可以轻松解密它。Pretenq guvf vf n fcbvyre. Svygre jvgu ebg13 gb ernq vg.
v
进入可视模式2.选择您的文本3.g?
将rot13应用于此文本。示例2-对整个缓冲区执行:ggVGg?
(翻译:gg
转到开头,V
行选择模式,G
转到结尾,g?
应用rot13)。 - Trevor Boyd Smith我使用 Vim 已经4年了,并且早早就学会了那个命令,但是即使我非常清楚 ROT13 是什么,我也从来没有找到过使用 g?
的场合。
直到几周前,当我需要为 HTML 原型中的 <ul>
添加一堆带有唯一 ID 的 <li>
时...
起始点:
<ul>
<li id="lorem">foo</li>
<li id="ipsum">foo</li>
</ul>
在复制这两个<li>
元素之后:
<ul>
<li id="lorem">foo</li>
<li id="ipsum">foo</li>
<li id="lorem">foo</li>
<li id="ipsum">foo</li>
</ul>
在两个新的 <li>
标签上,完成 id
的命名后:
<ul>
<li id="lorem">foo</li>
<li id="ipsum">foo</li>
<li id="yberz">foo</li>
<li id="vcfhz">foo</li>
</ul>
太好了!我终于在实际“编程”中找到了使用g?
的实用价值!庆祝一下!!!
在可见的vim缓冲区中,当您想要快速隐藏一些文本部分以避免旁观者时,它可能会很有用。
例如,您在代码中放置了一些密码或令牌(但只是临时的,必须这样做)。
也许您想邀请一个团队成员查看您的某些代码,或者您工作的地方经常有人在背后走动,因此您可以将字符串rot13编码,这对他们来说是无用的(至少一瞥)。 它可能最适合非技术路人或短暂曝光期。
请记住,它不会旋转数字,并且出于安全考虑,如果它可以采用旋转大小,则效果会更好。
当您解决具有rot13挑战的CTF时,它也可能会变得有用...