Какой функционал делает "г?" Команда обеспечивает в 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 ids:

<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...

Другие вопросы по тегам