![]() |
![]() |
![]() |
|
Скачать программы Сергея Хлыстуновского можно: здесь>>
|
|
|
История одной жизни.
Был в эпоху перехода от SVM к PC в нашей стране (1986-89) такой легендарный и тогда предельно функциональный текстовый редактор , который оставил заметный след в обеих (!) системах. В ДОСе он весил 110 К (скорей всего, уже и компрессированный), и было в нём, помимо абсолютно нужного, много чего абсолютно ненужного - я, например, после создания моего KHEDIT'а только пару раз пользовался только одной функцией KEDIT'а - сортировкой по алфавиту, а ведь в нём были ещё более экзотические навороты (цвет там тоже использовался, но не так функционально, как можно, как оказалось). Тем не менее, тогда в определённых кругах (например, в КИВЦе ТюменГазПрома , и, может даже, всей Тюменской области) только на нём и программировали. И я тоже. Причём сконфигурировал я тот KEDIT так, чтобы самые часто употребляемые сочетания клавиш совпадали с оными встроенного редактора второго (тогда) Нортон Коммандера (типа Ctrl+K - удаление до конца строки, и т. п.). А потом, глядя на томление моего коллеги, который всё порывался отковать что-то функциональней и КОМПАКТНЕЙ KEDIT'a , да так и не собрался, я взял и сделал то, что хотели и он, и я. Для этого понадобилось всего ничего - перелом ноги и служебная ЕС-1040 дома - натурально, без жёсткого диска, но зато с жёсткой необходимостью запихать всё нужное в виртуальный диск (отлаживать что бы то ни было на дискетах - удовольствие ниже среднего). Незадолго до этого я начал ваять программу компиляции рабочего расписания телерадиокомпании (получение из вполне наглядной диаграммы на экране бумажек, в которых по минутам расписано, что будет делаться в каждой аппаратной, кто будет это делать и с привлечением каких аппаратных средств). Понятное дело, сам проект был довольно объёмный, кроме того, в виртуальном диске был нужен компилятор с его библиотекой (уж не до TURBO. EXE!) , текстовый редактор и место для получаемого .EXE файла, причём свободной памяти должно было оставаться достаточно для работы компилятора и текстового редактора. О Нортоне в виртуальном диске я и не мечтал - зачем, когда можно процесс отладки зациклить в .BAT'е ? А ради убогого (тогда) встроенного редактора Нортона держать всё это хозяйство в памяти или, что то же, в виртуальном диске вряд ли оправдано. И даже PKLITE'а не было в те мрачные времена … Так что, чтобы работать над тем проектом, я был просто вынужден сначала сделать свой текстовый редактор, основной чертой которого была компактность. Сначала он весил 16 Kb. За 12 лет он увеличился в 4 раза. Но UCEXE .EXE делает его более чем в 2 раза компактней, так что редактор вполне вписывается в критический размер 32768 байт... В процессе работы
над редактором (тогда мне что-то стало решительно не до проекта компиляции
рабочего расписания телерадиокомпании - имел право: нога-таки!)) я с некоторым
недоумением обнаружил, что компилятор ТурбоПаскаля (а теперь и Делфи )
воспринимает символы ниже пробела как пробелы (жалко, остальные компиляторы
к ним придираются). Ну ладно, я стал цеплять их к логическим связям, типа
begin - end , case - end , if - then - else . Структурное программирование
стало ненужным в пунктах размещения одного оператора в строке и табуляции
блоков, зато на экране стало возможным размещать больше текста без потери
наглядности. А когда я уже без костылей вышел на работу, я и смекнул,
что те символы ниже пробела можно окрашивать разными цветами (ЕС-1040
- это всё же ч /б ХТ). Потом я стал ими красить слова, потом - концы строк
и строки целиком. Произвольный (в отличие от редакторов FARa , Delphi
и 1C'а, которые используют цвет не так функционально) цвет в plain text
стал второй (после компактности) отличительной чертой моего редактора.
То же, что принтер понимает те символы как управляющие, - не проблема, а чисто дело техники (см. KHEDIT.HLP). Да и кто сейчас печатает тексты помимо WORD'а или чего-то подобного? Естественно, для текстов .pas я предусмотрел shortcuts для основных ключевых слов, типа ^B для BEGIN , ^A для ABSOLUTE, и т. д. Также я реализовал динамическое определение макросов - (теперь) по Alt-Ctrl - Левый Shift +клавиша слово курсора (или помеченный блок) берётся в макросы, Alt - Ctrl+клавиша (или Alt-Ctrl-ПравыйShift+клавиша ) воспроизводит тот макрос. Я когда-то промышлял переводами мануалов всякой бытовухи , а там же для тупых юзеров всё иногда повторяется абзац к абзацу. Ну, и придумал я продолжение слова (фразы) в моём редакторе по ненужной в таких текстах клавише "\" - это сейчас даже встроенный редактор FAR'а (НУ СЛИШКОМ) назойливо предлагает продолжение слов, а тогда я был впереди планеты всей, жалко, что планета об этом не узнала... Причём поиск идёт сначала в файле SHORTS.KHE (достаточно одной таблэтки ... пардон, буквы) , потом (не удовлетворившись) - в редактируемом тексте вверх от позиции курсора, потом (если не находит) - вниз, потом (если не находит) поиск по тексту повторяется без учёта регистра. Ещё я реализовал воспроизведение буфера клавиатуры (до 15 нажатий клавиш) по нажатию клавиши gray Enter и запись/считывание того буфера в файл/из файла KBDBUFER.KHE. У меня дежурный KBDBUFER.KHE - повтор поиска строки ( Ctrl+Enter , при этом найденная строка становится верхней на экране, что чаще всего оправдано) , 6 нажатий клавиши СтрелкаВверх , 6 нажатий клавиши СтрелкаВниз и пометка найденного слова. Таким образом, то слово видно в контексте программирования, что очень хорошо в текстах .ASM, да и в текстах для других компиляторов, написанных по правилам, а не как я - всмятку. Это всё были мои идеи. А в WORD'е я подсмотрел идею макроса по пробелу: набирается сочетание букв, в природе не сосуществующее со следующим пробелом, нажимается пробел, и то сочетание букв заменяется на то, что надо. Это всё хранится опять же в файле SHORTS. KHE (мнемоника отделяется от расширения символом #7). Пример такого файла: кр#7котор#8 Очень удобно. Рекомендую. Таким образом, реализовано 4 (и даже немного больше) вида макросов, и это ещё одна отличительная черта моего редактора. Так что, если использовать их на полную катушку, набор текста становится похожим на игру в Тетрис, только завлекательней! 12 лет назад не было TurboVision , да и менюшки его весят неоправданно много, что не вписывается в концепцию Khedit 'а. Так что все меню – ручной работы, начиная с TurboPascal 'я – 4. Прежде чем читать KHEDIT.HLP ( KHEDIT'ом !), прочитайте WHATSNEW.TXT, поскольку в основном хелпнике кое-что устарело, а в WHATSNEW.TXT много новостей.
|
|
|
(с)
Сергей Хлыстуновский 2005 год.
|
|