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

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

Автор: BVV63
Дата сообщения: 21.01.2016 04:25
Можно ли в строке поиска запросить поиск табуляции? Попытался указать "|9", но безрезультатно.
Автор: NvvLazyTiger
Дата сообщения: 21.01.2016 12:29
BVV63
Цитата:
Можно ли в строке поиска запросить поиск табуляции? Попытался указать "|9", но безрезультатно.

Как сделать красиво, - сходу не сообразил, но подумаю. ;)

Некрасиво можно сделать так:

1. Как-то находим/создаём в тексте знакоместо с символом "Tab" (0x09);
2. Берём это место в блок (потоковый или колонный, - без разницы);
3. Вызываем диалог поиска (у меня - <F5>);
4. Настраиваем нужный режим поиска;
5. Заходим в поле задания контекста для поиска и давим стрелку <Up>;
6. Пускаем сам поиск.

NB. Будет найдено и подсвечено первое найденное вхождение символа <Tab>
+ <виртуальные пробелы за> (если есть).

И ещё. Нужный контекст для поиска у меня выглядит как прямоугольник, вытянутый по вертикальной оси (типа "дверь";)
Автор: BVV63
Дата сообщения: 22.01.2016 05:17
NvvLazyTiger
Идею понял, не знал про этот трюк. Но, увы, табуляция наотрез отказалась искаться (причём вставляется она очень странно: во-первых, занимает в строке поиска 22 знакоместа (если в блоке была "полная" табуляция, т. е. 8 знакомест), во-вторых, в строке поиска по табуляции можно "путешестовать" стрелками перемещения, 8+2+2+2+2+2+2+2 знакомест). Другие фрагменты, загнанные таким образом в поле поиска, тоже изначально не хотят искаться, но если переместить курсор, то поиск идёт. А табуляция - ни в какую. Криво вставляется.
Впрочем, по мотивам этого трюка выход я всё же нашёл - посредством простого копирования выделенной табуляции и вставления в строку поиска.
Автор: NvvLazyTiger
Дата сообщения: 22.01.2016 09:32
Гм-м-м...

1. Я не просто так выделил словосочетание "это место".
Т.е. контекст для поиска - ОДИН символ!

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

3. "Виртуальные пробелы" потому и называются виртуальными, что их в файле реально нет.
Т.е. находить контекст с такими "пробелами" нельзя.
(в рассматриваемом редакторе и штатными средствами)
Т.е. брать в блок 'полную "табуляцию"' неразумно.

4. Вот это фрагмент (про путешествия и кривизну)
Цитата:
в строке поиска по табуляции можно "путешестовать" стрелками перемещения, 8+2+2+2+2+2+2+2 знакомест). Другие фрагменты, загнанные таким образом в поле поиска, тоже изначально не хотят искаться, но если переместить курсор, то поиск идёт. А табуляция - ни в какую. Криво вставляется.
Я не понял. Явно какой-то трюк почище моего. ;)

5. Ну и простой макрос переключающий видимость знаков табуляции:
Код: macro tst {
Display_Tabs = !Display_Tabs;
}
Автор: BVV63
Дата сообщения: 22.01.2016 11:31
NvvLazyTiger


Цитата:
Я не понял. Явно какой-то трюк почище моего.




Как видно, "полная" табуляция занимает не 8 знакомест, а 22. Если клавишей <Left> двигать курсор налево, то скачки курсора будат вначале по 2 знакоместа, а последний шаг - 8 знакомест.

Добавлено:
Макрос попробую.
Автор: NvvLazyTiger
Дата сообщения: 22.01.2016 11:56
BVV63
Я не понимаю показанное на вашей картинке. Никогда такого не видел.
У меня:

В поле "Search for:" - один символ.
Стрелки "вправо"/"влево" снимают выделение (синий фон).
Это стандартный диалог. Системные настройки для я не трогал.

... Ничего не понимаю...

Впрочем, попробуйте проделать рассматриваемое под WinXP или w2k3 или w2k8.
?
Автор: NvvLazyTiger
Дата сообщения: 23.01.2016 08:59
Я подумал над тем, что мне непонятно и имею сказать:

0. На картинке:

- слева вверху - таблица Ascii для шрифта "MS Sans Serif". Это штатный системный пропорциональный шрифт редактора;

- справа вверху - такая же таблица для "Monotype.com". Это мой рабочий моноширинный шрифт для редактируемых файлов;

- снизу - окно редактора с точкой, буквами, пробелами, символами табуляциями и виртуальными пробелами. В режиме Display_Tabs. При этом обычные пробелы (0x20) отображаются как маленькие точки в центре знакоместа.



1. Системный шрифт используется редактором в диалогах, меню и т.п.
- его нельза установить для редактируемых окон штатными средствами;
- в нём ЕСТЬ своё изображение ("»") символа "таб" (0x09);

2. В поле ввода контекста для поиска используется какой-то ИНОЙ шрифт. В нём, видимо, для символов от 0x00 до 0x1F используется иное, общее изображение:
- у меня (WinXP..w2k8) - "дверь";
- у вас (?) - "пусто"(?).

3. На следующих двух рисунках показан контекст поиска для первой строки примерного файла (a.aaa, см. выше):
- вверху - коллонный (column) или потоковый (stream) блок;
- внизу - строчный (line) блок.



Выводы:

а) на вашей картинке явно НЕ одиночный символ (контекста для поиска). Причём, ваша "полная" табуляция, видимо, содержит символы табуляции, виртуальные пробелы и (скорей всего) обычные пробелы. Иначе не объяснить формулу "8+2+2+2+2+2+2+2".
NB. Вируальные пробелы штатным образом найти нельзя.

б) вставлять прямо в редактируемый текст контекст с виртуальными пробелами чревато (кривизной результата).
Т.к. движок редактора не готов переваривать СВОИ служебные символы (0x01) где попало.

в) если таки нужно находить именно символы табуляции, то имено такой символ и надо задавать как контекст для поиска.

;)
Автор: BVV63
Дата сообщения: 25.01.2016 04:53
NvvLazyTiger
Попробовал с табуляцией, занимающей в тексте одно знакоместо, она вставилась как 8 знакомест, клавиши <Left> и <Run> передвигают курсор в её начало и конец.

А что под "виртуальными пробелами" имеется ввиду?
Автор: NvvLazyTiger
Дата сообщения: 26.01.2016 00:53
BVV63
Цитата:
Попробовал с табуляцией, занимающей в тексте одно знакоместо, она вставилась как 8 знакомест
Это не совсем так. ;)
Количество знакомест, вставляемых по нажатию клавиши <Tab> (или после вставки символа 0x09), зависит от настроек редактора для этого окна и от позиции, где эта клавиша была нажата.
Обычно (без использования "format line" + "Tab spacing"==8) вставляется от 8-и до... 1-го знакоместа.

Цитата:
клавиши <Left> и <Run> передвигают курсор в её начало и конец.
У меня на клавиатуре нет клавиши <Run> и мой редактор такой не знает.

Цитата:
А что под "виртуальными пробелами" имеется ввиду?
"Виртуальные пробелы" - это калька английского термина "virtual space".
Цитата:
Tab_Expand integer variable
TRUE (1) = Use tab characters and pad with virtual space.
FALSE (0) = Use space characters instead of tabs and virtual space.
Т.е. движок редактора "рисует" на экране "пробелы", которых нет в редактируемом тексте.
Вместе с реальными (существующими в тексте) символами горизонтальной табуляции.
Но нужно иметь в виду, что (см. описание функции Crunch_Tabs)
Цитата:
Crunch_Tabs( local_string_variable, local_integer_variable ) void function
Multi-Edit uses the character ASCII 1 to expand tab characters out to virtual space. When a Get_Line is performed, the string that is returned may contain some of this virtual space. Usually this is not a problem, because you want the string the way it is displayed. Crunch_Tabs removes the virtual characters (ASCII 1) from a user- defined local_string_variable. local_integer_variable represents an index into the string that is to be updated to point to the new position in the string after all virtual space has been removed.
Вот, где-то так...
;)
Автор: BVV63
Дата сообщения: 26.01.2016 04:15
NvvLazyTiger

Цитата:
У меня на клавиатуре нет клавиши <Run> и мой редактор такой не знает.

О пардон, описался. <Right>.

Страницы: 12345678

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


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