github.com/antirez/kilo
К вопросу об искусстве красиво программировать. Чувак сваял шедевр: законченный текстовый редактор, в том числе с подсветкой синтаксиса, всего в 1000 строк кода, не используя никаких сторонних библиотек. Даже без curses. Может быть, функционально редактор умеет немного, но тем не менее.

В мою молодость (конец 80-х) всякий уважающий себя программист считал должным написать свой текстовый редактор. Или существенно переделать существующий. И это была хорошая школа. Просто пользоваться редактором VI было слишком скучно. Вадик Антонов сделала свой собственный RED (если не ошибаюсь). У Андрея Чернова (ache) был редактор LE. Лёша Руднев сваял могучий RE на базе примитивного RAND Editor. Я тоже приобщился: переиначил тот же RE на более емаксовский/турбосишный стиль. У Сергея Рыжкова был "рыжактор" - но это ещё на БЭСМ-6.
Если кто желает набить руку и углубить владение языком Си, рекомендую челлендж: взять этот kilo за жабры и сделать из него редактор вашей мечты.
К вопросу об искусстве красиво программировать. Чувак сваял шедевр: законченный текстовый редактор, в том числе с подсветкой синтаксиса, всего в 1000 строк кода, не используя никаких сторонних библиотек. Даже без curses. Может быть, функционально редактор умеет немного, но тем не менее.

В мою молодость (конец 80-х) всякий уважающий себя программист считал должным написать свой текстовый редактор. Или существенно переделать существующий. И это была хорошая школа. Просто пользоваться редактором VI было слишком скучно. Вадик Антонов сделала свой собственный RED (если не ошибаюсь). У Андрея Чернова (ache) был редактор LE. Лёша Руднев сваял могучий RE на базе примитивного RAND Editor. Я тоже приобщился: переиначил тот же RE на более емаксовский/турбосишный стиль. У Сергея Рыжкова был "рыжактор" - но это ещё на БЭСМ-6.
Если кто желает набить руку и углубить владение языком Си, рекомендую челлендж: взять этот kilo за жабры и сделать из него редактор вашей мечты.

no subject
Date: 2023-12-02 23:56 (UTC)Красиво. Мне кажется. не так-то это просто; мечта должна быть реализуемой и консистентной. Где стрелки, где буквы, и нельзя ли макросы, и чтобы макросы потом не удивляли. И что с мышью (с курсором) делать. И что делать с UTF-8, а также со стеком undo/redo...
Не, мне нынче исключительно лень. Только если очень попросят.
no subject
Date: 2023-12-03 00:05 (UTC)https://github.com/lavv17/le
no subject
Date: 2023-12-03 00:21 (UTC)Хм, интересно. В принципе, меня почти устраивает и mc, и nano. Главное, они везде легко устанавливаются. Так-то по жизни я в ide все редактирую (кроме байтов, тогда mc).
Тут один знакомый (бывший коллега и при этом сын хорошего знакомого) поделился своими слайдами, нарисованными очень странным образом - https://github.com/blast-hardcheese/talks - вот это я и перевариваю сейчас.
no subject
Date: 2023-12-03 06:05 (UTC)IDE я иногда пользую для сложных вещей. Но IDE же всегда на локальной машине. А я обычно удалённо работаю, через терминал или ssh. Там простой текстовый редактор всё что нужно.
no subject
Date: 2023-12-03 07:25 (UTC)no subject
Date: 2023-12-04 22:38 (UTC)no subject
Date: 2023-12-03 04:43 (UTC)Не могу припомнить, чтоб понадобились макросы.
Ну так.
И не могу себе представить что-то удобнее vi.
Можно сценарий, когда его не хватит ?
А так, ну да, конечно, впечатляет.
no subject
Date: 2023-12-03 06:02 (UTC)VI не вполне wysiwyg. Надо мозги напрягать, помнить контекст и прочее. Не всем нравится. На безрыбье-то я и VI пользуюсь, но для продуктивной работы предпочитаю другой стиль.
no subject
Date: 2023-12-03 13:02 (UTC)no subject
Date: 2023-12-04 21:52 (UTC)no subject
Date: 2023-12-04 22:06 (UTC)В deco крайне полезной фичей біли иерархические пользовательские меню, я туда прописівал всю регламентную рутину, и скидівал коллеге на время отпусков :) Мол, никакой самодеятельности, жми Ф2 и далее до упора.
no subject
Date: 2023-12-03 17:29 (UTC)А это точно шедевр, в том смысле что так программировать хорошо?
Возвращаемое функцией malloc() значение используется сразу, без проверки на ноль. Данные хранятся в виде массива указателей на строки, без gap buffer. Поиск по каждой строке отдельно, без Бойера-Мура.
no subject
Date: 2023-12-04 05:33 (UTC)no subject
Date: 2023-12-06 03:34 (UTC)no subject
Date: 2023-12-06 04:55 (UTC)no subject
Date: 2023-12-06 04:57 (UTC)но моя библиотека символов и чтения нажатий клавиш для двк 2/3 ещё долго использовалась