Какой функционал делает "г?" Команда обеспечивает в VIM
Как начинающий программист, я недавно практиковал vim на vimgolf и увидел, что команда "g?" был эффективно использован для переключения многих строк "Ivm", чтобы стать "Vim". Я понимаю, что это сдвигает каждую алфавитную букву 13 раз вправо, но я не понимаю, как это окажется полезным, за исключением уникальных обстоятельств, подобных этим.
3 ответа
g?
команда (тип :help g?
для краткой документации) реализует rot13
алгоритм, который вращает каждую букву 13 мест вперед или назад в алфавите.
Я не уверен, как часто это используется сегодня, но в Usenet это был обычный способ кодирования спойлеров. Например, если я пишу пост, в котором говорится о конце чего-то, что не все видели, я мог бы использовать rot13
слабо зашифровать часть статьи. Этого достаточно, чтобы сделать невозможным чтение случайно (если у вас не было большой практики), но легко прочитать, если вы используете программу чтения новостей со встроенным rot13
функция - как и большинство из них.
Например:
Притворись, что это спойлер. Фильтр с rot13, чтобы прочитать это.
станет
Cergraq guvf vf n fcbvyre. Свигре jvgu ebg13 gb ernq vg.
Если я не хочу читать спойлер, я могу игнорировать это. Если я действительно хочу это прочитать, я могу достаточно легко расшифровать его.
Я использую Vim с 4-х лет и узнал об этой команде очень рано, но, даже если я прекрасно знал, что такое ROT13, я так и не нашел применения для g?
,
Еще пару недель назад, когда мне нужно было добавить кучу <li>
с уникальными идентификаторами <ul>
в прототипе HTML...
Отправная точка:
<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>
"s id
s:
<ul>
<li id="lorem">foo</li>
<li id="ipsum">foo</li>
<li id="yberz">foo</li>
<li id="vcfhz">foo</li>
</ul>
Там! Я нашел практическое применение для g?
в реальном "программировании"! Праздник!!!
Это может оказаться полезным в случае, когда вы хотите быстро скрыть от посторонних часть текста, который вы набрали в видимом буфере vim.
Например, какой-то фрагмент пароля или токен, который вы помещаете в свой код (но делайте это только временно, когда необходимо).
Возможно, вы хотите пригласить товарища по команде посмотреть на какой-то ваш код, или вы работаете в месте, где люди все время ходят за вашей спиной, поэтому вы можете просто испортить13 строку, и она бесполезна для них (по крайней мере, одним взглядом). Это, вероятно, лучше всего работает против нетехнических прохожих или для короткого периода воздействия.
Имейте в виду, что он не вращает числа, и в целях безопасности было бы даже лучше, если бы он мог принимать размер вращения.
Это также может пригодиться, когда вы решаете CTF с вызовом rot13...