在Vim中,是否可以标记一段文本并更改其高亮颜色(为红色),然后选择另一段文本并更改其颜色(为绿色),同时保留先前的高亮,以此类推?
开始入门的基本内容如下:
:hi Green guibg=#33ff33
:syntax region Green start=/\%20l/ end=/\%30l/
功能:
现在,您可以编写一个函数或命令,它可以获取可视选定的文本,并将其中的一个预定义颜色组应用于它。一旦您有了这个函数,请将其绑定到您的按键上:例如,用 \g 来表示绿色,\r 表示红色等。
更新:
以下是一些 Vim 脚本:
function! HighlightRegion(color)
hi Green guibg=#77ff77
hi Red guibg=#ff7777
let l_start = line("'<")
let l_end = line("'>") + 1
execute 'syntax region '.a:color.' start=/\%'.l_start.'l/ end=/\%'.l_end.'l/'
endfunction
vnoremap <leader>g :<C-U>call HighlightRegion('Green')<CR>
vnoremap <leader>r :<C-U>call HighlightRegion('Red')<CR>
注意:
它不能重新应用高亮(例如从绿色到红色的高亮)。
:h /\%c
可以查看有关正则表达式中列的信息。请注意保持原意,使翻译更加通俗易懂。 - Maxim Kim我相信 Txtfmt 插件就是你所需要的...
Txtfmt 为 Vim 中的普通文本提供了一种“富文本”功能。高亮是通过直接插入隐藏标记字符到缓冲区来完成的,因此高亮是持久的,无需存储元数据。
Txtfmt 可高度配置。默认设置支持 8(可配置)前景色、8(可配置)背景色和所有粗体、下划线和斜体属性的组合(例如,粗体、粗斜体、粗下划线等)。非默认配置支持以下额外属性:突出显示、反转和下划线弯曲。
有一个非常详细的帮助文件,作者也非常乐意回答使用问题...
有一个叫做mark的插件/脚本:
Mark:一个小脚本,可以同时用不同颜色突出显示几个单词。例如,在浏览大型程序文件时,您可以突出显示一些关键变量。这将使源代码更易于跟踪。
我不知道有任何方法可以做到这样的事情,因为它需要存储与文件实际内容无关的元数据。即使它只在 Vim 运行时存在于内存中,我也不知道如何做到。
这并不意味着没有方法,因为我对 Vim 的了解有限。但这似乎不是 Vim 会做的事情。