vim查看日志技巧
- 平常看日志都是用vim来查看,主要是使用vim能够快速打开大文件不卡顿,且搜索迅速,筛选也非常便捷
- 后来看同事用 TextAnalysisTool 查看日志,感觉有些功能还挺实用的,于是想着能不能通过vim也实现这些功能,以下是 TextAnalysisTool 的常用功能
- 筛选器:支持反选、上色(上色有优先级)
- 折叠非筛选器命中的行
- 导出筛选器命中的行到其他文件


模拟 TextAnalysisTool 功能
筛选器
-
:vimgrep /\v(ERROR|WARN)/ %then:copen -
染色
bashsyn match LogError /^.*\[ERROR\].*$/ highlight LogError ctermbg=Red syn match LogWarn /^.*\[WARN\].*$/ highlight LogWarn ctermbg=Yellow syn match LogInfo /INFO/ highlight link LogInfo Identifier- 将以上保存为一个文件比如
color.vim,在打开日志后实用命令::source color.vim即可,这样就不用每次都要临时配置颜色方案了。 
- 优先级:后定义的优先级比先定义的优先级要高
- 将以上保存为一个文件比如
折叠
- 其实导航窗口已经算是折叠后的效果了,而日志窗口是非折叠的效果,但是vim支持更高级的折叠功能
:set foldemethod=expr foldexpr=getline(v:lnum)!~'\\v(ERROR\|WARN)'
za切换当前光标处的折叠项的展开和折叠状态zR: 展开所有折叠zM: 收起所有折叠
导出
- 导出非常简单,在导航窗口中执行:
:w file_name即可
持久化
- 如果每次打开都要做这么一系列操作要烦死了,所以可以将这些操作放到脚本文件
log.vim中
bash
source color.vim
set foldmethod=expr foldexpr=getline(v:lnum)!~'\\v(ERROR\|WARN)'
vimgrep /\v(ERROR|WARN)/ %
copen
source color.vim
- 运行完:
:source log.vim的效果图
blend
- 如果觉得背景色太碍眼了,可以设置前景色:
ctermbg改为ctermfg


