Отображение управляющего символа [SOH] в виде пустого пространства или в Notepad++
Я отлаживаю / отслеживаю файл журнала, содержащий широко управляющий символ [SOH]
Это делает журналы едва не читаемыми (ну, для меня, на NP++, но это должно быть так, поскольку этот символ имеет некоторое использование в протоколе, который я отслеживаю)
Как мне отобразить этот символ более дружелюбным образом на NP++ ?
редактировать : замена не является опцией, так как я просто хочу хвост файла, а не редактировать его.
2 ответов
введение
Notepad++ использует Scintilla для компонента редактора. Scintilla имеет функцию SCI_SETCONTROLCHARSYMBOL(int symbol)
где можно задать символ, который будет использоваться для управления персонажами. От Scintilla Docs они описывают функциональные возможности:
SCI_SETCONTROLCHARSYMBOL (символ int)
SCI_GETCONTROLCHARSYMBOL
по умолчанию отображается Scintilla управляющие символы (символы с кодами менее 32) в скругленном прямоугольнике как ASCII мнемоника: "NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK", "BEL", "BS", "HT", "LF", "VT", "FF", "CR", "SO", "SI", "DLE", "DC1", "DC2", "DC3", "DC4", "NAK", "SYN", "ETB", "CAN", "EM", "SUB", "ESC", "FS", "GS", "RS", "US". Эти мнемоники приходят с первых дней сигнализации, хотя некоторые из них все еще используются (например, LF = Line Feed, BS = Back Space, CR = Carriage Return).
вы можете выберите замену этих мнемоник назначенным символом с кодом ASCII в диапазоне от 32 до 255. Если значение символа меньше 32, все управляющие символы отображаются в виде мнемоники. Заданный символ отображается шрифтом стиля, заданного для символа. Текущий символ можно прочитать с помощью сообщения SCI_GETCONTROLCHARSYMBOL. Значение символа по умолчанию-0.
вероятно, есть "правильный" способ сделать это, но я собираюсь дать вам очень hack-y способ добиваюсь этого.
техника
редактировать файл %APPDATA%\Notepad++\shorcuts.xml
используя все, кроме Notepad++.
добавить <Macros>
раздел файла, чтобы вручную добавить макрос:
<Macro name="RemoveControl" Ctrl="no" Alt="no" Shift="no" Key="0">
<Action type="0" message="2388" wParam="32" lParam="0" sParam="" />
</Macro>
обратите внимание, что вы можете установить ярлык с Ctrl
, Alt
, Shift
и Key
атрибуты. The wParam
будет установлен символ, который будет использоваться вместо прописанных кодов. В этом случае код 32
- это пробел в стандарте ASCII. Сообщение 2388
является константой для SCI_SETCONTROLCHARSYMBOL
значение.
сохраните файл
использовать
теперь вы можете изменить поведение Notepad++ во время выполнения. Чтобы использовать это, сделайте следующее
Открываем Notepad++ Просто откройте редактор. Если вы открываете файл напрямую (т. е. Редактировать с помощью контекстного меню Notepad++) вы получите странное поведение.
активировать макрос из меню (или ярлыка). Если есть способ автоматизировать выполнение макроса при запуске было бы неплохо добавить сюда
открыть файл. Ничего нового здесь
Примечания
- позиции с управляющим символом по-прежнему будут инвертированы (белый текст на черном фоне по умолчанию).
- если вы активируете макрос, когда у вас есть открытый документ вступит в силу сразу. Тебе придется это сделать. что-то, что заставит окно перерисовать.
- посмотреть малость.h файл может открыть другие параметры, которые могут быть аналогичным образом использованы.
Если вы хотите избежать этих символов в будущем, выберите функцию ведения журнала сеанса, как таковую в шпатлевке, только журнал "вывод для печати". Это уберет всех ненужных персонажей Scintilla.
Что касается шпатлевки (кэшированная ссылка ниже):
4.2 панель регистрации
панель конфигурации ведения журнала позволяет сохранять файлы журналов ваших сеансов шпатлевки для отладки, анализа или дальнейшего использования.
основным вариантом является набор радиокнопок это указывает, будет ли PuTTY регистрировать что-либо вообще. Варианты
+ "Регистрация полностью отключена". Это опция по умолчанию; в этом режиме PuTTY не будет создавать файл журнала вообще.
+ "вход только для печати". В этом режиме будет создан и записан файл журнала, но в него будет сохранен только текст для печати. Различные коды управления терминалом, которые обычно отправляются в интерактивном сеансе вместе с печатаемым текстом, будут опущены. Это может будьте полезным режимом, если вы хотите прочитать файл журнала в текстовом редакторе и надеетесь понять его.
+ "Log all session output". В этом режиме регистрируется все отправленное сервером в сеанс терминала. Таким образом, при просмотре файла журнала в текстовом редакторе он может быть заполнен странными управляющими символами. Это особенно полезный режим, если у вас возникли проблемы с обработкой терминала PuTTY: вы можете записывать все, что пошло на терминал, поэтому что кто-то еще может воспроизвести сеанс позже в замедленном темпе и посмотреть, что пошло не так.
+ "Log SSH packet data". В этом режиме (который используется только SSH-соединениями) пакеты сообщений SSH, отправленные по зашифрованному соединению, записываются в файл журнала. Это может понадобиться для отладки проблемы сетевого уровня или, скорее всего, для отправки авторам PuTTY как части отчета об ошибке. Будьте предупреждены, что если вы входите в систему с помощью пароля, пароль появится в файле журнала, поэтому обязательно отредактируйте его перед отправкой файла журнала кому-либо еще!