Форум программистов, компьютерный форум, киберфорум
nezabudka
Войти
Регистрация
Восстановить пароль
Карта форума Блоги Сообщество Поиск Заказать работу  
Заберите себе весь мир, оставте мне один компьютер.
Оценить эту запись

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

Запись от nezabudka размещена 05.08.2017 в 19:10
Обновил(-а) nezabudka 06.08.2017 в 13:10

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

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

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

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

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

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

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

Эта статья хоть и не урок по Си а все же обсуждение именно
интерфейса программы, буду тем не менне признательна за найденные
ошибки в ее работе, коих по моему ожиданию должно быть множество
потому что мне не удалось удержаться в рамках минимализма ascii и
я попыталась включить в программу работу с кирилическими символами utf-8
которые имеют вдвое большую длинну что потянуло за собой например
перехват клавишь F5-F12 имеющих размерность 4 байта.
Все это нужно было отобразить в терминале и корректно редактировать
убирая на экране одну позицию и одновременно определять сколько
позиций должно при этом соответствовать в буфере.
репозиторий на гитхабе
видео на ютуб
Размещено в Без категории
Показов 2067 Комментарии 0
Всего комментариев 0
Комментарии
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru