Посвящение текстовому *редактору* vi

Аватар пользователя И-23

Что такое настоящая долговечность и истинное признание в мире ИТ? Это текстовый редактор vi!

Первая версия появилась примерно 45 лет назад. Но до сих пор начинающие юниксоиды плачут, смеются, продолжают есть кактус и писать свои впечатления от пользования сим незабвенным софтом.

Вы спросите,- какие вообще могут быть впечатления от пользования текстовым редактором?
Ха-ха три раза, дети юзер френдли интерфейса, адепты Джобса и Гейтса...
Это нельзя рассказать, это надо прожить и первый раз незабываем!

И-23: к вопросу о пользе *предварительного* ознакомления с документацией (на надлежащее написание которой ныне, в связи с победным шествием интуитивно-понятных интерфейсов положен болт, но то — отдельная печальная история).

Мой «первый раз» был основан на знании некоторого количества основных команд редактора ed. И некотором же опыте работы в оном. Так что никаких особенно выдающихся впечатлений в линии моего опыта не осталось ☺

Большинство сейчас, конечно, используют уже vim, а многие даже и не знают, что даже "классический" vi это суть есть визуальный режим редактора ex, который является упрощенной версией редактора en, который является модифицированной версией редактора em, который был создан потому что популярный на тот момент редактор ed БЫЛ СЛИШКОМ СЛОЖНЫМ ДЛЯ ПРОСТЫХ СМЕРТНЫХ.

Современные IT технологии слишком сложны?

Тогда подумайте о том, что ВИЗУАЛЬНЫЙ режим в ТЕКСТОВОМ РЕДАКТОРЕ был не всегда.

И был текстовый редактор без визуального интерфейса, который уже не казался слишком сложным "простым смертным". И в этих редакторах были написаны программы и расчеты, позволившие отправить людей на Луну.

Нет, мир и технологии не стали слишком сложными для человека, просто, перефразируя Михаила Юрьевича, богатыри - не мы.

Но, не все потеряно, ведь раз vi запускают, значит это кому-то нужно!?

Авторство: 
Копия чужих материалов
Комментарий автора: 

Полагаю полезным зафиксировать исторический экскурс.

Ибо из перечисленных в поле моего зрения остался только Прародитель, sys-apps/ed (кстати, вполне живой, текущая версия датируется мартом прошлого года).
Что, надо сказать, закономерно.
Да и сам vim — это не совсем *оригинальный* (и проприетарный) vi…

Комментарии

Аватар пользователя Пеннигер
Пеннигер(14 лет 1 месяц)

Еще бы не vi, если проблемы с клавишами в эмуляторах терминалов всё ещё с нами.

Аватар пользователя И-23
И-23(10 лет 5 месяцев)

Отрыжка давным-давно (по утверждениям получателей премий за) «решённой» проблемы кодировок.

Самое же печальное, что и в базовой консоли далеко не всё так гладко, как хотелось бы… ☹

Аватар пользователя TydymBydym
TydymBydym(4 года 3 месяца)

При чем тут терминальный доступ и кодировки, какая между ними связь?

Комментарий администрации:  
*** отключен (оскорбления Президента) ***
Аватар пользователя И-23
И-23(10 лет 5 месяцев)

Навык локализации консоли виден издалека.

Аватар пользователя TydymBydym
TydymBydym(4 года 3 месяца)

Проблема с клавишами в консоли вообще никаким боком к проблемам локализации. Если в протоколе терминального доступа нет кода кнопок управления курсором, к примеру, или кнопки Ctrl, то хоть ты голову себе разбей над особенностями локализации, а кнопками этими пользоваться не получится. Я тут как-то несколько лет назад упарился .exrc делать, чтобы vi в терминале графическом и в физической текстовой консоли хоть как-то однообразно курсор да Up-Down понимал, без отягощения доступом через последовательные линии. С ними вообще был бы голяк, думаю или пришлось бы набор файлов иметь и подменять при логине в зависимости от того, как сеанс получил. Специфика унаследованных решений, бедных на возможности, ничего не попишешь...

Комментарий администрации:  
*** отключен (оскорбления Президента) ***
Аватар пользователя gridd
gridd(9 лет 8 месяцев)

За то, как формируются сигналы управления терминалом в пользовательской сессии отвечает переменная TERM, например, TERM=ansi или TERM=vt100, эта переменная ссылается на описание терминала в terminfo (termcap) ( https://invisible-island.net/ncurses/man/terminfo.5.html

где прописано, что должен посылать в систему терминал, при нажатии на клавиши, в том числе функциональные, и как система на это должна реагировать.

terminfo под некоторые терминальные эмуляторы приходилось править самому. Было это лет 20 назад. компилируются исправления при помощи tic. К сожалению, делается это всё не быстро.

И это не бедные решения, это технологии древних, которые сейчас мало кто знает как использовать.

Аватар пользователя TydymBydym
TydymBydym(4 года 3 месяца)

Прочитал забавный текст про проблему кодировок.

Всё так, да не так. Отсутствует понимание главного - с какой радости Штаты должны были делать всему миру "хорошо"? Они сделали "хорошо" себе, стандартизировав себе таблицу символов в стародавние времена. Кто мешал подобное проделать другим странам и потом жестко следовать в рамках национального стандарта при работе со штатовскими компаниями (с IBM и прочими MS)? Если мы сами для себя не смогли сформировать (и, самое главное, потом придерживаться) стандарты на кодирование кириллицы, то ожидать подобного от разных иностранных компаний - верх наивности. Всякие ISO были, в первую очередь, для удобства местной разведки сделаны, чтобы как-то с чужеродной инфой работать в пределах правительственных структур, тут особых изысков не требуется.

Ровно тоже самое касается размеров байта, кстати. У нас зоопарк с этим делом был, пока не подсели на клонирование ЕС и СМ. Свои разработки до последнего были - кто в лес, а кто и по дрова. Тоже американцы нам в штаны наложили чтоли?

Комментарий администрации:  
*** отключен (оскорбления Президента) ***
Аватар пользователя И-23
И-23(10 лет 5 месяцев)

Об обеспеченности буржуинских претензий на «международность» разрабатываемых стандартов скромно промолчим…

Аватар пользователя TydymBydym
TydymBydym(4 года 3 месяца)

У них и чемпионаты тоже "международные". Однако же это не повод перекладывать свою часть вины на них. Они в данном вопросе более-менее молодцы, про свои интересы не забыли. Мы - не молодцы, многое тогда проморгали. Пенять теперь на то что они тогда оказались прозорливее нас... ну можно конечно, но смысл?

Комментарий администрации:  
*** отключен (оскорбления Президента) ***
Аватар пользователя И-23
И-23(10 лет 5 месяцев)

Ну да.
Искать надо там, где светло…

ЗЫ: Вспомните о результатах моделирования самого факта существования Государства Российского исходя из импоротных критериев.

Аватар пользователя TydymBydym
TydymBydym(4 года 3 месяца)

Серьезно?

Никто не даст нам избавленья:
Ни бог, ни царь и не герой.

Просто поставьте себя на их место и задайтесь вопросом "а зачем мне тратить время, деньги и прочие ресурсы на то что мне не нужно и никогда не понадобится?"

Наткнувшись с разбега на скамейку, можно сколько угодно обвинять скамейку в том что колено болит. Но это же инфантилизм. Сами-сами-сами.

Комментарий администрации:  
*** отключен (оскорбления Президента) ***
Аватар пользователя И-23
И-23(10 лет 5 месяцев)

Ну да. Конечно.
Предположение, что в стандарте, позиционируемом в качестве *международного* (!) будет надлежащим образом проработана поддержка одного из мировых языков — чистейшей воды «инфантилизм»®©™.

ЗЫ: Главное, ни в коем случае не покушаться на привиллегии корпораций, которым эталонно не-коррупционными методами удалось утвердить свои разработки в вожделенном качестве.

Аватар пользователя TydymBydym
TydymBydym(4 года 3 месяца)

Так принято. Собрать трёх калек и объявить это международной конференцией. 
И-23, я не пойму - вы жалуетесь на несправедливость мира? Ну таки да - мир ужасно несправедлив к тем, кто не определяет критериев справедливости. Если вы не занимаетесь сочинением стандартов, то сочинители стандартов займутся вами. И всё такое в том же ключе.

Ничего изменить нельзя, строча письма в Спортлото. Единственный способ что-то изменить - предложить свои стандарты, лучше устраивающие нас и, возможно, кого-то еще. А потом настоять на их использовании, приложив мегаусилия и мегасредства. По-другому это никак не сработает. Впрочем, применительно у UTF это уже не поменять, можно только подкорректировать - инерция всей системы запредельна, а проблемы с юникодом на фоне всех предыдущих проблем с кодировками почти смешны. Как говаривал отец Михалкова: "Стихи может и не шедевр, но петь будете стоя"

Попробуйте троичную логику аппаратную предложить - успех будет примерно таким же вероятным, как и с заменой юникода, т.е. вероятность будет нулевой.

Комментарий администрации:  
*** отключен (оскорбления Президента) ***
Аватар пользователя И-23
И-23(10 лет 5 месяцев)

Попробуйте начать с изучения руководства господина Брукса. Для уяснения перспектив формализации понятия «справедливости».

Злые люди говорят, что под эгидой победного шествия UTF8 (вспомните главное «достоинство»!!!) благополучно положили болт на реализацию исторических механизмов локализации.
При том, что вменяемой альтернативой (тут я достаточно глубоко не копал, пересказываю утверждения заинтересованных товарищей) и не пахнет.

Проблема победного шествия UTF8 надёжно решается комплексом мероприятий по взиманию штрафов за «неконкуррентные преимущества». Мысли о полезности которых практически самозарождаются на фоне разворачивающихся событий Величайшей Депрессии.

ЗЫ: А локализацию в консоли Вы зря не настраивали. Там более чем достаточно… нюансов.
Хотя бы с отображением и вводом буквы «ѣ».

Аватар пользователя TydymBydym
TydymBydym(4 года 3 месяца)

Я вам про Фому, а вы мне про Ерему. Ладно, вижу что не поняли мы друг друга, чего уж копья ломать теперь...

Комментарий администрации:  
*** отключен (оскорбления Президента) ***
Аватар пользователя guliaka
guliaka(11 лет 11 месяцев)

А просто "Disable application keypad mode" чё, не судьба??

Аватар пользователя vambr
vambr(13 лет 3 месяца)

Какое только дерьмо люди не жрут чтобы нормальный termcap не делать...

Аватар пользователя И-23
И-23(10 лет 5 месяцев)

Начните с формализации критериев нормальности.

И, напоследок, немного о нюансах практики:

// Про новую версию компилятора Си gcc-8

Чё ты мне стандартом в морду тычешь? У прадедов работало, у дедов работало, у меня всё работало, пока какой-то моржовый хер стандарт не почитал и не сломал всё.

Аватар пользователя vambr
vambr(13 лет 3 месяца)

Хе-хе, ты в своём унылом репертуаре. Применимо к термкапу "нормальность" самоочевидна - работоспособность. Полная работоспособность. При отлаженном термкапе ви(м) не нужен. Он так-то вообще не нужен, но по привычке хрен бы с ним. 

Аватар пользователя И-23
И-23(10 лет 5 месяцев)

Зацените упоротость, с которой критиканец следует догматам техники безопасности *идеального* дискурса (*никакой* (!!!) угрожаемой конкретики).

Прекраснее только демонстрация не-знания классических руководств (например господина Фокса).

Аватар пользователя vambr
vambr(13 лет 3 месяца)

Ага. Конкретики по термкапу ты избегаешь. Хотя куда уж конкретнее и очевиднее, вот файлик, вот нажатая клавиша, которая из-за косяков в том файлике действует не так, как требуется пользователю. Не-е-ет, тебе сначала нужно критерии нормальности выработать.

Или ты хочешь конкретики по ви? Осспидя, прошлых девятисот семнадцати срачей тебе не хватило? Хорошо, вот тебе конкретика: докажи мне что для выполнения повседневных задач редактирования текста ви требует меньше нажатий клавиш, чем более другие текстовые редакторы. Для конкретики сравнивай с mcedit, чисто чтобы далеко не искать. Для начала.

Аватар пользователя И-23
И-23(10 лет 5 месяцев)

Попробуй начать с себя.

С явления конкретных и верифицируемых *доказательств* твоего отличия от фигуранта тематической статьи (который тоже долгонько и столь же уверенно набрасывал влажные мрии, упорно игнорируя приводимые мной аргументы, пока не столкнулся с прискорбными следствиями нарушения правил ТБ, показавшими не-понимание ключевого аргумента).

ЗЫ: И про «далеко не ходить»:

$ which mcedit
which: no mcedit in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/lib/llvm/13/bin)

Аватар пользователя vambr
vambr(13 лет 3 месяца)

Кто бы сомневался, ты не способен на конкретику. Ты не можешь в логику предикатов, у тебя работает только логика авторитетов. Эти твои вечные отсылки к внешним авторитетам. Уныло до зевоты. Конкретику про термкап ты радостно заболтал.

> $ which mcedit

- Хе-хе, вим лучше, чем мцедит!
- Чем лучше?
- Чем мцедит!

Если тебе не нравится мцедит, хотя он тупо самый распространённый редактор из не входящих в базовые дистры по дефолту ви с нано, выбери любой другой. И таки попытайся доказать что ви лучше не потому, что он единственный, но лучше даже при богатом выборе альтернатив.

Аватар пользователя И-23
И-23(10 лет 5 месяцев)

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

Ну и конечно же — точность и обоснованность критериев превосходства «даже при богатом выборе альтернатив».

Аватар пользователя ctrl_points
ctrl_points(10 лет 7 месяцев)

классический" vi это суть есть визуальный режим

Глагол суть не подразумевает усиления глаголом есть)) 

Аватар пользователя Пеннигер
Пеннигер(14 лет 1 месяц)

Язык тоже упрощается как текстовые редакторы.

Аватар пользователя guliaka
guliaka(11 лет 11 месяцев)

Да ты гонишь, брат!!! Emacs коптит компуперный мир с 1976-го года....

Аватар пользователя gridd
gridd(9 лет 8 месяцев)

emacs сложнее.

vi создавался для ситуаций, когда надо было редактировать удаленный файл, например по модему на скорости 1200 бод и кривой терминальной эмуляцией. VT100 хоть и был де факто стандартом, но я ни разу не видел, чтобы эмулятор совпадал полностью с termcap на удалённой системе, что-нибудь да не работало.

у vi два основных режима режим командный и режим редактирования (вставки). В командном режиме было удобно смотреть конфиги. не опасаясь, что помеха проскакивающая по каналу испортит файл.

Аватар пользователя И-23
И-23(10 лет 5 месяцев)

Однако sys-apps/ed проще и надёжнее!

Аватар пользователя oblomingov
oblomingov(12 лет 6 месяцев)

ко всему привыкнуть можно smile37.gif

Аватар пользователя Older
Older(11 лет 9 месяцев)

Дык!

Аватар пользователя oblomingov
oblomingov(12 лет 6 месяцев)

вот же славные предки smile37.gif и не жужжали.

Аватар пользователя И-23
И-23(10 лет 5 месяцев)

Вы говорите так, как будто не помните побочных эффектов индустриализации…

Аватар пользователя ААП
ААП(10 лет 7 месяцев)

Побочные эффекты есть у всего.

Аватар пользователя oblomingov
oblomingov(12 лет 6 месяцев)

это да. две стороны медали, как говорится.

Скрытый комментарий И-23 (без обсуждения)
Аватар пользователя И-23
И-23(10 лет 5 месяцев)

Однако если полагаете картинку заслуживающей упоминания, хотя бы в комментарии — стоит не полениться залить файл.
В противном случае она ненужна!

Аватар пользователя Каудильо
Каудильо(6 лет 10 месяцев)

как выйти из vi? smile7.gif

P.S. Эх, ностальгия. Спасибо что напомнили :)

Аватар пользователя gridd
gridd(9 лет 8 месяцев)

с сохранением - wq, 

без сохранения - q!

Аватар пользователя И-23
И-23(10 лет 5 месяцев)

:x

Аватар пользователя Каудильо
Каудильо(6 лет 10 месяцев)

Да я-то знаю как выйти :) Это к тому, что это самый популярный вопрос, когда впервые знакомишься с этим редактором. По крайней мере на Stack Overflow :)

Аватар пользователя И-23
И-23(10 лет 5 месяцев)

Актуальным он был давным-давно, когда деревья были большие а из vi выходили reset'ом…

Аватар пользователя maxvlad
maxvlad(14 лет 1 месяц)

Не помню, как назывался строчный редактор, котрым мы пользовались на ЕС-1045. ИМХО, это была самописная оболочка, сделанная тамошними админами, дабы не заморачиваться с предоставлением студиозусам полноценного доступа к штатным утилитам. Но да - режим выбора строки, укажи нужную, Ввод, выбери режим редактирования, укажи позицию в строке... Было несколько неожиданно, после каких-никаких, но экранных сервисов ДВК, Микроши и СМ-4.

Аватар пользователя giray
giray(6 лет 2 месяца)

В классическом TSO от z/OS (OS/360) - просто команда EDIT.

В ISPF - EDIT macro. Но ISPF (первый подход к "снаряду" 74 год) практически "новьё" по сравнению с TSO 71 года :)

Что было у вас - не знаю, от операционки тоже зависит :) Что украли, что дописали.

И вы не поверите - работают люди. И с комфортом. И не только админы - программисты. Используя и редактор (очень, кстати, удобный, расширяемый пользователем, с колоночными операциями, что удобно чертовски) и с использованием ISPF. Вот сегодня прям работают, и в России в том числе. Но уже не в таком количестве, как раньше

Аватар пользователя maxvlad
maxvlad(14 лет 1 месяц)

Вполне возможно, что это был какой-то штатный редактор - но как я уже сказал, оформлено было так, чтобы стьюденты доступа к консоли не имели. Наш ответ нортон командеру.

Разумно, на самом деле. Многие возможности - многие беды.

Аватар пользователя giray
giray(6 лет 2 месяца)

Уже давно используя RACF (Resource Access Control Facility, 76 год) можно тонко нарезать и ограничить кого попало, не только студентов. А можно не братьт RACF от IBM а взять от третьих фирм, ещё удобнее. Сама ОС не занимается аутентификацией и авторизацией, выставляет базовый API, используя который создаются продукты аутентификации/авторизации. Прикольная вещь, в плане того, что можно защищать. Перечень защищаемых ресурсов впечатляет. 
Так что студент, получив логин TSO и запустив ISPF может работать смело в пределах допустимого. Даже программы писать и компилировать. А вот слинковать программу, использующую отдельные виды API - уже не сможет. Уже не говоря о запуске на исполнение.
 

Аватар пользователя И-23
И-23(10 лет 5 месяцев)

Однако мой опыт говорит, что на RSBAC, по крайней мере в современных воплощениях, удобно наблюдать воплощение предупреждения господина Фокса.

Аватар пользователя giray
giray(6 лет 2 месяца)

Кто такой мистер Фокс и о чём он предупреждал?

Аватар пользователя И-23
И-23(10 лет 5 месяцев)

Джозеф М. Фокс («Программное обеспечение и его разработка»).

В данном комментарии имеется в виду вывод о перспективах полного тестирования программно-аппаратного комплекса.

Аватар пользователя ers
ers(13 лет 7 месяцев)

Занятно, что ISPF в ОS/370 - это не посимвольный экранный редактор в привычном смысле. 
Редактирование текста на экране осуществлялось в основном средствами терминала IBM3270 без участия ОС.
В начале работы экран форматировался из ОС нередактируемыми и редактируемыми областями под "перфокарточные строки".
Далее пользователь что-то набирал в пределах редактируемых областей силами терминала. 
После нажатия одной из клавиш, вызывающих прерывание (Fn), в ОС передавалось содержимое только измененных редактируемых областей экрана и код клавиши.
После отработки принятого содержимого экран форматировался заново, процесс повторялся.
Загрузка каналов, таким образом, была минимизирована, поэтому один мейнфрейм мог тогда обслуживать десятки-сотни терминалов IBM3270.
 

Кстати, именно оттуда, из стандарта ISPF, взят выход из установщика Windows по клавише F3.
 

И уши терминала IBM3270 (24 строки по 80 колонок) торчат не только в эмулируемом поныне VT100, но и в текстовом режиме BIOS персоналок (как никак IBM PC).
Хотя и сам терминал IBM3270 вторичен по отношению к IBM2260 - тот имел 12 строк по 80 колонок.
Ну этот совсем понятно откуда взялся -  в точности шаблон перфокарты IBM, 1928 года рождения.

Про ускоритель шаттла шириной в две лошадиные задницы, конечно байка, но что в ИТ стандарты держатся десятилетиями - чистая правда!

Скрытый комментарий giray (без обсуждения)
Аватар пользователя giray
giray(6 лет 2 месяца)

Именно поэтому теримал 3270 (и 5250) уж никак не dump.

Это очень даже умные терминалы. По сравнению с другими.

Кстати, про десятки-сотни терминалов. Тысячи.

И даже в СССР. Интурист. Правда, система была ACP, которая ныне zTPF называется.

Но это вообще сильно "специальная" вещь.

Страницы