本文介绍了将控制字符[SOH]显示为空白,否则在记事本++中显示的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在调试/监视包含大量控制字符[SOH]的日志文件这使得日志几乎不可读(对我来说,在NP++上,但它必须是这样的,因为这个字符在我监控的协议中有一些用处)
如何在NP++上以更友好的方式显示该字符?
编辑:替换不是一个选项,因为我只想结尾文件,而不是编辑它。
推荐答案
简介
Notepad++正在为编辑器组件使用Sintilla。Sintilla有一个函数SCI_SETCONTROLCHARSYMBOL(int symbol)
,您可以在其中设置将用于控制字符的字符。它们从Scintilla Docs描述功能:
可能有一种方法可以做到这一点,但我要给您一种非常老套的方法来实现这一点。
技术
使用Notepad++以外的任何选项编辑文件%APPDATA%Notepad++shortcuts.xml
。
将以下内容添加到文件的<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
属性设置快捷方式。wParam
将设置要使用的字符,而不是拼写出的代码。在本例中,代码32
是ASCII标准中的空格。消息2388
是SCI_SETCONTROLCHARSYMBOL
值的常量。保存文件
使用
现在您可以在运行时更改Notepad++的行为。要使用此功能,请执行以下操作打开记事本++只需打开编辑器即可。如果您直接打开文件(即使用记事本++上下文菜单编辑)会出现奇怪的行为。
从菜单(或您的快捷方式)激活宏。如果有办法在启动时自动运行宏,最好将其添加到此处
打开您的文件。这里没有什么新鲜事
备注
- 带有控制字符的位置仍将反转(默认为黑底白字)。
- 如果在打开文档时激活宏,则不会立即生效。您必须采取措施强制窗口重新绘制。
- 查看Scintilla.h文件可能会打开可能被类似利用的其他选项。
这篇关于将控制字符[SOH]显示为空白,否则在记事本++中显示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!