作为一名初学程序员,我最近一直在vimgolf上练习vim并看到命令" g?"被有效地用来切换许多“Ivm'成为Vim'。据我所知,这会将每个字母字母向右移动13次,但不理解这将如何证明有用,除非在这些特殊情况下。
答案 0 :(得分:16)
g?
命令(类型:help g?
用于简要文档)实现rot13
算法,该算法在字母表中向前或向后旋转每个字母13个位置。
我不确定它今天有多常用,但在Usenet上它曾经是编码剧透的常用方法。例如,如果我正在撰写一篇文章,告诉我不是每个人都看过的内容的结尾,我可能会使用rot13
对文章的某些部分进行弱加密。这足以让你不小心阅读(除非你有很多练习),但如果你使用的是具有内置rot13
功能的新闻阅读器,则很容易阅读 - 因为大部分都是做。
例如:
假装这是一个剧透。用rot13过滤来读取它。
会变成
Cergraq guvf vf n fcbvyre。 Svygre jvgu ebg13 gb ernq vg。
如果我不想阅读剧透,我可以忽略它。如果我想阅读它,我可以很容易地解密它。
答案 1 :(得分:10)
我4年来一直在使用Vim并且很早就学会了这个命令但是,即使我非常清楚ROT13是什么,我永远不会找到g?
的用途。
直到几周前我需要在HTML原型中向<li>
添加一堆<ul>
个唯一ID ...
起点:
<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>
的{{1}}之后id
:
<ul>
<li id="lorem">foo</li>
<li id="ipsum">foo</li>
<li id="yberz">foo</li>
<li id="vcfhz">foo</li>
</ul>
有!我在实际的“编程”中找到了g?
的实际用途!庆典!!!