Answers:
您询问了如何隐藏前几个字母,而不是删除它们或将它们滚动到视线之外,因此下面是实际上如何隐藏它们的方法:
您可以将match,语法高亮和隐藏功能结合使用,以实际上不会在行内显示匹配的字符。
隐藏每行的前25个字符:
:syn match Concealed '^.\{25\}' conceal
:set conceallevel=2
要仅隐藏带有日期标点的行,请执行以下操作:
:syn match Concealed '^....-..-.. ..:..:..\..... ' conceal
取消隐藏:
:syn clear Concealed
:set conceallevel=0
通常如下所示:
YYYY-MM-DD HH:MM:SS.USEC PID Name LogText
YYYY-MM-DD HH:MM:SS.USEC PID Name LogText
YYYY-MM-DD HH:MM:SS.USEC PID Name LogText
YYYY-MM-DD HH:MM:SS.USEC PID Name LogText
YYYY-MM-DD HH:MM:SS.USEC PID Name LogText
YYYY-MM-DD HH:MM:SS.USEC PID Name LogText
YYYY-MM-DD HH:MM:SS.USEC PID Name LogText
执行前两个命令后将如下所示:
PID Name LogText
PID Name LogText
PID Name LogText
PID Name LogText
PID Name LogText
PID Name LogText
PID Name LogText
vim
:help :syn-match
help :syn-conceal
help 'conceallevel'
help 'concealcursor'
+conceal
(mine is)选项进行编译才能起作用。set concealcursor=nc
防止光标线扩展也不错。
+conceal
某些年来该功能选项是标准的。遗憾的是,它现在还不为人所知。这确实很棒而且很灵活。提供了许多新的选择...
使用vim的过滤器功能。跑:
:%!cut -b36-
通过cut
命令运行缓冲区的内容,仅保留字节36及更高字节。%
表示要运行整个缓冲区,并用输出替换其内容,然后!
是filter命令,其余部分作为要运行的程序。除非您随后将缓冲区保存在顶部,否则这不会修改基础文件。
要获得原始未修剪的缓冲区,可以使用:e
,前提是它由真实文件支持。
%!cat %
它取回来?这很好用,我可以使用a map
在这两者之间切换
cut -c36- logfile > logfile_with_first_35_chars_missing
,然后对其进行检查。