作为一名初级程序员,我最近一直在 vimgolf 上练习 vim,看到命令“g?” 被有效地用于将多行“Ivm”转换为“Vim”。我知道这会将每个字母向右移动 13 次,但不明白这将如何证明有用,除非在这样的特殊情况下。
问问题
4567 次
2 回答
20
该g?
命令(:help g?
用于简要文档的类型)实现了该rot13
算法,该算法将每个字母在字母表中向前或向后旋转 13 位。
我不确定它今天的使用频率如何,但在 Usenet 上,它曾经是编码剧透的常用方法。例如,如果我正在写一篇文章,它泄露了不是每个人都看过的东西的结尾,我可能会用它rot13
来对文章的一部分进行弱加密。这足以防止意外阅读(除非您有很多练习),但如果您使用具有内置rot13
功能的新闻阅读器,则易于阅读 - 就像大多数人一样。
例如:
假装这是剧透。使用 rot13 过滤以读取它。
会成为
Cergraq guvf vf n fcbvyre。Svygre jvgu ebg13 gb ernq vg。
如果我不想看剧透,我可以忽略它。如果我确实想阅读它,我可以很容易地解密它。
于 2014-08-10T01:54:03.617 回答
12
我使用 Vim 已经 4 年了,很早就知道了这个命令,但是,即使我非常清楚 ROT13 是什么,我也从来没有发现g?
.
直到几周前,我需要在 HTML 原型
中添加一组<li>
具有唯一 ID 的...</p><ul>
出发点:
<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>
在g?i"
两个 new之后<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?
在实际“编程”中的实际用途!庆典!!!
于 2014-08-10T07:57:20.223 回答