我正在调试/监视一个日志文件,其中包含大量的控制字符[SOH]
这使得日志几乎不可读(对我来说,在NP ++上,但是必须这样,因为这个字符在我正在监视的协议中有一些用处) )
如何在NP ++上以更友好的方式显示该角色?
编辑:替换不是一个选项,因为我只想拖尾文件,而不是编辑它.
Ada*_*kes 18
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 =换行,BS =后退空间,CR =回车率).
您可以选择使用ASCII代码在32到255范围内的指定符号替换这些助记符.如果将符号值设置为小于32,则所有控制字符都显示为助记符.您设置的符号将以为该字符设置的样式的字体呈现.您可以使用SCI_GETCONTROLCHARSYMBOL消息回读当前符号.默认符号值为0.
可能有一种"正确"的方式来做到这一点,但我会给你一个非常黑客的方式来完成这个.
%APPDATA%\Notepad++\shortcuts.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>
Run Code Online (Sandbox Code Playgroud)
请注意,您可以设置一个快捷键用Ctrl
,Alt
,Shift
和Key
属性.在wParam
将设置将被用来代替拼写出代码的字符.在这种情况下,代码32
是ASCII标准中的空格.消息2388
是SCI_SETCONTROLCHARSYMBOL
值的常量.
保存文件
现在,您可以在运行时更改Notepad ++的行为.要使用它,请执行以下操作
打开Notepad ++ 只需打开编辑器即可.如果直接打开文件(即使用Notepad ++上下文菜单编辑),您将会遇到奇怪的行为.
从菜单(或快捷方式)激活宏. 如果有一种方法可以在启动时自动运行宏,那么在这里添加它会很不错
打开你的文件. 这里没什么新鲜的
归档时间: |
|
查看次数: |
48380 次 |
最近记录: |