是否可以在Vim中标记一系列文本并更改其高亮颜色(为红色),而不是选择另一个文本范围并更改该颜色(为绿色)以保留上一个高亮显示等等?
答案 0 :(得分:13)
开始的基本内容是:
:hi Green guibg=#33ff33
:syntax region Green start=/\%20l/ end=/\%30l/
它的作用:
现在,您可以编写一个函数或/和命令,该函数或/和命令采用可视选择的文本,并将多个预定义颜色组中的一个应用于该文本。一旦你有了这个功能 - 将它绑定到你的键:例如 \ g 表示绿色, \ r 为了红色,
<强> UPD:强>
这里有一些vimscript:
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>
注意:的
它无法重新应用突出显示(例如绿色到红色)。
答案 1 :(得分:5)
有一个名为mark的插件/脚本:
Mark:一个小脚本,可以同时突出显示不同颜色的几个单词。例如,当您浏览大型程序文件时,可以突出显示一些关键变量。这样可以更轻松地跟踪源代码。
答案 2 :(得分:5)
我相信你正在寻找 Txtfmt 插件......
Txtfmt 为Vim中的纯文本提供了一种“富文本”功能。突出显示是通过直接插入缓冲区的隐藏标记字符完成的,因此突出显示是持久的,无需存储除文件之外的元数据。
Txtfmt具有高度可配置性。默认设置支持8种(可配置的)前景色,8种(可配置的)背景色,以及粗体,下划线和斜体属性的所有组合(例如,粗体,粗体斜体,粗体下划线等等)。非默认配置支持以下附加属性:standout,reverse和undercurl。
有一个非常广泛的帮助文件,作者非常乐意回答使用问题......
答案 3 :(得分:1)
看起来Mark plugin可以满足您的需求。安装完成后,只需进行视觉选择,然后按 \ m 。
答案 4 :(得分:0)
我不知道有什么方法可以做这样的事情,因为它需要存储与文件的实际内容无关的元数据。即使在Vim运行时它只在内存中,我也不知道如何做到这一点。
并不意味着没有办法,因为我对Vim的了解有限。但这似乎是Vim不会做的事情。