VIM中仅显示字符替换

时间:2016-06-16 11:14:54

标签: vim

有没有办法设置VIM在不更改底层文件的情况下替换显示文本中的字符?

具体来说,我想用标签替换SOH字符(默认显示为^ A),以使FIX协议日志文件更具可读性。

我有一个解决方法部分正常

:highlight SpecialKey guifg=#ffffff

是什么让^ A在白色背景上不可见,但替换选项卡会好得多。

更新

我几乎找到了解决方案:

:syntax match SOH /^A/ conceal cchar=_
:set conceallevel=2
:hi conceal guibg=NONE

不幸的是我还没有找到如何将tab转义为 cchar 参数(而不是下划线)的方法。

1 个答案:

答案 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!

如果我尝试保存它,此自动命令将退出该文件。自动命令将是自动执行您想要做的最佳选择。