Можно ли в строке поиска запросить поиск табуляции? Попытался указать "|9", но безрезультатно.
» Multi-Edit 8.x, 9.x, ... , Multi-Edit 2006, 2008
BVV63
Цитата:
Как сделать красиво, - сходу не сообразил, но подумаю. ;)
Некрасиво можно сделать так:
1. Как-то находим/создаём в тексте знакоместо с символом "Tab" (0x09);
2. Берём это место в блок (потоковый или колонный, - без разницы);
3. Вызываем диалог поиска (у меня - <F5>);
4. Настраиваем нужный режим поиска;
5. Заходим в поле задания контекста для поиска и давим стрелку <Up>;
6. Пускаем сам поиск.
NB. Будет найдено и подсвечено первое найденное вхождение символа <Tab>
+ <виртуальные пробелы за> (если есть).
И ещё. Нужный контекст для поиска у меня выглядит как прямоугольник, вытянутый по вертикальной оси (типа "дверь";)
Цитата:
Можно ли в строке поиска запросить поиск табуляции? Попытался указать "|9", но безрезультатно.
Как сделать красиво, - сходу не сообразил, но подумаю. ;)
Некрасиво можно сделать так:
1. Как-то находим/создаём в тексте знакоместо с символом "Tab" (0x09);
2. Берём это место в блок (потоковый или колонный, - без разницы);
3. Вызываем диалог поиска (у меня - <F5>);
4. Настраиваем нужный режим поиска;
5. Заходим в поле задания контекста для поиска и давим стрелку <Up>;
6. Пускаем сам поиск.
NB. Будет найдено и подсвечено первое найденное вхождение символа <Tab>
+ <виртуальные пробелы за> (если есть).
И ещё. Нужный контекст для поиска у меня выглядит как прямоугольник, вытянутый по вертикальной оси (типа "дверь";)
NvvLazyTiger
Идею понял, не знал про этот трюк. Но, увы, табуляция наотрез отказалась искаться (причём вставляется она очень странно: во-первых, занимает в строке поиска 22 знакоместа (если в блоке была "полная" табуляция, т. е. 8 знакомест), во-вторых, в строке поиска по табуляции можно "путешестовать" стрелками перемещения, 8+2+2+2+2+2+2+2 знакомест). Другие фрагменты, загнанные таким образом в поле поиска, тоже изначально не хотят искаться, но если переместить курсор, то поиск идёт. А табуляция - ни в какую. Криво вставляется.
Впрочем, по мотивам этого трюка выход я всё же нашёл - посредством простого копирования выделенной табуляции и вставления в строку поиска.
Идею понял, не знал про этот трюк. Но, увы, табуляция наотрез отказалась искаться (причём вставляется она очень странно: во-первых, занимает в строке поиска 22 знакоместа (если в блоке была "полная" табуляция, т. е. 8 знакомест), во-вторых, в строке поиска по табуляции можно "путешестовать" стрелками перемещения, 8+2+2+2+2+2+2+2 знакомест). Другие фрагменты, загнанные таким образом в поле поиска, тоже изначально не хотят искаться, но если переместить курсор, то поиск идёт. А табуляция - ни в какую. Криво вставляется.
Впрочем, по мотивам этого трюка выход я всё же нашёл - посредством простого копирования выделенной табуляции и вставления в строку поиска.
Гм-м-м...
1. Я не просто так выделил словосочетание "это место".
Т.е. контекст для поиска - ОДИН символ!
2. Доставка нужного через буфер обмена не обязана обеспечивать идентичность передаваемого контекста между источником и потребителем, увы.
Т.е это не совсем безопасное действие. В отличии от указанного мной трюка.
3. "Виртуальные пробелы" потому и называются виртуальными, что их в файле реально нет.
Т.е. находить контекст с такими "пробелами" нельзя.
(в рассматриваемом редакторе и штатными средствами)
Т.е. брать в блок 'полную "табуляцию"' неразумно.
4. Вот это фрагмент (про путешествия и кривизну)
Цитата:
5. Ну и простой макрос переключающий видимость знаков табуляции:
Код: macro tst {
Display_Tabs = !Display_Tabs;
}
1. Я не просто так выделил словосочетание "это место".
Т.е. контекст для поиска - ОДИН символ!
2. Доставка нужного через буфер обмена не обязана обеспечивать идентичность передаваемого контекста между источником и потребителем, увы.
Т.е это не совсем безопасное действие. В отличии от указанного мной трюка.
3. "Виртуальные пробелы" потому и называются виртуальными, что их в файле реально нет.
Т.е. находить контекст с такими "пробелами" нельзя.
(в рассматриваемом редакторе и штатными средствами)
Т.е. брать в блок 'полную "табуляцию"' неразумно.
4. Вот это фрагмент (про путешествия и кривизну)
Цитата:
в строке поиска по табуляции можно "путешестовать" стрелками перемещения, 8+2+2+2+2+2+2+2 знакомест). Другие фрагменты, загнанные таким образом в поле поиска, тоже изначально не хотят искаться, но если переместить курсор, то поиск идёт. А табуляция - ни в какую. Криво вставляется.Я не понял. Явно какой-то трюк почище моего. ;)
5. Ну и простой макрос переключающий видимость знаков табуляции:
Код: macro tst {
Display_Tabs = !Display_Tabs;
}
BVV63
Я не понимаю показанное на вашей картинке. Никогда такого не видел.
У меня:
В поле "Search for:" - один символ.
Стрелки "вправо"/"влево" снимают выделение (синий фон).
Это стандартный диалог. Системные настройки для я не трогал.
... Ничего не понимаю...
Впрочем, попробуйте проделать рассматриваемое под WinXP или w2k3 или w2k8.
?
Я не понимаю показанное на вашей картинке. Никогда такого не видел.
У меня:
В поле "Search for:" - один символ.
Стрелки "вправо"/"влево" снимают выделение (синий фон).
Это стандартный диалог. Системные настройки для я не трогал.
... Ничего не понимаю...
Впрочем, попробуйте проделать рассматриваемое под WinXP или w2k3 или w2k8.
?
Я подумал над тем, что мне непонятно и имею сказать:
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) где попало.
в) если таки нужно находить именно символы табуляции, то имено такой символ и надо задавать как контекст для поиска.
;)
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) где попало.
в) если таки нужно находить именно символы табуляции, то имено такой символ и надо задавать как контекст для поиска.
;)
NvvLazyTiger
Попробовал с табуляцией, занимающей в тексте одно знакоместо, она вставилась как 8 знакомест, клавиши <Left> и <Run> передвигают курсор в её начало и конец.
А что под "виртуальными пробелами" имеется ввиду?
Попробовал с табуляцией, занимающей в тексте одно знакоместо, она вставилась как 8 знакомест, клавиши <Left> и <Run> передвигают курсор в её начало и конец.
А что под "виртуальными пробелами" имеется ввиду?
BVV63
Цитата:
Количество знакомест, вставляемых по нажатию клавиши <Tab> (или после вставки символа 0x09), зависит от настроек редактора для этого окна и от позиции, где эта клавиша была нажата.
Обычно (без использования "format line" + "Tab spacing"==8) вставляется от 8-и до... 1-го знакоместа.
Цитата:
Цитата:
Цитата:
Вместе с реальными (существующими в тексте) символами горизонтальной табуляции.
Но нужно иметь в виду, что (см. описание функции Crunch_Tabs)
Цитата:
;)
Цитата:
Попробовал с табуляцией, занимающей в тексте одно знакоместо, она вставилась как 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.
;)
NvvLazyTiger
Цитата:
О пардон, описался. <Right>.
Цитата:
У меня на клавиатуре нет клавиши <Run> и мой редактор такой не знает.
О пардон, описался. <Right>.
Предыдущая тема: Файлы с расширением *.img и *.dmg, чем их открыть?!
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.