vim - 根据模式匹配突出显示整行
问题描述
如果屏幕上有匹配项,我正在尝试使用 vim 或 nvim 突出显示整个 gui 行。
我不知道如何开始接近这个或搜索什么。
我可以根据模式匹配使 vim 高亮,但我希望它像上图所示在屏幕底部(黑色)那样突出显示整个 gui 宽度。
我怎样才能做到这一点?
解决方案
sign
据我所知,除了特征之外,不可能突出显示整行。下面的示例使用@/
寄存器值来查找最后搜索的行,并将Search
在它们上突出显示。
function! s:ToggleHighlightSearchLines()
if !exists('s:id')
let s:id = localtime()
let lc = [line('.'), col('.')]
call cursor([1, 1])
let s:sc = &signcolumn
let &signcolumn = 'no'
sign define hlsLines linehl=Search
let s:sp = 0
while 1
let ln = search(@/, 'W')
if ln == 0 | break | endif
execute 'sign place ' . s:id . ' line=' . ln . ' name=hlsLines'
let s:sp += 1
endwhile
call cursor(lc)
else
while 0 < s:sp
execute 'sign unplace ' . s:id
let s:sp -= 1
endwhile
sign undefine hlsLines
let &signcolumn = s:sc
unlet s:id s:sp s:sc
endif
endfunction
command! ToggleHLSLines call s:ToggleHighlightSearchLines()
推荐阅读
- c++ - 如何在没有循环的情况下在 C++ 中总结向量 int 的向量
- c# - 使用 C# 在没有 Oracle 客户端的情况下访问 Oracle DB 9.2
- webpack - 使用 Tailwindcss+postcss 的 Svelte 组件样式的 Webpack
- c - C中的全局常量变量与局部常量变量有什么区别
- llvm - 是否可以在 LLVM IR 中编写 Web 服务器?
- json - 使 .Net Web API JSON 输出漂亮
- excel - 将数据复制到新文件
- sql - 定义SQL中指定间隔之间的条件?
- node.js - 如何使用 heroku 和 nodejs 设置 postgresql 配置?
- android - 身份验证和 Firestore 错误 - NullPointerException