Консольный текстовый редактор ted

Консольный текстовый редактор ted

Сообщение nezabudka » 29 июн 2017, 12:27

Я согласна с мнением многих экспертов полагающих,
что на время написания операционной системы plan9
весь отдел Bell Labs во главе с Дугласом Макилроем
украли гуманоиды. Если это так то гуманоиды похоже
были ребята не промах и мне показался очень забавным
их подход к построению интерфейса который с успехом,
вольно или не вольно, воплотил в жизнь виновник торжества
Роб Пайк, автор текстового редактора sam в операционной
системе plan9.

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

Вобщем насмотревшись на чудеса разботки пленников лаборатории
Белл Лабс я загорелась желанием очеловечить аскетичный интерфейс
консольной части текстового редактора sam. А также не являясь
профессионалом unix я решила перенести задуманное для разработки
на территорию линукс, где я чувствую себя немного уютней.

Достала старый велосипед, коробку гвоздей, пилочки и
открыла защитное поле, чтобы позволить экспансию из вне
иноплатеному разуму.

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

Думаю мало кому будет интересно внутреннее содержание программы да и главное
в ней это пример ее интерфейса взаимодействия с пользователем.
Я постаралась что бы все было максимально прозрачно и интуитивно понятно
в этом редакторе. Поэтому разобраться в нем будет легко любому, просто
установив его парой команд и запустив в терминале.
Для этого нужно по короткой инструкции склонировать репозиторий
на гитхабе, скомпилировать командой make и с ее же помощью
установить исполняемый файл и ман страницу в нужные директории.

Я не считаю себя программистом, поэтому в процессе разработки
многое пришлось приколачивать гвоздями и я стерла пару пилочек
для ногтей, но главное что я хотела показать это как может выглядеть
интерфейс подобного редактора без библиотеки ncurses, без собственного окошка
где все действия происходят непосредственно в окне терминала а его инструментами
являются только стандартные функци Си и системные вызовы ядра linux. Я
принципиально по воззможности не пользовалась даже функциями имеющими
статус высокоуровневых, не для того чтобы максимально увеличить
скорость работы приложения, а потому, что язык Си это в первую очередь,
по происхождению структурированный асемблер и мне очень интересна
именно такая практика, даже длинну строк там где
это было оправданно я вычисляла используя выражения
без использования функции strlen().

Эта статья хоть и не урок по Си а все же обсуждение именно
интерфейса программы, буду тем не менне признательна за найденные
ошибки в ее работе, коих по моему ожиданию должно быть множество
потому что мне не удалось удержаться в рамках минимализма ascii и
я попыталась включить в программу работу с кирилическими символами utf-8
которые имеют вдвое большую длинну что потянуло за собой например
перехват клавишь F5-F12 имеющими размерность 4 байта.
Все это нужно было отобразить в терминале и корректно редактировать
убирая на экране оду позицию и одновременно определять сколько
позиций должно при этом соответствовать в буфере.
https://github.com/olecya/ted
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Аватар пользователя
nezabudka
Местный говорун
Местный говорун
 
Автор темы
Сообщений: 607
Фото: 179
Стаж: 2 года 3 месяца 9 дней
Откуда: Ростов на Дону
Благодарил (а): 282 раз.
Поблагодарили: 141 раз.

Консольный текстовый редактор ted

Спонсор

Спонсор
 

Re: Консольный текстовый редактор ted

Сообщение nezabudka » 30 июн 2017, 11:43

Исправила некоторые ошибки и сделала новый коммит. Кто клонировал репозиторий -
обновите его. И на будущее, кому интересно, следите за обновлениями на гитхабе.
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Аватар пользователя
nezabudka
Местный говорун
Местный говорун
 
Автор темы
Сообщений: 607
Фото: 179
Стаж: 2 года 3 месяца 9 дней
Откуда: Ростов на Дону
Благодарил (а): 282 раз.
Поблагодарили: 141 раз.


Вернуться в C/C++

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1