Что такое настоящая долговечность и истинное признание в мире ИТ? Это текстовый редактор vi!
Первая версия появилась примерно 45 лет назад. Но до сих пор начинающие юниксоиды плачут, смеются, продолжают есть кактус и писать свои впечатления от пользования сим незабвенным софтом.
Вы спросите,- какие вообще могут быть впечатления от пользования текстовым редактором?
Ха-ха три раза, дети юзер френдли интерфейса, адепты Джобса и Гейтса...
Это нельзя рассказать, это надо прожить и первый раз незабываем!
И-23: к вопросу о пользе *предварительного* ознакомления с документацией (на надлежащее написание которой ныне, в связи с победным шествием интуитивно-понятных интерфейсов положен болт, но то — отдельная печальная история).
Мой «первый раз» был основан на знании некоторого количества основных команд редактора ed. И некотором же опыте работы в оном. Так что никаких особенно выдающихся впечатлений в линии моего опыта не осталось ☺
Большинство сейчас, конечно, используют уже vim, а многие даже и не знают, что даже "классический" vi это суть есть визуальный режим редактора ex, который является упрощенной версией редактора en, который является модифицированной версией редактора em, который был создан потому что популярный на тот момент редактор ed БЫЛ СЛИШКОМ СЛОЖНЫМ ДЛЯ ПРОСТЫХ СМЕРТНЫХ.
Современные IT технологии слишком сложны?
Тогда подумайте о том, что ВИЗУАЛЬНЫЙ режим в ТЕКСТОВОМ РЕДАКТОРЕ был не всегда.
И был текстовый редактор без визуального интерфейса, который уже не казался слишком сложным "простым смертным". И в этих редакторах были написаны программы и расчеты, позволившие отправить людей на Луну.
Нет, мир и технологии не стали слишком сложными для человека, просто, перефразируя Михаила Юрьевича, богатыри - не мы.
Но, не все потеряно, ведь раз vi запускают, значит это кому-то нужно!?
Комментарии
Еще бы не vi, если проблемы с клавишами в эмуляторах терминалов всё ещё с нами.
Отрыжка давным-давно (по утверждениям получателей премий за) «решённой» проблемы кодировок.
Самое же печальное, что и в базовой консоли далеко не всё так гладко, как хотелось бы… ☹
При чем тут терминальный доступ и кодировки, какая между ними связь?
Навык локализации консоли виден издалека.
Проблема с клавишами в консоли вообще никаким боком к проблемам локализации. Если в протоколе терминального доступа нет кода кнопок управления курсором, к примеру, или кнопки Ctrl, то хоть ты голову себе разбей над особенностями локализации, а кнопками этими пользоваться не получится. Я тут как-то несколько лет назад упарился .exrc делать, чтобы vi в терминале графическом и в физической текстовой консоли хоть как-то однообразно курсор да Up-Down понимал, без отягощения доступом через последовательные линии. С ними вообще был бы голяк, думаю или пришлось бы набор файлов иметь и подменять при логине в зависимости от того, как сеанс получил. Специфика унаследованных решений, бедных на возможности, ничего не попишешь...
За то, как формируются сигналы управления терминалом в пользовательской сессии отвечает переменная TERM, например, TERM=ansi или TERM=vt100, эта переменная ссылается на описание терминала в terminfo (termcap) ( https://invisible-island.net/ncurses/man/terminfo.5.html )
где прописано, что должен посылать в систему терминал, при нажатии на клавиши, в том числе функциональные, и как система на это должна реагировать.
terminfo под некоторые терминальные эмуляторы приходилось править самому. Было это лет 20 назад. компилируются исправления при помощи tic. К сожалению, делается это всё не быстро.
И это не бедные решения, это технологии древних, которые сейчас мало кто знает как использовать.
Прочитал забавный текст про проблему кодировок.
Всё так, да не так. Отсутствует понимание главного - с какой радости Штаты должны были делать всему миру "хорошо"? Они сделали "хорошо" себе, стандартизировав себе таблицу символов в стародавние времена. Кто мешал подобное проделать другим странам и потом жестко следовать в рамках национального стандарта при работе со штатовскими компаниями (с IBM и прочими MS)? Если мы сами для себя не смогли сформировать (и, самое главное, потом придерживаться) стандарты на кодирование кириллицы, то ожидать подобного от разных иностранных компаний - верх наивности. Всякие ISO были, в первую очередь, для удобства местной разведки сделаны, чтобы как-то с чужеродной инфой работать в пределах правительственных структур, тут особых изысков не требуется.
Ровно тоже самое касается размеров байта, кстати. У нас зоопарк с этим делом был, пока не подсели на клонирование ЕС и СМ. Свои разработки до последнего были - кто в лес, а кто и по дрова. Тоже американцы нам в штаны наложили чтоли?
Об обеспеченности буржуинских претензий на «международность» разрабатываемых стандартов скромно промолчим…
У них и чемпионаты тоже "международные". Однако же это не повод перекладывать свою часть вины на них. Они в данном вопросе более-менее молодцы, про свои интересы не забыли. Мы - не молодцы, многое тогда проморгали. Пенять теперь на то что они тогда оказались прозорливее нас... ну можно конечно, но смысл?
Ну да.
Искать надо там, где светло…
ЗЫ: Вспомните о результатах моделирования самого факта существования Государства Российского исходя из импоротных критериев.
Серьезно?
Никто не даст нам избавленья:
Ни бог, ни царь и не герой.
Просто поставьте себя на их место и задайтесь вопросом "а зачем мне тратить время, деньги и прочие ресурсы на то что мне не нужно и никогда не понадобится?"
Наткнувшись с разбега на скамейку, можно сколько угодно обвинять скамейку в том что колено болит. Но это же инфантилизм. Сами-сами-сами.
Ну да. Конечно.
Предположение, что в стандарте, позиционируемом в качестве *международного* (!) будет надлежащим образом проработана поддержка одного из мировых языков — чистейшей воды «инфантилизм»®©™.
ЗЫ: Главное, ни в коем случае не покушаться на привиллегии корпораций, которым эталонно не-коррупционными методами удалось утвердить свои разработки в вожделенном качестве.
Так принято. Собрать трёх калек и объявить это международной конференцией.
И-23, я не пойму - вы жалуетесь на несправедливость мира? Ну таки да - мир ужасно несправедлив к тем, кто не определяет критериев справедливости. Если вы не занимаетесь сочинением стандартов, то сочинители стандартов займутся вами. И всё такое в том же ключе.
Ничего изменить нельзя, строча письма в Спортлото. Единственный способ что-то изменить - предложить свои стандарты, лучше устраивающие нас и, возможно, кого-то еще. А потом настоять на их использовании, приложив мегаусилия и мегасредства. По-другому это никак не сработает. Впрочем, применительно у UTF это уже не поменять, можно только подкорректировать - инерция всей системы запредельна, а проблемы с юникодом на фоне всех предыдущих проблем с кодировками почти смешны. Как говаривал отец Михалкова: "Стихи может и не шедевр, но петь будете стоя"
Попробуйте троичную логику аппаратную предложить - успех будет примерно таким же вероятным, как и с заменой юникода, т.е. вероятность будет нулевой.
Попробуйте начать с изучения руководства господина Брукса. Для уяснения перспектив формализации понятия «справедливости».
Злые люди говорят, что под эгидой победного шествия UTF8 (вспомните главное «достоинство»!!!) благополучно положили болт на реализацию исторических механизмов локализации.
При том, что вменяемой альтернативой (тут я достаточно глубоко не копал, пересказываю утверждения заинтересованных товарищей) и не пахнет.
Проблема победного шествия UTF8 надёжно решается комплексом мероприятий по взиманию штрафов за «неконкуррентные преимущества». Мысли о полезности которых практически самозарождаются на фоне разворачивающихся событий Величайшей Депрессии.
ЗЫ: А локализацию в консоли Вы зря не настраивали. Там более чем достаточно… нюансов.
Хотя бы с отображением и вводом буквы «ѣ».
Я вам про Фому, а вы мне про Ерему. Ладно, вижу что не поняли мы друг друга, чего уж копья ломать теперь...
А просто "Disable application keypad mode" чё, не судьба??
Какое только дерьмо люди не жрут чтобы нормальный termcap не делать...
Начните с формализации критериев нормальности.
И, напоследок, немного о нюансах практики:
Хе-хе, ты в своём унылом репертуаре. Применимо к термкапу "нормальность" самоочевидна - работоспособность. Полная работоспособность. При отлаженном термкапе ви(м) не нужен. Он так-то вообще не нужен, но по привычке хрен бы с ним.
Зацените упоротость, с которой критиканец следует догматам техники безопасности *идеального* дискурса (*никакой* (!!!) угрожаемой конкретики).
Прекраснее только демонстрация не-знания классических руководств (например господина Фокса).
Ага. Конкретики по термкапу ты избегаешь. Хотя куда уж конкретнее и очевиднее, вот файлик, вот нажатая клавиша, которая из-за косяков в том файлике действует не так, как требуется пользователю. Не-е-ет, тебе сначала нужно критерии нормальности выработать.
Или ты хочешь конкретики по ви? Осспидя, прошлых девятисот семнадцати срачей тебе не хватило? Хорошо, вот тебе конкретика: докажи мне что для выполнения повседневных задач редактирования текста ви требует меньше нажатий клавиш, чем более другие текстовые редакторы. Для конкретики сравнивай с mcedit, чисто чтобы далеко не искать. Для начала.
Попробуй начать с себя.
С явления конкретных и верифицируемых *доказательств* твоего отличия от фигуранта тематической статьи (который тоже долгонько и столь же уверенно набрасывал влажные мрии, упорно игнорируя приводимые мной аргументы, пока не столкнулся с прискорбными следствиями нарушения правил ТБ, показавшими не-понимание ключевого аргумента).
ЗЫ: И про «далеко не ходить»:
$ which mceditwhich: no mcedit in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/lib/llvm/13/bin)
Кто бы сомневался, ты не способен на конкретику. Ты не можешь в логику предикатов, у тебя работает только логика авторитетов. Эти твои вечные отсылки к внешним авторитетам. Уныло до зевоты. Конкретику про термкап ты радостно заболтал.
> $ which mcedit
- Хе-хе, вим лучше, чем мцедит!
- Чем лучше?
- Чем мцедит!
Если тебе не нравится мцедит, хотя он тупо самый распространённый редактор из не входящих в базовые дистры по дефолту ви с нано, выбери любой другой. И таки попытайся доказать что ви лучше не потому, что он единственный, но лучше даже при богатом выборе альтернатив.
Кто бы сомневался, что ты в очередной раз не поймёшь указания на то, что твой любимый mcedit я в последний раз видел лет двадцать с гаком тому назад.
Ну и конечно же — точность и обоснованность критериев превосходства «даже при богатом выборе альтернатив».
Глагол суть не подразумевает усиления глаголом есть))
Язык тоже упрощается как текстовые редакторы.
Да ты гонишь, брат!!! Emacs коптит компуперный мир с 1976-го года....
emacs сложнее.
vi создавался для ситуаций, когда надо было редактировать удаленный файл, например по модему на скорости 1200 бод и кривой терминальной эмуляцией. VT100 хоть и был де факто стандартом, но я ни разу не видел, чтобы эмулятор совпадал полностью с termcap на удалённой системе, что-нибудь да не работало.
у vi два основных режима режим командный и режим редактирования (вставки). В командном режиме было удобно смотреть конфиги. не опасаясь, что помеха проскакивающая по каналу испортит файл.
Однако sys-apps/ed проще и надёжнее!
☺
ко всему привыкнуть можно
Дык!
вот же славные предки
и не жужжали.
Вы говорите так, как будто не помните побочных эффектов индустриализации…
Побочные эффекты есть у всего.
это да. две стороны медали, как говорится.
Однако если полагаете картинку заслуживающей упоминания, хотя бы в комментарии — стоит не полениться залить файл.
В противном случае она ненужна!
как выйти из vi?
P.S. Эх, ностальгия. Спасибо что напомнили :)
с сохранением - wq,
без сохранения - q!
:x
Да я-то знаю как выйти :) Это к тому, что это самый популярный вопрос, когда впервые знакомишься с этим редактором. По крайней мере на Stack Overflow :)
Актуальным он был давным-давно, когда деревья были большие а из vi выходили reset'ом…
Не помню, как назывался строчный редактор, котрым мы пользовались на ЕС-1045. ИМХО, это была самописная оболочка, сделанная тамошними админами, дабы не заморачиваться с предоставлением студиозусам полноценного доступа к штатным утилитам. Но да - режим выбора строки, укажи нужную, Ввод, выбери режим редактирования, укажи позицию в строке... Было несколько неожиданно, после каких-никаких, но экранных сервисов ДВК, Микроши и СМ-4.
В классическом TSO от z/OS (OS/360) - просто команда EDIT.
В ISPF - EDIT macro. Но ISPF (первый подход к "снаряду" 74 год) практически "новьё" по сравнению с TSO 71 года :)
Что было у вас - не знаю, от операционки тоже зависит :) Что украли, что дописали.
И вы не поверите - работают люди. И с комфортом. И не только админы - программисты. Используя и редактор (очень, кстати, удобный, расширяемый пользователем, с колоночными операциями, что удобно чертовски) и с использованием ISPF. Вот сегодня прям работают, и в России в том числе. Но уже не в таком количестве, как раньше
Вполне возможно, что это был какой-то штатный редактор - но как я уже сказал, оформлено было так, чтобы стьюденты доступа к консоли не имели. Наш ответ нортон командеру.
Разумно, на самом деле. Многие возможности - многие беды.
Уже давно используя RACF (Resource Access Control Facility, 76 год) можно тонко нарезать и ограничить кого попало, не только студентов. А можно не братьт RACF от IBM а взять от третьих фирм, ещё удобнее. Сама ОС не занимается аутентификацией и авторизацией, выставляет базовый API, используя который создаются продукты аутентификации/авторизации. Прикольная вещь, в плане того, что можно защищать. Перечень защищаемых ресурсов впечатляет.
Так что студент, получив логин TSO и запустив ISPF может работать смело в пределах допустимого. Даже программы писать и компилировать. А вот слинковать программу, использующую отдельные виды API - уже не сможет. Уже не говоря о запуске на исполнение.
Однако мой опыт говорит, что на RSBAC, по крайней мере в современных воплощениях, удобно наблюдать воплощение предупреждения господина Фокса.
Кто такой мистер Фокс и о чём он предупреждал?
Джозеф М. Фокс («Программное обеспечение и его разработка»).
В данном комментарии имеется в виду вывод о перспективах полного тестирования программно-аппаратного комплекса.
Занятно, что ISPF в ОS/370 - это не посимвольный экранный редактор в привычном смысле.
Редактирование текста на экране осуществлялось в основном средствами терминала IBM3270 без участия ОС.
В начале работы экран форматировался из ОС нередактируемыми и редактируемыми областями под "перфокарточные строки".
Далее пользователь что-то набирал в пределах редактируемых областей силами терминала.
После нажатия одной из клавиш, вызывающих прерывание (Fn), в ОС передавалось содержимое только измененных редактируемых областей экрана и код клавиши.
После отработки принятого содержимого экран форматировался заново, процесс повторялся.
Загрузка каналов, таким образом, была минимизирована, поэтому один мейнфрейм мог тогда обслуживать десятки-сотни терминалов IBM3270.
Кстати, именно оттуда, из стандарта ISPF, взят выход из установщика Windows по клавише F3.
И уши терминала IBM3270 (24 строки по 80 колонок) торчат не только в эмулируемом поныне VT100, но и в текстовом режиме BIOS персоналок (как никак IBM PC).
Хотя и сам терминал IBM3270 вторичен по отношению к IBM2260 - тот имел 12 строк по 80 колонок.
Ну этот совсем понятно откуда взялся - в точности шаблон перфокарты IBM, 1928 года рождения.
Про ускоритель шаттла шириной в две лошадиные задницы, конечно байка, но что в ИТ стандарты держатся десятилетиями - чистая правда!
Именно поэтому теримал 3270 (и 5250) уж никак не dump.
Это очень даже умные терминалы. По сравнению с другими.
Кстати, про десятки-сотни терминалов. Тысячи.
И даже в СССР. Интурист. Правда, система была ACP, которая ныне zTPF называется.
Но это вообще сильно "специальная" вещь.
Страницы