Multi-Edit Lite v.1.00i

Софт только для использования в DOS

Несколько исправлений в ME 6.1

Сообщение SergeCpp » 22 июл 2014, 15:43

(Для тех, кто не в курсе: ME Lite основан на ME 6.)

Код: Выделить всё
A. DirShell:

  1. Быстрое удаление файлов (вместо запуска COMMAND с командой
     DEL я использую функцию ME del_file

  2. Убраны лишние вопросы (при копировании и переименовании файлов
     не будет спрашивать Source file)

  3. Быстрый EXEC для выполнения копирования и переименования (я поставил
     ограничение памяти, необходимой для EXEC - 80K)

B. 30-строчный (8x16) режим на VGA вместо 33-строчного (8x12).
   В этом режиме ME будет нормально использовать шрифты, загруженные
   русификатором.

C. Русификация 30-строчного (EGA) и 33-строчного (VGA) режимов.
   При помощи любой подходящей программы (например DISKEDIT) поместите
   содержимое файла 12.FNT в ME.EXE по смещению 37656h

Anatoly Skoblov, Zero Divide
Вложения
SKOBLOV.ZIP
(3.38 Кб) Скачиваний: 672
Последний раз редактировалось SergeCpp 30 сен 2023, 23:41, всего редактировалось 1 раз.
Аватара пользователя
SergeCpp
Мастер Даунгрейда
 
Сообщения: 585
Зарегистрирован: 11 апр 2011, 12:49
Откуда: At Home

Re: Multi-Edit Lite v.1.00i

Сообщение Nika » 22 июл 2014, 18:15

SergeCpp,
спасибо за архивы.

Вот, кстати, моя коллекция шрифтов 80х33 для ME.
Там есть и шрифт в CP1251.
Плюс безобразная утилитка для преобразования шрифтов в текст.
.
Вложения
ME_FNT.RAR
(6.23 Кб) Скачиваний: 739
Последний раз редактировалось Nika 30 сен 2023, 23:41, всего редактировалось 2 раз(а).
Nika
Мастер Даунгрейда
 
Сообщения: 852
Зарегистрирован: 16 окт 2013, 23:21

Re: Multi-Edit Lite v.1.00i

Сообщение SergeCpp » 22 июл 2014, 19:32

Nika писал(а):Вот, кстати, моя коллекция шрифтов 80х33 для ME.
Там есть и шрифт в CP1251.
Плюс безобразная утилитка для преобразования шрифтов в текст.

Спасибо!
Последний раз редактировалось SergeCpp 30 сен 2023, 23:41, всего редактировалось 1 раз.
Аватара пользователя
SergeCpp
Мастер Даунгрейда
 
Сообщения: 585
Зарегистрирован: 11 апр 2011, 12:49
Откуда: At Home

Re: Multi-Edit Lite v.1.00i

Сообщение Nika » 23 июл 2014, 05:09

Добавлена примочка <COMM>
- закомментировать/раскомментировать текущую строку.
Это тоже аналог макроса для KEDIT/THE

Поддерживается комментирование строк для CPP(//) ,ASM(;), PAS({}), SRC({}).
В файлах других типов строки комментируются как в Си (/**/).

В общем, редакторчик теперь довольно-таки "заряженный". Если б мне его таким лет -надцать назад...
.
Вложения
comm_s.png
comm_s.png (3.43 Кб) Просмотров: 26052
comm.png
comm.png (6.03 Кб) Просмотров: 25445
Последний раз редактировалось Nika 30 сен 2023, 23:41, всего редактировалось 8 раз(а).
Nika
Мастер Даунгрейда
 
Сообщения: 852
Зарегистрирован: 16 окт 2013, 23:21

Быстрый поиск

Сообщение SergeCpp » 23 июл 2014, 20:43

Nika писал(а):...только вот ещё добавлена примочка <COMM> - и теперь да, всё.


Всё-всё... А как вы в этом редакторе БЫСТРО найдёте текущее слово (где курсор) -- выше, ниже? А это, как я сужу по себе, КРАЙНЕ часто нужно.

В 7 версии аж 3 способа: 1) Alt+Вверх/Вниз; 2) Alt+F5; 3) Control/Shift и MouseRightButtonClick. В разных Win-редакторах (сложившийся стандарт): Control+F3 и Control+Shift+F3.

Я, конечно, не уверен, что подобного тут нет, но, если всё же нет, то хорошо бы, чтоб было. Ну и, если есть, то стоит и рассказать, как тут это делается.

===

А инкрементальный (посимвольный) поиск? Ведь тоже ж ОЧЕНЬ удобен.
Последний раз редактировалось SergeCpp 30 сен 2023, 23:41, всего редактировалось 1 раз.
Аватара пользователя
SergeCpp
Мастер Даунгрейда
 
Сообщения: 585
Зарегистрирован: 11 апр 2011, 12:49
Откуда: At Home

Re: Быстрый поиск

Сообщение Nika » 24 июл 2014, 00:04

SergeCpp писал(а):... А как вы в этом редакторе БЫСТРО найдёте текущее слово (где курсор) -- выше, ниже? А это, как я сужу по себе, КРАЙНЕ часто нужно.
Нет, такой опции тут нет.
А ведь действительно, удобная вещь.. Хотя я и не привык к такому.
Такое обычно есть в Borland'овсих редакторах IDE, там при вызове Search поле уже по умолчанию заполнено текущим словом.
Да. Я задумался.

Вообще, достаточно, наверное, сделать "обёртку" для вызова стандартного диалога поска, когда указанное курсором слово вносится в глобальную переменную <SEARCH_STR>, используемую стандартным Search'ем для хранения предыдущего текста для поиска.
Но тогда эффект двоякий - тот текст, который там был, в этой переменной, теряется.
(Хотя, почему? - его же можно восстанавливать..)

Кстати, в редакторе Aurora видел тоже интересную опцию - все слова в тексте, найденные в результате последнего поиска, далее при редактировании выделены атрибутом.
Но то уж экзотика.
SergeCpp писал(а):А инкрементальный (посимвольный) поиск? Ведь тоже ж ОЧЕНЬ удобен.
Ну, это уж вряд-ли. Сильно нагруженная операция.
Последний раз редактировалось Nika 30 сен 2023, 23:41, всего редактировалось 4 раз(а).
Nika
Мастер Даунгрейда
 
Сообщения: 852
Зарегистрирован: 16 окт 2013, 23:21

Re: Быстрый поиск

Сообщение SergeCpp » 24 июл 2014, 02:54

Nika писал(а):
SergeCpp писал(а):... А как вы в этом редакторе БЫСТРО найдёте текущее слово (где курсор) -- выше, ниже? А это, как я сужу по себе, КРАЙНЕ часто нужно.

Нет, такой опции тут нет.
А ведь действительно, удобная вещь.. Хотя я и не привык к такому.
Да. Я задумался.

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

Nika писал(а):при вызове Search поле уже по умолчанию заполнено текущим словом

Это СОВСЕМ не то (см. ниже).

Nika писал(а):Вообще, достаточно, наверное, сделать "обёртку" для вызова стандартного диалога поска, когда указанное курсором слово вносится в глобальную переменную <SEARCH_STR>, используемую стандартным Search'ем для хранения предыдущего текста для поиска.
Но тогда эффект двоякий - тот текст, который там был, в этой переменной, теряется.
(Хотя, почему? - его же можно восстанавливать..)

Во-первых, это УЖЕ там так и есть. Если сессия новая -- прямо так. Если уже искали, то по стрелке вниз (в поле ввода строки поиска) это самое текущее слово и есть. Это я про 7 версию, где это изначально было.

Во-вторых, это СТРАШНО медленно и ещё отвлекаешься на лицезрение диалога, где ещё и настройки могут стоять НЕ ТЕ. Тут же -- именно поиск слова, независимо от настроек поискового окна.

(*) И, в-третьих, посмотрите, как это у меня сделано -- нажатие Alt+Вверх/Вниз включает некий временный режим, где можно легко, нажимая лишь Вверх/Вниз, перемещаться по словам, а, нажав Shift+Esc, переместиться к началу поиска.

Nika писал(а):Кстати, в редакторе Aurora видел тоже интересную опцию - все слова в тексте, найденные в результате последнего поиска, далее при редактировании выделены атрибутом.
Но то уж экзотика.

А такое и подобное есть в ME8 Windows (и дальше? не знаю). Удобно (хотя там и были ошибки, но это мелочи той реализации).

Nika писал(а):
SergeCpp писал(а):А инкрементальный (посимвольный) поиск? Ведь тоже ж ОЧЕНЬ удобен.
Ну, это уж вряд-ли. Сильно нагруженная операция.

А вот и нет. Попользуйтесь немного (у меня, например). Кстати, Джеф Раскин, очень известный человек (American human–computer interface expert best known for starting the Macintosh project for Apple in the late 1970s) в одном из своих разработанных компьютеров применил специальную кнопку (LEAP) для инкрементального поиска. О таком (и обо всяком вообще; и о диалоговых окнах поиска) поиске (и об этой кнопке) он много пишет в своей книге "Интерфейс: новые направления в развитии компьютерных систем" (начиная со стр. 151, двумя страницами ранее главы 5.4 "Поиск строк и механизмы поиска"). У меня бумажная, в сети, думаю, есть и электронная. Однозначно стоит прочесть. В книге масса очень полезной (и именно по текстовым редакторам) информации.

Дам цитату со стр. 151. (читать полностью)
Jef Raskin писал(а):Функция LEAP работает следующим образом: имеются две клавиши LEAP, находящиеся под большими пальцами. LEAP-Up производит поиск вперёд от позиции курсора, а LEAP-Down -- назад. При нажатии на клавишу LEAP включается квазирежим, после чего всё, что вы ввели, воспринимается как шаблон поиска.


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

P.S. Есть книга в сети: Джеф Раскин. Интерфейс: новые направления в проектировании компьютерных систем

P.P.S.
Изображение
Последний раз редактировалось SergeCpp 30 сен 2023, 23:41, всего редактировалось 5 раз(а).
Аватара пользователя
SergeCpp
Мастер Даунгрейда
 
Сообщения: 585
Зарегистрирован: 11 апр 2011, 12:49
Откуда: At Home

Re: Multi-Edit Lite v.1.00i

Сообщение Nika » 24 июл 2014, 03:30

Ну, что-ж, (спустя 4 часа)
добавлена опция QSCH - настроена на кнопки [Alt->] и [Alt<-].
Реализована, как я и говорил, как "обёртка" для обычного SEARCH.
Причём, если имеется текущий выделенный блок, то берётся для поиска его содержимое.
Иначе ищется слово, на котором при вызове макроса находился курсор.
Может, это и не так удобно, согласен, - но всёже размер маленький и довольно удобно.
Кстати, я подумывал, что хорошо бы иметь такую опцию, но делать не собирался.
Спасибо SergeCpp.
Обновил архив на странице скачивания.

Что касается "инкрементального поиска" - вряд-ли возьмусь, мудрёно слишком.
Как и за форматирование с выравниваием правой границы.
Сложно.

SergeCpp писал(а):P.P.S. {IMG KEYBOARD}
Ну, вообще-то, все эти эксперименты с "усовершенствованием" клавиатур не очень хороши.
Я стараюсь всегда ориентироваться на стандартную 101-клавишную клавиатуру. И то бывают на ноутбуках проблемы - там, где нет правого Ctrl, например..

-- Добавлено --
)) А ведь да, опасная функция QSCH.. Вызывает привыкание.
Последний раз редактировалось Nika 30 сен 2023, 23:41, всего редактировалось 6 раз(а).
Nika
Мастер Даунгрейда
 
Сообщения: 852
Зарегистрирован: 16 окт 2013, 23:21

Быстрый поиск

Сообщение SergeCpp » 24 июл 2014, 04:07

Nika писал(а):кнопки [Alt->] и [Alt<-]

А кнопки Alt-Вверх/Вниз у вас для чего используются? Логичнее именно их, так как поиск-то -- вверх и вниз.
(Alt-Влево/Вправо у меня для автозавершения.)

Nika писал(а):Причём, если имеется текущий выделенный блок, то берётся для поиска его содержимое.
Иначе ищется слово, на котором при вызове макроса находился курсор.

А вот практика "если выделен блок и в нём курсор, то делаем иначе (ищем не слово, а этот блок)" имеет тот же недостаток, что и одна клавишная комбинация для переключения языков -- нам нужно знать "состояние системы". А если нужно будет найти слово, на котором курсор, и слово это -- в блоке? Придётся отменять блок, что может быть крайне нежелательно. (Это ещё и "режим", критикуемый в книге Раскина.)

Советую:
1) Использовать Alt-клавиши для поиска слова -- всегда (если курсор не на слове, то, очевидно, ничего не искать).
2) Использовать Alt+Shift-клавиши для поиска блока (если блока нет, то, очевидно, ничего не искать). Тут ещё и выгода -- блоку нет необходимости: а) быть там, где курсор, б) быть вообще "где-то рядом" (например, блок выделен в начале текста, а вы ищете его, находясь в конце).
Можете у меня попробовать, как это работает -- и с блоком и со словом. Именно так. Удобно. (У меня ещё и "квадратные" блоки ищет, можете выделить "квадратик" и его искать -- бывает полезно при поиске языковых конструкций разных, например, двух скобок одна над другой.)

Nika писал(а):Что касается "инкрементального поиска" - вряд-ли возьмусь, мудрёно слишком.

Как видно из INCSRC.S (вверху там), я взял изначально текст инкрементального поиска из 8 версии для Windows. Там очень простой код, можете его и взять (из MEW 8).
Последний раз редактировалось SergeCpp 30 сен 2023, 23:41, всего редактировалось 2 раз(а).
Аватара пользователя
SergeCpp
Мастер Даунгрейда
 
Сообщения: 585
Зарегистрирован: 11 апр 2011, 12:49
Откуда: At Home

Re: Быстрый поиск

Сообщение Nika » 24 июл 2014, 05:27

SergeCpp писал(а):А вот практика "если выделен блок и в нём курсор, то делаем иначе (ищем не слово, а этот блок)" имеет тот же недостаток, что и одна клавишная комбинация для переключения языков -- нам нужно знать "состояние системы". А если нужно будет найти слово, на котором курсор, и слово это -- в блоке? Придётся отменять блок, что может быть крайне нежелательно. (Это ещё и "режим", критикуемый в книге Раскина.)
Ну, я как раз сделал так, что курсору необязательно находиться в блоке, но да, соображение верное - если нужно искать слово, тогда блок придётся отменить. Подумаю, может, переделаю этот момент.
SergeCpp писал(а):Как видно из INCSRC.S (вверху там), я взял изначально текст инкрементального поиска из 8 версии для Windows. Там очень простой код, можете его и взять (из MEW 8).
Спасибо, посмотрю. Вообще, нужно это всё теперь потестировать, проверить на удобность.
Хотя, к этим примочкам я уже и так привык, в других редакторах.

-- Добавлено --
Alt+Стрелка_вверх - настроил на показ ASCII-кода сивола в строке сообщений. Alt+Стрелка_вниз - пока свободна.
Но уж очень удобно Alt+Стрелка_вверх на показ ASCII. Уже пользуюсь, нравится.
Последний раз редактировалось Nika 30 сен 2023, 23:41, всего редактировалось 4 раз(а).
Nika
Мастер Даунгрейда
 
Сообщения: 852
Зарегистрирован: 16 окт 2013, 23:21

ASCII

Сообщение SergeCpp » 24 июл 2014, 05:55

Nika писал(а):Alt+Стрелка_вверх - настроил на показ ASCII-кода символа в строке сообщений.
Но уж очень удобно Alt+Стрелка_вверх на показ ASCII. Уже пользуюсь, нравится.

Это крайне неочевидно и неинтуитивно (+ это, всё же, достаточно редко нужно обычно, чтобы такую важную кнопку /Вверх/ занимать).

Если Alt+A -- таблица ASCII (вроде, изначально так), то логично сделать Alt+Control+A для неких операций с ASCII-кодом для отдельного Символа/Char/Control. "Неких" -- например, "показ ASCII-кода Символа в Строке Сообщений".

Согласитесь, выбрали Alt-Вверх, как первое удобное для вас лично (логика-то ясна, но ведь "вверх" много чего можно сделать и почему именно код символа -- совсем неочевидно всем остальным).

Поиск слова вверх/вниз по Alt-Вверх/Вниз тоже, вроде бы неочевиден сперва. А что ещё частоиспользуемое можно сделать со словом, чтобы вверх/вниз? Двигать? Строку -- можно, но это много реже. А слово вверх чтоб двигать -- крайне редкое действие. Можно регистр менять ВВЕРХ/вниз, да, это хорошая и логичная вещь, но -- много реже поиска слова (я по себе сужу).
Последний раз редактировалось SergeCpp 30 сен 2023, 23:41, всего редактировалось 3 раз(а).
Аватара пользователя
SergeCpp
Мастер Даунгрейда
 
Сообщения: 585
Зарегистрирован: 11 апр 2011, 12:49
Откуда: At Home

ASCII

Сообщение SergeCpp » 24 июл 2014, 07:43

А какой код или что у вас показывается в следующих случаях:

1) Курсор -- в конце строки, сразу за последним её символом (после нажатия клавиши End).
2) Курсор -- за концом строки, правее (1).
3) Курсор -- ниже последней строки файла.
4) Курсор -- в середине /не в начале/ табуляции (4.1. при настройке tabs=>spaces /заполнитель 0x20/; 4.2. при настройке use tabs /заполнитель 0xFF/).

Я бы так делал:
1) line_terminator (может быть пустой или 1 символ или 2 символа). Если пустой -- показывать <NoEoL>. Если два -- показывать оба.
2) Показывать <PastEoL> -- полезно, чтоб знать, что правее ничего нет.
3) Показывать <PastEoF> -- полезно, чтоб знать, что ниже ничего нет.
4) Показывать <Tab> и в 4.1 и в 4.2 -- полезно в обоих случаях, а в 4.1 -- очень (не раз бывало, что нужно было это знать именно в случае 4.1, те же исходники макро).

P.S. Запишу-ка я этот текст в TODO, тем более, что у меня свободна Alt+Control+A Изображение
Последний раз редактировалось SergeCpp 30 сен 2023, 23:41, всего редактировалось 1 раз.
Аватара пользователя
SergeCpp
Мастер Даунгрейда
 
Сообщения: 585
Зарегистрирован: 11 апр 2011, 12:49
Откуда: At Home

Преобразование типа блока

Сообщение SergeCpp » 24 июл 2014, 07:51

(Это из TODO.)

Всего 6 преобразований, 4 -- очевидны, а вот 2:
Line > Column: by leftmost and rightmost nonwhitespace.
Line > Stream: by leftmost nows in 1st line and by rightmost nows in last line.

Вроде бы разумно. А?
Последний раз редактировалось SergeCpp 30 сен 2023, 23:41, всего редактировалось 1 раз.
Аватара пользователя
SergeCpp
Мастер Даунгрейда
 
Сообщения: 585
Зарегистрирован: 11 апр 2011, 12:49
Откуда: At Home

Re: ASCII

Сообщение Nika » 24 июл 2014, 08:49

SergeCpp писал(а):Согласитесь, выбрали Alt-Вверх, как первое удобное для вас лично (логика-то ясна, но ведь "вверх" много чего можно сделать и почему именно код символа -- совсем неочевидно всем остальным).
- Причина та, что, перемещаясь по тексту стрелками, на нужных символах дожимаю Alt - так удобней всего. И, как я уже убедился, удобно, что строка сообщений после этого не очищается.
SergeCpp писал(а):А какой код или что у вас показывается в следующих случаях:
1) Курсор -- в конце строки, сразу за последним её символом (после нажатия клавиши End).
2) Курсор -- за концом строки, правее (1).
3) Курсор -- ниже последней строки файла.
4) Курсор -- в середине /не в начале/ табуляции (4.1. при настройке tabs=>spaces /заполнитель 0x20/; 4.2. при настройке use tabs /заполнитель 0xFF/).
1) 255/FFh
2) 255/FFh
3) 255/FFh
4) - Например, ввели строку: 1<TAB>2
Тогда следующий после "1" - код 09/09h, дальше , не доходя до "2" - символы с кодами 255/FFh (заполнитель) и потом "2"=50/32h, дальше всё - 255/FFh .
Я обычно не использую "сжатие с помощью spaces->tabs".
Тогда все символы между '1' и '2' пробелы с кодом 20/20h.

--добавлено--
А вот для Фотона - символ-заполнитель, похоже, не 255, а 00.
Делал заменитель функции AT_EOL - получилось такое: (CUR_CHAR='|0').
Просто функция AT_EOL там то-ли не реализована, то-ли не работает - макро завершается с ошибкой.

-------------------------------------------
В ME это (tabs<->spaces) невнятно реализовано, - "удобно".
В KEDIT/THE есть две опции - TABSIN и TABSOUT - это значит, заменять <tab> на пробелы при чтении и при сохранении файла.
То-есть, если в файле "1<TAB>2", то и на экране и отобразится 3 символа - 31h,09h,32h (если TABSIN=on)
Так же и сохранён будет файл - 3 символа 31h,09h,32h (если TABSOUT=on). Всё просто.
.
Вложения
t_in_off.png
SET TABSIN OFF
t_in_off.png (15.78 Кб) Просмотров: 25419
t_in_on.png
SET TABSIN ON
t_in_on.png (10.65 Кб) Просмотров: 25450
Последний раз редактировалось Nika 30 сен 2023, 23:41, всего редактировалось 11 раз(а).
Nika
Мастер Даунгрейда
 
Сообщения: 852
Зарегистрирован: 16 окт 2013, 23:21

Re: Multi-Edit Lite v.1.00i

Сообщение Nika » 23 июн 2015, 12:43

Сайт multiedit.com полностью переработан и имеет новый по максимуму кастрированный функционал.
Теперь никаких загрузок демоверсий и версий из архивов..
Welcome to our newly redesigned site. Please take a look around and check back here for helpful articles about using MultiEdit products!

Мои поздравления
Последний раз редактировалось Nika 30 сен 2023, 23:41, всего редактировалось 2 раз(а).
Nika
Мастер Даунгрейда
 
Сообщения: 852
Зарегистрирован: 16 окт 2013, 23:21

Пред.След.

Вернуться в Программы для DOS

Кто сейчас на конференции

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