【发布时间】:2014-08-10 01:38:01
【问题描述】:
作为一名初级程序员,我最近在 vimgolf 上练习 vim,看到命令“g?”被有效地用于将多行“Ivm”转换为“Vim”。我知道这会将每个字母向右移动 13 次,但不明白这将如何证明是有用的,除非在这样的特殊情况下。
【问题讨论】:
作为一名初级程序员,我最近在 vimgolf 上练习 vim,看到命令“g?”被有效地用于将多行“Ivm”转换为“Vim”。我知道这会将每个字母向右移动 13 次,但不明白这将如何证明是有用的,除非在这样的特殊情况下。
【问题讨论】:
g? 命令(键入 :help g? 以获得简短文档)实现了 rot13 算法,该算法将字母表中的每个字母向前或向后旋转 13 位。
我不确定它今天的使用频率如何,但在 Usenet 上,它曾经是编码剧透的常用方法。例如,如果我正在写一篇文章,其中泄露了并非所有人都看过的内容的结尾,我可能会使用rot13 对文章的部分内容进行弱加密。这足以防止意外阅读(除非您有很多练习),但如果您使用具有内置 rot13 功能的新闻阅读器,则易于阅读 - 就像大多数人一样。
例如:
假装这是剧透。用 rot13 过滤来读取它。
会变成
Cergraq guvf vf n fcbvyre。 Svygre jvgu ebg13 gb ernq vg.
如果我不想看剧透,我可以忽略它。如果我确实想阅读它,我可以很容易地解密它。
【讨论】:
v 进入可视模式 2. 选择您的文本 3. g? 将 rot13 应用于此文本。 Ex2 - 做整个缓冲区:ggVGg?(翻译:gg 开始,V 线性视觉选择模式,G 结束,g? 应用 rot13)。
g? 是一个动词,因此它可以应用于 words 或 paragraphs 或其他任何东西。此功能不限于视觉模式。
我使用 Vim 已有 4 年了,并且很早就了解了该命令,但即使我非常了解 ROT13 是什么,我从未找到g? 的用途。 p>
直到几周前,我需要将一组具有唯一 ID 的 <li> 添加到 HTML 原型中的 <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"之后的两个新<li>的ids:
<ul>
<li id="lorem">foo</li>
<li id="ipsum">foo</li>
<li id="yberz">foo</li>
<li id="vcfhz">foo</li>
</ul>
那里!我在实际的“编程”中发现了g? 的实际用途!庆祝!!!
【讨论】: