green_fr: (Default)
[personal profile] green_fr
Отличная шутка на 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).

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

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

Date: 2020-05-18 08:02 am (UTC)
From: [identity profile] green-fr.livejournal.com
А ты-то где vi затронула?

(no subject)

From: [identity profile] pucholik.livejournal.com - Date: 2020-05-18 08:05 am (UTC) - Expand

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

Date: 2020-05-18 08:03 am (UTC)
From: [identity profile] green-fr.livejournal.com
А зачем тогда ты его используешь? Я когда в нём работал, как раз пёрся от всей этой мощи, и использовал её на полную (ну, как мог...). И до сих пор в любом текстовом редакторе первым делом проверяю те же regexp - как они пишутся, как ими можно пользоваться.

(no subject)

From: [identity profile] dmpogo.livejournal.com - Date: 2020-05-18 08:24 am (UTC) - Expand

Date: 2020-05-18 08:24 am (UTC)
From: [identity profile] urease.livejournal.com
Так ведь и с машиной так. Когда на моей первой машине через три года спустило колесо, я не знал, где находится запаска и некоторое время логически выводил, где.

Я думаю, что я - стандартный водитель

(no subject)

From: [identity profile] dmpogo.livejournal.com - Date: 2020-05-18 08:37 am (UTC) - Expand

(no subject)

From: [identity profile] green-fr.livejournal.com - Date: 2020-05-18 10:03 am (UTC) - Expand

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

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

Date: 2020-05-18 08:06 am (UTC)
From: [identity profile] green-fr.livejournal.com
У меня и без Фортрана эта логика, что по моему тексту могут потом пройтись regexp, заставляет писать всё "единожды возможным правильным образом". То есть, это очень сильно подталкивает к стандартизации - не важно, какой именно, лишь бы стандарт был. И нетерпимости к малейшему отклонению в виде лишнего пробела. Если решили писать "% TODO : blablabla", то никаких "% TODO: blablabla", иначе же потом не найдём!

Date: 2020-05-18 08:38 am (UTC)
From: [identity profile] dmpogo.livejournal.com
Ну хороший тон ставить IMPLICIT NONE :) Но иногда позволяешь себе :)

(no subject)

From: [identity profile] virginian.livejournal.com - Date: 2020-05-18 08:52 am (UTC) - Expand

(no subject)

From: [identity profile] dmpogo.livejournal.com - Date: 2020-05-18 09:17 am (UTC) - Expand

(no subject)

From: [identity profile] green-fr.livejournal.com - Date: 2020-05-18 10:04 am (UTC) - Expand

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

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

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

Date: 2020-05-18 10:05 am (UTC)
From: [identity profile] green-fr.livejournal.com
Об этом и речь :-) Был же другой анекдот о том, что мир людей, плохо понявших школьную физику, преисполнен волшебства.

(no subject)

From: [identity profile] el-philippa.livejournal.com - Date: 2020-05-18 11:43 am (UTC) - Expand

(no subject)

From: [identity profile] green-fr.livejournal.com - Date: 2020-05-18 01:52 pm (UTC) - Expand

(no subject)

From: [identity profile] xxxxx.livejournal.com - Date: 2020-05-18 10:28 am (UTC) - Expand

(no subject)

From: [identity profile] green-fr.livejournal.com - Date: 2020-05-18 01:53 pm (UTC) - Expand

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

Date: 2020-05-18 10:07 am (UTC)
From: [identity profile] green-fr.livejournal.com
Нам на уроках рассказывали историю про разные пакеты, в которые могли попасть разные кнопки одной комбинации, и что порядок прибытия пакетов не гарантирован. Но твоя версия тоже вполне правдоподобна.

(no subject)

From: [identity profile] mikhailian.livejournal.com - Date: 2020-05-18 10:47 am (UTC) - Expand

(no subject)

From: [identity profile] green-fr.livejournal.com - Date: 2020-05-18 01:57 pm (UTC) - Expand

(no subject)

From: [identity profile] gianthare.livejournal.com - Date: 2020-05-18 11:34 am (UTC) - Expand

(no subject)

From: [identity profile] green-fr.livejournal.com - Date: 2020-05-18 02:39 pm (UTC) - Expand

(no subject)

From: [identity profile] gianthare.livejournal.com - Date: 2020-05-18 03:36 pm (UTC) - Expand

(no subject)

From: [identity profile] green-fr.livejournal.com - Date: 2020-05-18 09:45 pm (UTC) - Expand

(no subject)

From: [identity profile] grave--digger.livejournal.com - Date: 2020-05-19 01:40 pm (UTC) - Expand

(no subject)

From: [identity profile] green-fr.livejournal.com - Date: 2020-05-20 09:06 am (UTC) - Expand

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

Date: 2020-05-18 10:07 am (UTC)
From: [identity profile] green-fr.livejournal.com
А-ха-ха-ха-ха! Вот это, кстати, не могу объяснить почему, но именно в тему :-)

(no subject)

From: [identity profile] urease.livejournal.com - Date: 2020-05-18 02:08 pm (UTC) - Expand

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

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

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

Date: 2020-05-18 10:08 am (UTC)
From: [identity profile] green-fr.livejournal.com
А мне бабушка в детстве говорила: учись, Саша, играть на баяне. Возьмут тебя в армию, ты сразу скажешь, что умеешь играть. И вот представь - все как идиоты маршируют на плацу, а ты сидишь такой, с баяном, и играешь им какой-то марш!
На этом, кажется, знакомство с баяном и ограничилось :-)

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

Date: 2020-05-18 10:10 am (UTC)
From: [identity profile] green-fr.livejournal.com
"Везде" и "всегда" выдаёт, Тома, что ты обитаешь в очень странных местах :-Р Ты понимаешь, да, сколько нулей перед первой значащей цифрой процента населения, которые хотя бы раз столкнулись с проблемой "ой, а тут у нас только vi, да?" :-)))

(no subject)

From: [identity profile] chhwe.livejournal.com - Date: 2020-05-18 10:50 am (UTC) - Expand

(no subject)

From: [identity profile] green-fr.livejournal.com - Date: 2020-05-18 01:56 pm (UTC) - Expand

(no subject)

From: [identity profile] kalina-malina.livejournal.com - Date: 2020-05-20 02:24 pm (UTC) - Expand

(no subject)

From: [identity profile] green-fr.livejournal.com - Date: 2020-05-20 02:27 pm (UTC) - Expand

(no subject)

From: [identity profile] green-fr.livejournal.com - Date: 2020-05-20 02:31 pm (UTC) - Expand

(no subject)

From: [identity profile] kalina-malina.livejournal.com - Date: 2020-05-20 02:57 pm (UTC) - Expand

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

Date: 2020-05-18 11:40 am (UTC)
From: [identity profile] gianthare.livejournal.com
Ну, по сравнению с Ed конечно вижуал. В Ed были все редакторские команды vi, а вот чтобы увидеть, что ты наредактировал , была ещё команда p, которая печатал указанные ей строки :)

(no subject)

From: [identity profile] green-fr.livejournal.com - Date: 2020-05-18 01:56 pm (UTC) - Expand

(no subject)

From: [identity profile] gianthare.livejournal.com - Date: 2020-05-18 02:24 pm (UTC) - Expand

(no subject)

From: [identity profile] green-fr.livejournal.com - Date: 2020-05-18 02:41 pm (UTC) - Expand

(no subject)

From: [identity profile] gianthare.livejournal.com - Date: 2020-05-19 03:17 pm (UTC) - Expand

(no subject)

From: [identity profile] green-fr.livejournal.com - Date: 2020-05-20 09:10 am (UTC) - Expand

(no subject)

From: [identity profile] gianthare.livejournal.com - Date: 2020-05-20 10:26 am (UTC) - Expand

(no subject)

From: [identity profile] green-fr.livejournal.com - Date: 2020-05-20 11:47 am (UTC) - Expand

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

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

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

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

Date: 2020-05-18 03:02 pm (UTC)
From: [identity profile] green-fr.livejournal.com
Бггг :-) Это я, наверное, никогда не забуду.
:q!

(no subject)

From: [identity profile] grave--digger.livejournal.com - Date: 2020-05-19 01:47 pm (UTC) - Expand

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

Date: 2020-05-18 03:03 pm (UTC)
From: [identity profile] green-fr.livejournal.com
Тоже классный анекдот :-))

(no subject)

From: [identity profile] aguti.livejournal.com - Date: 2020-05-20 07:07 am (UTC) - Expand

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

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

(no subject)

From: [identity profile] green-fr.livejournal.com - Date: 2020-05-19 08:34 am (UTC) - Expand

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

Date: 2020-05-19 08:35 am (UTC)
From: [identity profile] green-fr.livejournal.com
Я не рассказывал, как моя сестра - пианистка - набирала на клавиатуре "горнодобывающая промышленность" практически одним аккордом? :-)))

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

Date: 2020-05-19 08:37 am (UTC)
From: [identity profile] green-fr.livejournal.com
Слушай, а вот у меня не было ощущения "тёмной магии". Магия там в интерпретации результатов, но это как раз не совсем правильно, пытаться искать понятное человеку (формализуемое человеческим языком) объяснение там, где его может и не быть. Мы свои решения всегда можем описать человеческим языком?
А вот построение модели - ну да, где-то есть "доработка напильником", но всякий раз понятно, почему именно здесь, и именно в эту сторону. Ну, либо я просто не лез так глубоко, как ты...

(no subject)

From: [identity profile] oldjackaroo.livejournal.com - Date: 2020-05-19 06:41 pm (UTC) - Expand

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


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

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

Date: 2020-05-19 08:38 am (UTC)
From: [identity profile] green-fr.livejournal.com
Да кто бы спорил, конечно! Его польза / мощь / уникальность выводятся хотя бы из Дарвина - иначе он бы столько лет не прожил :-)

(no subject)

From: [identity profile] alexanderr.livejournal.com - Date: 2020-05-19 02:54 pm (UTC) - Expand

Profile

green_fr: (Default)
green_fr

May 2026

S M T W T F S
     12
34 5 6 789
10111213141516
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 7th, 2026 02:44 pm
Powered by Dreamwidth Studios