Multi-Edit Lite v.1.00i

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

Multi-Edit Lite v.1.00i

Сообщение Nika » 19 июл 2014, 17:03

Вот, решил создать такую тему, чтобы сэкономить место на странице загрузки.

Лого программы, о которой идёт речь:
.
Вложения
mel1.png
mel1.png (5.74 Кб) Просмотров: 14661
Последний раз редактировалось Nika 19 июл 2014, 18:21, всего редактировалось 3 раз(а).
Nika
Мастер Даунгрейда
 
Сообщения: 659
Зарегистрирован: 17 окт 2013, 00:21

Re: Multi-Edit Lite v.1.00i

Сообщение Nika » 19 июл 2014, 17:13

SergeCpp пишет:
#58 Автор: SergeCpp (2014.07.19 14:07)

1. Интересные скриншоты.

2. А что там за форматирование такое в KEDIT?

3. показ ASCII-кода текущего символа
===
Нажмите у меня Alt+Control+Shift+H

4. Лучше бы, конечно, чтобы это отображалось динамически, как в правом верхнем углу L:... C:...
===
А вот мне такое не нравится, что в Фаре, что ещё где-то видел, поэтому и не стал делать.
Возможно потому не нравится, что это мне нужно крайне редко (хотя и нужно, поэтому и сделал линейку).
Да, это (динамически), кстати, есть как пример в me_fresh:intercep.s:ascicode -- ужас, конечно, хотя и пригодился, помню (весь тот файл), для исследования работы редактора в ранние времена.

5. А линейкой Alt+Control+Shift+W кроме очевидного, видно также то самое Rus-Eng mix, о котором мы на форуме говорили.

6. В меню -- проверьте, работает ли тут то, что я случайно обнаружил в 7 версии. Что именно -- нажмите у меня Alt+H, видите "encyclopedia" на разделительной строке? См. resource.s (там много такого вида строк, очень удобно).

И опять, как в случае с pos() и xpos(), они это нигде (вроде бы совсем?) не используют.

Только resource.s не правьте! Исходный текст тут -- resource.db (в 7 версии). У меня для этого в меню (в режиме программиста) пункт есть: Alt+M, Rebuild RESOURCE.MAC -- всё само сделается. Почти всё -- нужно будет ещё выйти из редактора и запустить util\make_mcl.bat. У меня для этого есть специальная кнопка: http://old-dos.ru/index.php?page=screen&do=show&id=2660 -- самая левая, где Multi-Edit (где заголовок "Память").

7. последнее спрошенное значение продолжает отображаться в строке сообщений
===
У меня строка сообщений очищается после некоторого времени бездействия.
Это типа screensaver для этой строки.
Зачем? Чтобы на экране меньше было отвлекающей информации. Особенно это нужно в Layout B (Alt+Control+Shift+B), в котором удобно и книжки читать (отключив ещё и курсор: Alt+O, Cursor).

Отвечаю:

2. А что там за форматирование такое в KEDIT?
В KEDIT'е удобное форматирование. Пользуюсь всегда им. Всё просто и со вкусом:
Форматирование текста в KEDIT'е: <Ctrl+F>
Опции форматирования задаются в профайле или командой из ком.строки:

[Set] FORMAT Justify|NOJustify [BLANK|EXTENDed] [SIngle|DOuble]
Default: NOJUSTIFY BLANK DOUBLE
-- Control options used in paragraph formatting
-- Управление опциями, используемыми при форматирования параграфа.
-------------------------------------------------------------
- Justify/NOJustyfy - изменять ли число пробелов между словами для выравнивания правой колонки;
- [BLANK|EXTENDed] - если следующая строка начинается пробелом, форматировать и ее как часть текущего параграфа, или считать ее началом нового параграфа и прервать форматирование;
- [SIngle|DOuble] - Это я не знаю, что за опция.
-------------------------------------------------------------

У меня в PROFILE.KEX задано:
'Set FORMAT Justify EXTENDed DOuble'
-- и всё в порядке.

Нажмите у меня Alt+Control+Shift+H
Да, это RULER. Удобная вещь, но пользуюсь ею редко.
Вот на странице KEDIT'a скриншот сейчас положил, как это выглядит:
http://old-dos.ru/index.php?page=screen&do=show&id=4194

В THE.EXE похожий рулер, но ещё и со строкой ASCII-кодов, как в ME. (см.ниже - скриншот).
Редко ею пользуюсь. А вот отображением текущего ASCII - наоборот, часто.
Удобно посмотреть код символа в строке и внести его тут же в текст программы.
Как сейчас в MEL - это удобно, поскольку значение продолжает отображаься в строке сообщений.
Присобачил себе такое и в ME6.10p. (см.скриншот).
Кстати, там горячая клавиша задана <Alt=>, - удобно добавить и <AltUP> (Alt+стрелка вверх).

В меню -- проверьте, работает ли тут то, что я случайно обнаружил в 7 версии. Что именно -- нажмите у меня Alt+H, видите "encyclopedia" на разделительной строке?
Проверил - работает. (см.скриншот)

У меня строка сообщений очищается после некоторого времени бездействия.
Это типа screensaver для этой строки.
Круто..



Скриншоты:
.
Вложения
me6_asci.png
Присобачил вот макрос ASCI. То, что нужно.
me6_asci.png (5.23 Кб) Просмотров: 14540
the_ruler.png
Линейка - так она сделана в THE.EXE
the_ruler.png (6.25 Кб) Просмотров: 14464
mel1_mnu.png
Работает текст в разделительных линиях в меню.
mel1_mnu.png (3.91 Кб) Просмотров: 14520
Последний раз редактировалось Nika 19 июл 2014, 18:20, всего редактировалось 12 раз(а).
Nika
Мастер Даунгрейда
 
Сообщения: 659
Зарегистрирован: 17 окт 2013, 00:21

Re: Multi-Edit Lite v.1.00i

Сообщение SergeCpp » 19 июл 2014, 18:23

1. По форматированию: удобно иметь разные команды для выравнивания/невыравнивания правой границы.
viewtopic.php?p=1369#p1369

"если следующая строка начинается пробелом, форматировать и ее как часть текущего параграфа, или считать ее началом нового параграфа и прервать форматирование" -- вернее представляется подход, когда пробел в начале строки не имеет особого значения (проверки на новый абзац). Если проверять начало строки на пробел, то не отформатировать текст, который весь начинается с колонки 10, например (без рассматриваемой настройки).

Новый абзац лучше определять по пустой строке (у меня ещё и в том случае, если начало следующей строки -- правее предыдущей /это удобно, если текст без пустых строк между абзацами/). В 7 версии опять (как и в spell) есть какие-то функции ядра для форматирования, но их работа мне не понравилась и я их не использую (сколько помню). См. textform.s. У меня ещё переносы убираются (только однострочные: "пе- ре- нос"), это, может, и спорно, но уж очень пригодилось в деле. "Скобочные" Alt()[] в обычных текстах переходят по абзацам. И Alt+L для установки правой границы (а в режиме программиста там побольше настроек).

2. http://old-dos.ru/index.php?page=screen&do=show&id=4194
А что означают эти там знаки всякие на линейке? Неясно. | -- "ноль" или левая граница текста? ] -- правая? T -- табуляции? Цифры -- кратные 10 позиции? Точки? Плюсики? Параграф -- отступ абзаца?
Это всё же другая линейка (я писал о ACSH), у меня она по ACSO, и мне более удобна (в строке сообщений там написано, что можно делать).
А вертикальная у меня только по Alt+Ins, KeyPad-Center.

3. (Про текст в разделителе в меню.) Такое впечатление, что это они специально забыли и не использовали, чтобы кто-нибудь нашёл позже :)
Аватара пользователя
SergeCpp
Мастер Даунгрейда
 
Сообщения: 451
Зарегистрирован: 11 апр 2011, 13:49
Откуда: At Home

Re: Multi-Edit Lite v.1.00i

Сообщение Nika » 19 июл 2014, 18:27

SergeCpp писал(а):Новый абзац лучше определять по пустой строке
Согласен.
Это и соответствует установке:
У меня в PROFILE.KEX задано:
'Set FORMAT Justify EXTENDed DOuble'
-- и всё в порядке.


SergeCpp писал(а):А что означают эти там знаки всякие на линейке? Неясно. | -- "ноль" или левая граница текста? ] -- правая? T -- табуляции? Цифры -- кратные 10 позиции? Точки? Плюсики? Параграф -- отступ абзаца?
'T' (KEDIT) и '|'(THE.EXE) - позиции табуляции. Цифры и плюсы - просто шкала. ']' - правая граница текста.
На тех картинках, собственно, совмещены линейки табуляции и позиции - я так делаю для компактности отображения.

Кстати, обнаружил наконец-то давно искомый баг в макросе THE.EXE, который убивал редактор при использовании определённого нестандартного синтаксиса в макросе. Такой синтаксис и использовался в паре примеров макросов 2001 года.
Собственно, глючит не сам редактор, а REXX (он отдельная программа).
Марк Хесслинг, похоже, забил те баги в те макросы специально для последующего тестирования бага в REXX, да так и оставил.
В современной версии REXX баги те не устранены (в смысле, что не обнаруживается нарушение правил синтаксиса макроса).
Сейчас оба те макро работают великолепно, с исправленными синтаксисом. Ай, Хесслинг..

SergeCpp писал(а):3. (Про текст в разделителе в меню.)
- Думаю, делалось больше для себя и чтобы облегчить кастомные настройки редактора под конкретных клиентов. Но тот текст вообще-то довольно сильно захламляет меню.
Последний раз редактировалось Nika 19 июл 2014, 19:23, всего редактировалось 11 раз(а).
Nika
Мастер Даунгрейда
 
Сообщения: 659
Зарегистрирован: 17 окт 2013, 00:21

Re: Multi-Edit Lite v.1.00i

Сообщение SergeCpp » 19 июл 2014, 18:43

Nika писал(а):
Nika писал(а):последнее спрошенное значение продолжает отображаться в строке сообщений

SergeCpp писал(а):У меня строка сообщений очищается после некоторого времени бездействия. Это типа screensaver для этой строки. Зачем? Чтобы на экране меньше было отвлекающей информации. Особенно это нужно в Layout B (Alt+Control+Shift+B), в котором удобно и книжки читать (отключив ещё и курсор: Alt+O, Cursor).

Круто.

Да, "Есть зарядка для хвоста. И для хобота зарядка.". Действительно, читаешь книгу, а вверху какой-то постоянно текст совершенно ненужный висит и внимание отвлекает. Для этого и сделал-с. См. mesys.s^autosavetimer:
Код: Выделить вс
  if( !global_int( "@ASV_FILES_SAVED" ) &
      !global_int( "@STAT_SAVED"      ) &
      !global_int( "@STAT_DENY"       ) )
  {
    if( _me_call_depth() == 2 )
    {
      // idle & not in macro

      make_message( "" );
    }
  }
Аватара пользователя
SergeCpp
Мастер Даунгрейда
 
Сообщения: 451
Зарегистрирован: 11 апр 2011, 13:49
Откуда: At Home

Re: Multi-Edit Lite v.1.00i

Сообщение Nika » 19 июл 2014, 18:48

SergeCpp писал(а): Действительно, читаешь книгу, а вверху какой-то постоянно текст совершенно ненужный висит и внимание отвлекает. Для этого и сделал-с. См. mesys.s^autosavetimer:
 Развернуть: +
Код: Выделить вс
  if( !global_int( "@ASV_FILES_SAVED" ) &
      !global_int( "@STAT_SAVED"      ) &
      !global_int( "@STAT_DENY"       ) )
  {
    if( _me_call_depth() == 2 )
    {
      // idle & not in macro

      make_message( "" );
    }
  }
Хм. Не думал, что это сделано в макросе. Спасибо за подсказку. Полезная возможность.
-- Добавлено --
Впрочем,если фича работает при автосохранении файлов, то мне такое не подходит - у меня автосохранение зарублено напрочь.
Последний раз редактировалось Nika 19 июл 2014, 18:58, всего редактировалось 7 раз(а).
Nika
Мастер Даунгрейда
 
Сообщения: 659
Зарегистрирован: 17 окт 2013, 00:21

Re: Multi-Edit Lite v.1.00i

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

Nika писал(а):
SergeCpp писал(а):3. (Про текст в разделителе в меню.)
- Думаю, делалось больше для себя и чтобы облегчить кастомные настройки редактора под конкретных клиентов. Но тот текст вообще-то довольно сильно захламляет меню.

Чёрно-белое -- да. У меня же этот текст слабозаметным цветом выводится. И текст пунктов меню при этом можно и сократить, что в общем -- удобнее, см., например, меню Alt+S.

Nika писал(а):
SergeCpp писал(а):Про screensaver для строки.

Хм. Не думал, что это сделано в макросе. Спасибо за подсказку. Полезная возможность.
Впрочем,если фича работает при автосохранении файлов, то мне такое не подходит - у меня автосохранение зарублено напрочь.

А вы можете свой таймер запустить для разных background-целей. У меня, например, такой есть, он: 1) подсвечивает установленные (Control+F4) метки; 2) выводит вверху имя макро (+номер её строки, +ближайшую вверх метку, +номер и её строки) в исходном тексте (перекрывая порой текст строки сообщений, но это уж так есть, чтоб не заводить ещё строку); 3) ещё что-то. См. mesys.s:
Код: Выделить вс
#define BACK_TICK 11 // prime number

global
{
  int ~back_timer;
}

void back_timer_set() trans
{
  if( ~back_timer )
  {
    back_timer_clr();
  }

  ~back_timer = set_timer_event( "back_timer", BACK_TICK, ALL );
}

void back_timer_clr() trans
{
  if( ~back_timer )
  {
    kill_timer_event( ~back_timer );
    ~back_timer     = 0;
  }
}

macro back_timer no_break trans2
{
  // @XREF BUSY_CHECK explained

  ...


И start.s:
Код: Выделить вс
  // log if left <Ctrl> was pressed

  if( keyb_1_stat & 0x01 )
  {
    rm( "USERLOG" );
  }

  // at last

  back_timer_set();

  // startup statistics if <ScrollLock> is on

  if( KEYB_0_GET & 0x10 )
  {

  ...
Аватара пользователя
SergeCpp
Мастер Даунгрейда
 
Сообщения: 451
Зарегистрирован: 11 апр 2011, 13:49
Откуда: At Home

Re: Multi-Edit Lite v.1.00i

Сообщение Nika » 19 июл 2014, 19:48

SergeCpp писал(а):[..] вы можете свой таймер запустить для разных background-целей. У меня, например, такой есть, он: 1) подсвечивает установленные (Control+F4) метки; 2) выводит вверху имя макро (+номер её строки, +ближайшую вверх метку, +номер и её строки) в исходном тексте (перекрывая порой текст строки сообщений, но это уж так есть, чтоб не заводить ещё строку); 3) ещё что-то. См. mesys.s:
Спасибо. Полезная информация.

SergeCpp писал(а):Чёрно-белое -- да. У меня же этот текст слабозаметным цветом выводится. И текст пунктов меню при этом можно и сократить, что в общем -- удобнее, см., например, меню Alt+S.
Да. Соглашусь. Выглядит неплохо (См.скриншот).
Ну, буду знать, что есть такая возможность.
Вложения
me7pmod.png
me7pmod.png (7.22 Кб) Просмотров: 14431
Последний раз редактировалось Nika 20 июл 2014, 03:41, всего редактировалось 3 раз(а).
Nika
Мастер Даунгрейда
 
Сообщения: 659
Зарегистрирован: 17 окт 2013, 00:21

Новые скриншоты

Сообщение SergeCpp » 21 июл 2014, 00:10

Хотел я сделать аналогичное скриншоту 007 (в me8 для windows такое, кажется, есть), так и не собрался. В файле TODO только запись есть (вроде бы). Кроме строки, можно ещё и символ. А строку можно и вертикальную. Также можно, если строка, сдвигать её при каждой итерации -- на N символов или на M слов или на K строк или вместе. Символ тоже можно или сдвигать или задавать процент заполнения. Диалог там простой представляется. Если строка длиннее или короче, можно тоже что придумать. Это я расписываю, как сам стал бы делать (и заняло бы это у меня как минимум месяц).

А по сдвигу блока я не понял -- выделена ведь колонка -- как (и что?) двигать-то? У меня строковые только можно (Alt+Control[+Shift]I/U, и строка: Control[+Shift]I/U).
Последний раз редактировалось SergeCpp 21 июл 2014, 00:21, всего редактировалось 3 раз(а).
Аватара пользователя
SergeCpp
Мастер Даунгрейда
 
Сообщения: 451
Зарегистрирован: 11 апр 2011, 13:49
Откуда: At Home

Re: Multi-Edit Lite v.1.00i

Сообщение Nika » 21 июл 2014, 00:12

Добавились "плюшки".
На этом возню с "добавлениями" можно считать оконченной.
Выдалось вот время - поделал всё, что накопилось с ~1995 года...
Вложения
add_8.png
add_8.png (6.05 Кб) Просмотров: 14332
Последний раз редактировалось Nika 21 июл 2014, 00:14, всего редактировалось 1 раз.
Nika
Мастер Даунгрейда
 
Сообщения: 659
Зарегистрирован: 17 окт 2013, 00:21

Re: Новые скриншоты

Сообщение Nika » 21 июл 2014, 00:19

SergeCpp писал(а):Хотел я сделать аналогичное скриншоту 007 (в me8 для windows такое, кажется, есть), так и не собрался. В файле TODO только запись есть (вроде бы). Кроме строки, можно ещё и символ. А строку можно и вертикальную. Также можно, если строка, сдвигать её при каждой итерации -- на N символов или на M слов или вместе. Диалог там простой представляется. Если строка длиннее или короче, можно тоже что придумать. Это я расписываю, как сам стал бы делать (и заняло бы это у меня как минимум месяц).

А по сдвигу блока я не понял -- выделена ведь колонка -- как (и что?) двигать-то? У меня строковые только можно (Alt+Control[+Shift]I/U, и строка: Control[+Shift]I/U).
SergeCpp,
заберите вот это:
>(во вложении)<
Просто посмотрите, что там и как.
Эти макросы (по логике,а не реализации) в других редакторах у меня уже лет 15 как.
Идея вынашивалась давно, поэтому оба макро заняли у меня часа три отсилы.
В общем, я доволен.

BLKHIFT работает так: Весь блок, что в него попало и что справа от него, сдвигается вправо или влево.
Если влево - то обрезается всё, что сдвигается за левую границу блока.

>(вложение)< - удалил.
Последний раз редактировалось Nika 21 июл 2014, 00:58, всего редактировалось 8 раз(а).
Nika
Мастер Даунгрейда
 
Сообщения: 659
Зарегистрирован: 17 окт 2013, 00:21

Re: Новые скриншоты

Сообщение SergeCpp » 21 июл 2014, 00:34

http://rghost.ru/57004921
Просто посмотрите, что там и как.
Эти макросы (по логике,а не реализации) в других редакторах у меня уже лет 15 как.
===
Спасибо, посмотрю (когда и если rghost откроется).

BLKHIFT работает так: Весь блок, что в него попало и что справа от него, сдвигается вправо или влево.
Если влево - то обрезается всё, что сдвигается за левую границу блока.
===
Ясно. У меня влево не даёт стереть непробельные символы.
Аватара пользователя
SergeCpp
Мастер Даунгрейда
 
Сообщения: 451
Зарегистрирован: 11 апр 2011, 13:49
Откуда: At Home

Re: Новые скриншоты

Сообщение SergeCpp » 21 июл 2014, 00:45

Nika писал(а):Идея вынашивалась давно, поэтому оба макро заняли у меня часа три отсилы.

Я не умею и, скорее, не желаю что-то делать спортивно, на скорость, даже если всё сто раз продумано.

P.S. Вижу вложение, сейчас возьму, спасибо ещё раз.
Последний раз редактировалось SergeCpp 21 июл 2014, 00:47, всего редактировалось 1 раз.
Аватара пользователя
SergeCpp
Мастер Даунгрейда
 
Сообщения: 451
Зарегистрирован: 11 апр 2011, 13:49
Откуда: At Home

Re: Новые скриншоты

Сообщение Nika » 21 июл 2014, 00:47

SergeCpp писал(а):Ясно. У меня влево не даёт стереть непробельные символы.
В этом и есть "подрезка". Символы удаляются, но удалённые подсчитываются и если не 0 - выводится сообщение.
Если подрезка не входила в планы - можно тут же сделать UNDO.

SergeCpp писал(а):Я не умею и, скорее, не желаю что-то делать спортивно, на скорость, даже если всё сто раз продумано.
Согласен.
Я вот никогда не мог понять людей, устраивающих "состязания по программированию". Нонсенс.
Делать всё нужно медленно и уверенно, - тогда и работать будет, как трактор.
Последний раз редактировалось Nika 21 июл 2014, 00:54, всего редактировалось 5 раз(а).
Nika
Мастер Даунгрейда
 
Сообщения: 659
Зарегистрирован: 17 окт 2013, 00:21

Re: Multi-Edit Lite v.1.00i

Сообщение SergeCpp » 21 июл 2014, 00:57

Взял, посмотрел.
Аватара пользователя
SergeCpp
Мастер Даунгрейда
 
Сообщения: 451
Зарегистрирован: 11 апр 2011, 13:49
Откуда: At Home

След.

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

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

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

cron