green_fr: (Default)
green_fr ([personal profile] green_fr) wrote2020-05-18 09:12 am

Шутка про баян

Отличная шутка на bash.org, я давно так не хохотал, но только для программистов:

V: А ещё мне тут пришла в голову правильная аналогия про Vim
V: Это короче так: садишься ты в машину, а там вместо руля и педалей стоит БАЯН
V: И каждая кнопка что-то означает, типа: — вперёд 100 м — вперёд 1 км — вперёд до ближайшего светофора — вперёд до отделения полиции — обогнать впереди едущую машину
V: И ещё когда ты садишься, двери блокируются и надо тоже нажать последовательность кнопок на баяне, чтобы выйти
V: А если в движении случайно нажмёшь esc и выйдешь из режима движения, то вместо движения вперёд машина бибикает
V: И соответственно есть прокачанные баянисты, которые ездят по дорогам, играя мелодии. Быстро, эффективно ездят


Чтобы хотя бы что-то было понятно и остальным. Есть такой текстовый редактор, в котором работаешь не только без мышки, то и без комбинаций кнопок на клавиатуре. То есть, ты не можешь нажать Ctrl-C или Ctrl-V — редактор писали на случай ядерной войны так, чтобы он работал всегда, даже по сети, даже когда связь настолько плохая, что информация о нажатии одной кнопки может дойти, а про вторую — нет. И вам не нужно, чтобы вместо Ctrl-C у нас напечаталось C.

Соответственно, у редактора есть три режима:
1. Режим ввода. Когда каждая кнопка с буквой (символом) обозначает просто букву, и та печатается в редактируемом документе.
2. Режим навигации. Поскольку кнопки со стрелочками — это «сложные» кнопки, то они ведь тоже не работают. Вместо них в режиме навигации используются кнопки j / k / l / m — это влево / вниз / вверх / вправо соответственно. Помимо этих кнопок задействована вся остальная клавиатура, и в этом настоящее богатство vi — есть вариант «перепрыгнуть на одно слово» (аналог «Ctrl-стрелочки»), но есть и вариант «перепрыгнуть на 5 слов». Можно перейти в конец строки (аналог «Ctrl-End»), а можно перейти на третье с конца слово в пятом параграфе, начиная от текущего. Там же поиск — можно перейти на второе слово, в котором не менее четырёх гласных. И начала программирования для замены — найди слова из 4 букв, если первая из них «f», то замени вторую на «*». Вы не поверите, но это часто крайне удобно, экономит часы времени. Красивая иллюстрация того, как наложенные снаружи ограничения заставляют нам создавать шедевры.
3. Режим работы с системой. Здесь те же самые кнопки выполняют команды вроде «сохрани файл», «выйди меня отсюда».
Ну и отдельные кнопки в каждом из режимов, чтобы перейти в другой режим (упомянутый в анекдоте Esc).

Понятно, что первые несколько месяцев работаешь крайне медленно, причём обложившись документацией. Потом либо плюёшь и ставишь себе нормальный редактор, либо становишься вот таким вот, описанным в анекдоте баянистом.

[identity profile] pucholik.livejournal.com 2020-05-18 07:20 am (UTC)(link)
Да, давно я так не смеялась

[identity profile] dmpogo.livejournal.com 2020-05-18 07:38 am (UTC)(link)
Вывод кстати неверный. У меня vim основной редактор уже лет 30, и я все еще знаю примерно пять команд.
Edited 2020-05-18 07:39 (UTC)

[identity profile] virginian.livejournal.com 2020-05-18 07:51 am (UTC)(link)

Это мало того что классика, но про него ещё и на интервью спрашивали во времена оны, типа освоил или нет. В Фортране ещё чище, там имя переменной определяет ее тип.

[identity profile] mikhailian.livejournal.com 2020-05-18 08:17 am (UTC)(link)
Баяном vim выглядит только для тех, кто учит его по методу обезъяны.

Фишка вима в том, что само редактирование текста должно восприниматься как программирование. 5d — удалить пять строк (5 delete), caw — удалить текущее слово и приготовиться писать (change append word) и так далее и тому подобное. Вот комментарий на SO объясняет (https://stackoverflow.com/a/1220118/661236) всё гораздо лучше меня.

Ну и конечно без понимания контекста использования ex, ed, sed и культуры unix 70-х годов к vim привыкнуть сложно.
a_p: (Default)

[personal profile] a_p 2020-05-18 08:20 am (UTC)(link)
Только причина не в том, что есть сложные, а есть простые кнопки, а в том, что на пишмашинках ни Ctrl, ни стрелочек не было. Первые клавиатуры копировали пишмашинки и использовались с печатающими устройствами. И первые редакторы были для "строкового режима" (с буквами-командами). А уж потом появились экраны, и на основе строкового редактора написали "экранный редкатор" vi, для совместимости (с уже обученными строковому редкатору хьюманами) сохранив, насколько это было возможно, команды.

[identity profile] urease.livejournal.com 2020-05-18 08:26 am (UTC)(link)
Затем в машину добавили терменвокс

[identity profile] ticklish-frog.livejournal.com 2020-05-18 08:29 am (UTC)(link)
Про emacs уже не шутят, только про vi :) Про emacs в среде Windows-программистов ходили присказки, что корифеем может считаться любой, кто смог самостоятельно выйти из редактора без помощи другого корифея.

[identity profile] virginian.livejournal.com 2020-05-18 08:56 am (UTC)(link)
VI был редактором в Оракле по умолчанию, вот где весело было.

[identity profile] igann.livejournal.com 2020-05-18 10:01 am (UTC)(link)
В моём окружении сложнее объяснить что такое баян

[identity profile] aguti.livejournal.com 2020-05-18 10:04 am (UTC)(link)
Зато vi есть везде и работает всегда! Удобно, когда можешь хоть чуть чуть «играть на баяне» :)
Это как (обратная аналогия) научиться водить на ручной коробке передач, а потом выслушивать стоны тех, кто кроме автомата ничего не водит :)

[identity profile] och.livejournal.com 2020-05-18 10:59 am (UTC)(link)
А статья по ссылке в википедии начинается так:
vi (от англ. visual) -
Вижуал, мать его!

[identity profile] el-philippa.livejournal.com 2020-05-18 11:43 am (UTC)(link)
Очень смешно.

[identity profile] yuriyag.livejournal.com 2020-05-18 01:35 pm (UTC)(link)
Гармонист был очень пьян / Растянуть не смог баян / Два помощника в момент - / Разорвали инструмент...

[identity profile] moonofnovember.livejournal.com 2020-05-18 02:47 pm (UTC)(link)
Stackoverflow, вопрос How do I exit the Vim editor?
Viewed 2.1m times

Моя первая сессия в vim закончилась нажатием кнопки reset на системнике.

[identity profile] birdwatcher.livejournal.com 2020-05-18 02:48 pm (UTC)(link)
"Я пользовался вимом двадцать пять лет, но в конце концов узнал, как из него выйти"
На самом деле нет, до сих пор ничем другим не пользуюсь.

(Anonymous) 2020-05-18 03:11 pm (UTC)(link)
Даёшь emacs! VI долой

[identity profile] bostonvip.livejournal.com 2020-05-18 03:21 pm (UTC)(link)
мой практически единственный опыт vi кончился гугленьем как из него выйти и установкой nano :). После это пару раз я в него случайно залетал и опять же гуглил как выйти

[identity profile] kkk-ddd.livejournal.com 2020-05-18 08:52 pm (UTC)(link)
Я баянист, все верно

[identity profile] oldjackaroo.livejournal.com 2020-05-18 09:57 pm (UTC)(link)
Я тоже проголосовал за это, но у меня такая аналогия была сравнительно недавно, когда я проходил какой-то курс по AI (точнее, о том, как он использует нейронные сети). Там все так же - есть какие-то алгоритмы, есть какие-то коэффициенты, как выбирать первое и второе - это темная магия, что получится в результате выбора какой-то комбинации - такая же загадка, как в этой аналогии про баян. С той только разницей, что в vim хоть есть инструкция, которую можно выучить, а там - только научиться чувствовать после месяцев практики.

[identity profile] alexanderr.livejournal.com 2020-05-19 02:00 am (UTC)(link)


vi это мой любимый редактор. гениальная вещь.

он невероятной мощности на самом деле, особенно если нужно
обработать гигантский текстовый файл, который ни один
другой редактор просто не откроет даже. vi легко поднимет
и все сделает. набираешь цепочку команд, потом говоришь:
повторить. и все