有没有办法设置VIM在不更改底层文件的情况下替换显示文本中的字符?
具体来说,我想用标签替换SOH字符(默认显示为^ A),以使FIX协议日志文件更具可读性。
我有一个解决方法部分正常
:highlight SpecialKey guifg=#ffffff
是什么让^ A在白色背景上不可见,但替换选项卡会好得多。
更新
我几乎找到了解决方案:
:syntax match SOH /^A/ conceal cchar=_
:set conceallevel=2
:hi conceal guibg=NONE
不幸的是我还没有找到如何将tab转义为 cchar 参数(而不是下划线)的方法。
答案 0 :(得分:0)
我在打开日志文件时遇到了问题。
我使用自动命令进行此类替换并保留文件而不保存。
:au BufEnter *.log :%s/^M/\r/g
此自动命令会在打开日志文件时用换行符替换所有^ M个字符。
因此,像ADM-DEVICE : logged in^MADM-DEVICE : in prompt
这样的文字将正确显示为
ADM-DEVICE : logged in
ADM-DEVICE : in prompt
。
同样,可以替换其他控制字符。我要做的一件事是将'^ ['改为`以便更好地理解。
不应手动编辑和保存日志文件。所以,为此,我将使用另一个自动命令。
:au BufWrite *.log :q!
如果我尝试保存它,此自动命令将退出该文件。自动命令将是自动执行您想要做的最佳选择。