作为一个初学程序员,我最近一直在vimgolf上练习vim,看到命令“g?”被有效地用于将许多行'Ivm'转换为'Vim'。我知道这将每个字母向右移动13次,但我不明白除了在这样的特殊情况下,这将如何证明有用。
x3naxklr1#
g?命令(键入:help g?可查看简要文档)实现了rot13算法,该算法将字母表中的每个字母向前或向后旋转13个位置。我不知道它在今天有多普遍,但在Usenet上,它曾经是一种常见的对剧透进行编码的方式。例如,如果我正在写一篇文章,泄露了一些不是每个人都看过的东西的结尾,我可能会使用rot13对文章的一部分进行弱加密。这足以使它不可能被意外阅读(除非您已经有了大量的实践),但是如果您使用的新闻阅读器具有内置的rot13函数(大多数新闻阅读器都是这样),则很容易阅读。例如:假装这是一个扰流器。过滤器与rot13阅读它。会变成我是一个很好的朋友,我很喜欢你。如果我不想读剧透,我可以忽略它。如果我想读它,我可以很容易地解密它。
g?
:help g?
rot13
k7fdbhmy2#
我已经使用Vim 4年了,并且很早就了解了这个命令,但是,即使我非常清楚ROT 13是什么,我也 * 从来没有 * 发现g?的用途。直到几周前,我需要在HTML原型中将一组具有唯一ID的<li>添加到<ul>中...出发点:
<li>
<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>
在两个新的<li>的id上执行g?i"之后:
id
g?i"
<ul> <li id="lorem">foo</li> <li id="ipsum">foo</li> <li id="yberz">foo</li> <li id="vcfhz">foo</li> </ul>
在那里!我发现了g?在实际“编程”中的实际用途!庆祝!!!
nle07wnf3#
如果您希望快速隐藏您在可见的vim缓冲区中键入的部分文本,它将非常有用。例如,您在代码中放置的一些密码或令牌(但仅在必要时临时执行)。也许你想邀请一个队友来看看你的代码,或者你工作的地方人们总是在你背后走动,这样你就可以旋转字符串,而字符串对他们来说是无用的(至少在一瞥中是这样)。它可能对非技术性的路人或短时间的暴露时间最有效。请记住,它不旋转数字,为了安全起见,如果它可以采取旋转大小,那就更好了。当你解决一个有rot13挑战的CTF时,它也会变得有用。
3条答案
按热度按时间x3naxklr1#
g?
命令(键入:help g?
可查看简要文档)实现了rot13
算法,该算法将字母表中的每个字母向前或向后旋转13个位置。我不知道它在今天有多普遍,但在Usenet上,它曾经是一种常见的对剧透进行编码的方式。例如,如果我正在写一篇文章,泄露了一些不是每个人都看过的东西的结尾,我可能会使用
rot13
对文章的一部分进行弱加密。这足以使它不可能被意外阅读(除非您已经有了大量的实践),但是如果您使用的新闻阅读器具有内置的rot13
函数(大多数新闻阅读器都是这样),则很容易阅读。例如:
假装这是一个扰流器。过滤器与rot13阅读它。
会变成
我是一个很好的朋友,我很喜欢你。
如果我不想读剧透,我可以忽略它。如果我想读它,我可以很容易地解密它。
k7fdbhmy2#
我已经使用Vim 4年了,并且很早就了解了这个命令,但是,即使我非常清楚ROT 13是什么,我也 * 从来没有 * 发现
g?
的用途。直到几周前,我需要在HTML原型中将一组具有唯一ID的
<li>
添加到<ul>
中...出发点:
复制两个
<li>
后:在两个新的
<li>
的id
上执行g?i"
之后:在那里!我发现了
g?
在实际“编程”中的实际用途!庆祝!!!nle07wnf3#
如果您希望快速隐藏您在可见的vim缓冲区中键入的部分文本,它将非常有用。
例如,您在代码中放置的一些密码或令牌(但仅在必要时临时执行)。
也许你想邀请一个队友来看看你的代码,或者你工作的地方人们总是在你背后走动,这样你就可以旋转字符串,而字符串对他们来说是无用的(至少在一瞥中是这样)。它可能对非技术性的路人或短时间的暴露时间最有效。
请记住,它不旋转数字,为了安全起见,如果它可以采取旋转大小,那就更好了。
当你解决一个有rot13挑战的CTF时,它也会变得有用。