Ru-Board.club
← Вернуться в раздел «Программы»

» Multi-Edit 8.x, 9.x, ... , Multi-Edit 2006, 2008

Автор: BVV63
Дата сообщения: 23.04.2015 07:07
NvvLazyTiger
Спасибо за ответ.

Цитата:
Изменить реакцию на клавишу <Tab> ("Tab expand"):
Menu->Customize->Editing->Tab expand->Tabs/Spaces

Вместо табуляции будут пробелы, но ведь их число там не настраивается(?). Да и не нужны мне пробелы, мне нужно, чтобы
ME показывал символы табуляции не как 8 пробелов, а как, например, 4.

Цитата:
В частности, шаг табуляции можно установить конкретным фиксированным или с использованием "format line":
<Application>/<Context/Right button menu>->Customize this file's settings->Extension setup...->Tab Setting mode

Это в каком-то файле?
Автор: NvvLazyTiger
Дата сообщения: 23.04.2015 14:49
Привет, BVV63.

Цитата:
Вместо табуляции будут пробелы, но ведь их число там не настраивается(?)

Там - нет.

Цитата:
мне нужно, чтобы ME показывал символы табуляции не как 8 пробелов, а как, например, 4

См. п.2. Там настраивается. Но не для "всяких" файлов (т.е. не глобально), а для конкретных (по расширению). Иной доступ к той же настройке:
Menu->Customize->Filename extensoin...->выбрать нужное из списка->Edit->Tab Setting mode

Цитата:
Это в каком-то файле?

Эти настройки хранятся в MeConfig.db (параметр"TS=" в секции "EXT.DB").
Штатно меняются указанным образом.
Автор: BVV63
Дата сообщения: 24.04.2015 06:23
NvvLazyTiger

Цитата:
См. п.2. Там настраивается. Но не для "всяких" файлов (т.е. не глобально), а для конкретных (по расширению). Иной доступ к той же настройке:
Menu->Customize->Filename extensoin...->выбрать нужное из списка->Edit->Tab Setting mode

Разобрался. То, что надо.

Добавлено:
Ещё вопрос.
Там же, в типах файлов, есть опция "Indent style". При установке её в "Auto" при переносе строки учитывается положение предыдущей строки. И вот не могу добиться полного совпадения. Напр., текущая строка начинается с табуляции и, допустим, следующими десятью пробелами. При переносе строки будет две табуляции (при размере 8 знакомест) и два пробела. А можно ли добиться полного соответствия предыдущей сторке?
Автор: NvvLazyTiger
Дата сообщения: 24.04.2015 11:27
Привет, BVV63

Цитата:
в типах файлов, есть опция "Indent style". При установке её в "Auto" при переносе строки учитывается положение предыдущей строки. И вот не могу добиться полного совпадения. Напр., текущая строка начинается с табуляции и, допустим, следующими десятью пробелами. При переносе строки будет две табуляции (при размере 8 знакомест) и два пробела. А можно ли добиться полного соответствия предыдущей сторке?

AFAIK нельзя (штатными настройками). Бо новый отступ "строится" указанным образом (табы/пробелы) на ту же позицию, что и в предыдущей строке, а не копируется с оной.

Более того. Smart Indent style в общем случае обеспечивает отступ не обязательно такой же, как у предыдущей строки, а "умный" - ориентированый на "правильный рельеф" левой части строк исходных текстов программ. Причём, этот "ум" - настраиваемый! ;)
См. <Application>/<Context/Right button menu>->Language setup...->Formatting/Config
Или Menu->Customize->Languages...->выбрать нужное из списка->Edit->Formatting/Config
Там много интересного... ;)

... А потом можно заглянуть (любым из указанных путей) в настройки Templates... ;))
... И совсем захорошеет... ;)))
Автор: NvvLazyTiger
Дата сообщения: 03.05.2015 09:50
Вдогонку, касаемо:

Цитата:
не могу добиться полного совпадения. Напр., текущая строка начинается с табуляции и, допустим, следующими десятью пробелами. При переносе строки будет две табуляции (при размере 8 знакомест) и два пробела. А можно ли добиться полного соответствия предыдущей сторке?

Штатно - нельзя, но можно простым макросом.

Нужно?
Автор: BVV63
Дата сообщения: 24.08.2015 07:43
NvvLazyTiger

Цитата:
Нужно?

Ага. То есть нет, речь шла об автоматическом переносе, исполнять вручную макрос при каждом переносе - это уж слишком.

И ещё возник вопрос: можно ли по средствами (макросом?) ME запустить исполняемый файл?
Автор: NvvLazyTiger
Дата сообщения: 25.08.2015 02:30
Привет, BVV63.
Цитата:
речь шла об автоматическом переносе, исполнять вручную макрос при каждом переносе - это уж слишком
Никаких "вручную"! ;)
Впрочем, <Enter> таки да, нажимается именно "вручную". ;))
Но можно и без. ;)))
Эх... Чем замечателен мультик (среди прочего;) так это тем, что макросами можно сделать почти всё,
что душа пожелает. Я не шучу. :-|

Цитата:
И ещё возник вопрос: можно ли по средствами (макросом?) ME запустить исполняемый файл?
Да. Запросто.
Например, вызов внешнего компилятора макросов выполняется именно макросом.
;))))
Автор: BVV63
Дата сообщения: 25.08.2015 05:53
NvvLazyTiger
По вопросу переноса. Тут есть ещё одна тонкость. Я работаю с двумя типами файлов (открыты в разных окнах), и в настройках указал, что в одном из них при переносе всегда переходить на начало строки, а в другом как раз нужно переносить так, как в предыдущей строке. Т. е. если там начальная табуляция, а за ней много пробелов, так и нужно оставлять эти пробелы, а не преобразовывать их в табуляции. Возможно ли сделать, чтобы в одних окошках макрос переноса выполнялся, а в других нет (по типам файлов)?

Насчёт запуска приложения, я уточню свою задумку на этой неделе (в выходные, быть может). Поразмыслив, я засомневался, осуществима ли она...
Автор: NvvLazyTiger
Дата сообщения: 25.08.2015 09:54
Ок. Нужно уточнить детали. Как обеспечить разное поведение для разных файлов, скажу позднее.

Итак, нажали "Ввод"... ;)

1. Если курсор стоит не в конце строки, то:
а) "разрезать" строку в этом месте на две; у нижней такой же отступ;
б) вставить ниже текущей строки пустую (т.е. сделать переход в конец строки + cr + proper indent).

2. Если установлен режим "замена" (overwrite), то:
а) см. п.1.а);
б) см. п.1.б);
в) просто перейти на нужное место строкой ниже (поведение "по умолчанию").

3. Если не установлен режим "Persistent Blocks", то:
а) поступать в соответствии;
б) сохранять выделение в блок;
в) иное (варианты есть;), - что?

4. Как быть, если ПОСЛЕ нажали клавишу управления, например <Page Up>, то
а) оставить пустую строку;
б) оставить "квази" пустую строку (т.е. с табами и пробелами);
в) иное, - что?

5. Иные пожелания касаемо, какие? ;)
Автор: BVV63
Дата сообщения: 25.08.2015 10:35
Режимы "Замена" и "Persistent Blocks" я не использую (а про второй вааще впервые слышу), можно и упростить, не закладываясь на них. В любом случае, полагаю, что в любых режимах (включая п. 4) правильнее оставлять "квазипустую" строку - вариант "a" в п. 1.
П. 5 - никаких (пока), может в процессе эксплуатации что-то появится.
Автор: NvvLazyTiger
Дата сообщения: 25.08.2015 11:20
Ок. Завтра будет рабочий макет...
;)))
Автор: NvvLazyTiger
Дата сообщения: 26.08.2015 00:56
"Прошу к столу, вскипело!" (c) М. Жванецкий. ;)
[more]

Код:
macro_file nAdvCr;
// 2015, Author nvv (Nosov Vladislav AKA NvvLazyTiger), Vladivostok, Russia

// 2015.08.25, nvv, creation, тработка действия "ввод" по правилам BVV63 ;)

/* nvv: Итак, нажали "Ввод"... ;)
1. Если курсор стоит не в конце строки, то:
а) "разрезать" строку в этом месте на две; у нижней такой же отступ;
б) вставить ниже текущей строки пустую (т.е. сделать переход в конец строки + cr + proper indent).
2. Если установлен режим "замена" (overwrite), то:
а) см. п.1.а);
б) см. п.1.б);
в) просто перейти на нужное место строкой ниже (поведение "по умолчанию").
3. Если не установлен режим "Persistent Blocks", то:
а) поступать в соответствии;
б) сохранять выделение в блок;
в) иное (варианты есть;), - что?
4. Как быть, если ПОСЛЕ нажали клавишу управления, например <Page Up>, то
а) оставить пустую строку;
б) оставить "квази" пустую строку (т.е. с табами и пробелами);
в) иное, - что?
5. Иные пожелания касаемо, какие? ;)
--- BVV63
Режимы "Замена" и "Persistent Blocks" я не использую (а про второй вааще
впервые слышу), можно и упростить, не закладываясь на них. В любом случае,
полагаю, что в любых режимах (включая п. 4) правильнее оставлять
"квазипустую" строку - вариант "a" в п. 1.
П. 5 - никаких (пока), может в процессе эксплуатации что-то появится. */

macro nAdvCr { // отработка действия "ввод" по правилам BVV63 ;)
str Str0;
str Str1 = get_line; // текущая строка...
int InsMod = insert_mode; // и что с того, что "всегда вставка"? ;)
int PosCur = c_col; // курсор здесь
int PosEol = svl( Str1 ); // а это - длинна текущей строки
int PosFwd;
int intRef = refresh;
insert_mode = True; // независимо от состояния Ins/Ovr
push_undo ; // вдруг НЕ понравится... ;)))
refresh = false; // а нефиг мельтешить! ;)
goto_col( 1 );
first_word; // встать на первый НЕ "white space" символ строки
PosFwd = c_col; // место этого символа
Str0 = copy( Str1, 1, PosFwd - 1 ); // это местный indent... ;)
goto_col( PosCur ); // а здесь нас вызвали... ;)))
cr;
if ( PosCur > PosEol ) { // -- мы за концом строки
put_line( Str0 ); // оформляем квази пустую строку
} else if ( PosCur <= PosFwd ) { // -- мы ДО первого символа или на нём
put_line( Str1 ); // строка съехала вниз...
} else { // -- курсор ВНУТРИ строки
put_line( Str0 + copy( Str1, PosCur, max_line_length ) ); // оформляем "отрезанное" ;)
}
goto_col( PosFwd ); // встанем куда след.
pop_undo ;
insert_mode = InsMod; // ну и вернём "всё как было" ;)
refresh = intRef;
redraw; // "картина-с маслом-с"...;)))
} // nAdvCr

Автор: BVV63
Дата сообщения: 26.08.2015 06:20
NvvLazyTiger

Цитата:
Я уже рассказывал, как "заюзать" какой-то макрос на скорую руку.
Повторить?

Да. И как его использовать в зависимости от типа файлов.
Автор: NvvLazyTiger
Дата сообщения: 26.08.2015 08:33
Привет, BVV63.
Цитата:

Цитата: Я уже рассказывал, как "заюзать" какой-то макрос на скорую руку.
Повторить?
Да. И как его использовать в зависимости от типа файлов.
Автор: BVV63
Дата сообщения: 26.08.2015 11:46
NvvLazyTiger
2-й вариант мне нравится больше: проверка расширения (либо отсутствия такового). Как это сделать?
Автор: NvvLazyTiger
Дата сообщения: 26.08.2015 12:49

Цитата:
2-й вариант мне нравится больше: проверка расширения (либо отсутствия такового). Как это сделать?
Просто. Но нужно убедиться, что основной алгоритм макроса подходит. ;)
Вот это я и прошу проверить/протестировать...

А так... есть такая переменная - "File_Name". Вот вокруг неё и плясать надоть...
Ок. Задачу я понял, но мне таки нужен результат указанного тестирования.

?
Автор: BVV63
Дата сообщения: 26.08.2015 13:06
NvvLazyTiger
Не удаётся скомпилировать. По ножатию <F9> выводится не упомянутая команда "Compile CMacWin Macro", а строка с заголовком "Enter Compiler/Program Command". При указании в строке файла с последующим <Enter> внизу программы открывается окошко с надписью в самом низу "Unsupportet program type. Check this window for error.", хотя окошко пустое.

Добавлено:
Удалил программу, удалил настройки из пользовательского профиля. Установил прогу со значениями по умолчанию. Всё равно не компилируется.

Добавлено:
А, так надо было в редакторе именно этот файл открыть!
Автор: NvvLazyTiger
Дата сообщения: 26.08.2015 13:14
Ок. Думаю, нужно переустановить ME.
Ну и посмотреть что/как...
Но это уже завтра.
Автор: BVV63
Дата сообщения: 26.08.2015 13:20
NvvLazyTiger

Цитата:
Думаю, нужно переустановить ME.

Если Вы про себя, то не нужно: мой был косяк. Я открыл "левый" файл и пытался скомпилировать макрос.

После того, как открыл именно файл, содержащий макрос, дело продвинулось, но не намного. Вышла ошибка:
Error 102: Output File Error.
Автор: NvvLazyTiger
Дата сообщения: 26.08.2015 23:20
Привет.

1. Ок. Пере-установил - есть поддержка макросов (компиляция и всё такое;).

2. В help-e нет "error 102". Есть:
1002 Insufficient memory to complete operation.
2002 Printer not ready. Attempt was made to output to a printer that was not on line.
3002 File not found. The Load_File operation can generate this error. Check the filename and path.

Ага, нашёл:
102 Output file error. An error occurred writing the output file.
Ну, дык!
Скорей всего что-то настроено не так (т.е. ВОПРЕКИ штатному)...

?
Автор: BVV63
Дата сообщения: 27.08.2015 07:18
NvvLazyTiger
По умолчанию всё установлено, не перенастраивал, предыдущие настройки перед установкой удалил.
Перепроверил усё, в частности, доступность каталогов TMP и BAK.

Где файл должен создаваться?
Автор: NvvLazyTiger
Дата сообщения: 27.08.2015 11:17
Гм-м-м...
Свеже установленный редактор не может скомпилировать макрос?
Не верю! ;-|
Автор: BVV63
Дата сообщения: 27.08.2015 11:35
Может, в макросе где-нить ошибка?..
Нельзя ли какой другой, максимально простой макрос (из одной-двух команд), чисто чтобы удостовериться, что ошибка в ME?
Автор: NvvLazyTiger
Дата сообщения: 27.08.2015 11:45
Можно.
---
macro tst {
make_message("Hello world!");
}
---
;)
Автор: BVV63
Дата сообщения: 27.08.2015 11:46
Как вариант, можете сами проверить. Не помню, где в XP, а начиная с Висты, настройки хранятся в "%UserName%\AppData\Roaming" (каталог "Multi Edit Software"). Можете переименовать свой аналогичный каталог и на его место мои настройки разорхивировать (изменял лишь путь к TMP- и BAK-каталогам).
https://dropmefiles.com/YpMSA
Будет ли компилироваться.

Добавлено:
Ага, сейчас проверю этот макрос.

Добавлено:
Ну да, тоже самое.

Добавлено:
И всё же, где должен образоваться результирующий файл? Чтобы проверить этот каталог...

Добавлено:
В общем, установил ME на другой комп, где и скомпилировал макрос. Скопировал макрос на свой комп, не заметил изменений.

Добавлено:
Перепроверил на том компе, где компилировал. Также не заметил работу макроса. В новой стороке пробелы заменяются на табуляции.
Автор: NvvLazyTiger
Дата сообщения: 27.08.2015 15:50
Гм-м-м...
Ничего не понял...
У вас компиляция заработала или где?
Вы скомпилировали основной макрос или опять же, где?
Основной макрос пускается "по месту" т.е. там, где нужен;
Тестовый - просто выводит сообщение в строку статуса.
И?..
Автор: BVV63
Дата сообщения: 28.08.2015 05:38
NvvLazyTiger
Я скомпилировал основной макрос на другом компьютере и перенёс его на свой. Положил его в соответствующий каталог.
Макрос не заработал. На всякий случай я в главном меню выбрал "Macro" -> "Load", указал макрос. Макрос не заработал. Т. е. при переносе пробелы преобразуются в табуляции, ага. Проверил на компе, где компилировал, то же самое.
Автор: NvvLazyTiger
Дата сообщения: 28.08.2015 06:07
"Macro" -> "Load" не нужно. Оно и так загрузится. Если имя основного макроса совпадает с именем файла (расширение *.S).
А нужно "Macro->Run->nAdvCr" в нужных местах...

Цитата:
при переносе пробелы преобразуются в табуляции

Не верю! Макрос должен тупо копировать indent текущей строки.
Можно пример?
Автор: BVV63
Дата сообщения: 28.08.2015 06:34
NvvLazyTiger

Цитата:
Можно пример?

Какой ещё пример? Любой файл, можно новый. Делаю табуляцию, затем много пробелов, пишу несколько символов, перенос, ещё несколько символов. Затем перехожу в начало строки и жму <Del>. В верхней строке "скачок" (табуляция) наблюдается лишь один, во второй - несколько, что однозначно указывает на преобразование.

Цитата:
А нужно "Macro->Run->nAdvCr" в нужных местах...

И что означает сия фраза?

Добавлено:
Кстати, в файлах, нестроенных на перенос на начало строки, он и осуществляется на начало строки.

Добавлено:

Цитата:
Если имя основного макроса совпадает с именем файла (расширение *.S).

А откуда ME знает имя макроса? Может, его надо как-то зарегить? Как писал выше, я просто скопировал скомпилированный файл.
Автор: NvvLazyTiger
Дата сообщения: 28.08.2015 06:49

Цитата:
И что означает сия фраза?
Вызов нужного макроса, вообще-то. ;)

Цитата:
Затем перехожу в начало строки и жму <Del>
А <Del>-то здесь причём?
;)))

Страницы: 12345678

Предыдущая тема: Файлы с расширением *.img и *.dmg, чем их открыть?!


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.