适配Vim正则扩展context.vim以显示SQL查询结果表头
解决context.vim显示dadbod查询结果表头的配置调整
针对context.vim逐行处理的特性,需要调整g:context_join_regex的正则表达式,去掉跨行匹配逻辑,改为分别匹配表头的列名行和分隔线行。同时补充g:context_extend_regex让数据行触发上下文扩展,最终配置如下:
调整后的配置
" 扩展触发正则:加入数据行匹配,让光标在数据行时触发上下文扩展 let g:context_extend_regex = '^\s*\([]{})]\|end\|else\|case\|default\|done\|elif\|fi\|-\{5,}\|\(-\+\s\+\)\+-\+$\|^\s\+\w\+\)' " 上下文合并正则:匹配空行、列名行、分隔线行,确保表头被纳入上下文 let g:context_join_regex = '^\W*$\|^\(\w\+\s\+\)\+\w\+$\|^\(-\+\s\+\)\+-\+$'
正则说明
^\(\w\+\s\+\)\+\w\+$:匹配由空格分隔的多列名行(如示例中的ColOne ColTwo ...)^\(-\+\s\+\)\+-\+$:匹配由空格分隔的短横线分隔线行(如示例中的-------------------- ---------- ...)^\W*$:保留原逻辑,匹配空行并纳入上下文^\s\+\w\+:新增的扩展触发规则,匹配开头带空格的数据行,触发上下文向上查找表头
验证效果
当光标位于示例数据行(如iiii jjjj ...)时,context.vim会自动将上方的列名行和分隔线行纳入上下文显示,实现预期的表头跟随效果。
内容的提问来源于stack exchange,提问作者Billy
相关产品推荐
相关产品推荐

