突出显示Vim中的文本范围

Ver*_*reb 4 vi vim

是否可以在Vim中标记一系列文本并更改其高亮颜色(为红色),而不是选择另一个文本范围并更改该颜色(为绿色)以保留上一个高亮显示等等?

Max*_*Kim 13

基本的东西是:

:hi Green guibg=#33ff33
:syntax region Green start=/\%20l/ end=/\%30l/
Run Code Online (Sandbox Code Playgroud)

它能做什么:

  1. 使用绿色背景颜色定义"绿色"突出显示组.
  2. 定义语法区域,该区域应突出显示"绿色"突出显示组,从第nr行到第nr行30行.

现在,您可以编写一个函数或/和命令,该函数采用可视化选择的文本,并将多个预定义颜色组中的一个应用于该文本.一旦你有了这个功能 - 将它绑定到你的键:例如\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>
Run Code Online (Sandbox Code Playgroud)

注意:

它无法重新应用突出显示(例如绿色到红色).

  • @SazzadBinKamal在vim中执行`:h/\%c`以获取有关vim regexp中的列的信息. (3认同)

Dan*_*der 5

有一个名为mark的插件/脚本:

马克:一个小脚本,可同时突出不同颜色的几个单词.例如,当您浏览大型程序文件时,可以突出显示一些关键变量.这样可以更轻松地跟踪源代码.

http://www.vim.org/scripts/script.php?script_id=1238


小智 5

我相信你正在寻找Txtfmt插件......

Txtfmt(Vim荧光笔)

Txtfmt为Vim中的纯文本提供了一种"富文本"功能.突出显示是通过直接插入缓冲区的隐藏标记字符完成的,因此突出显示是持久的,无需存储除文件之外的元数据.

Txtfmt具有高度可配置性.默认设置支持8种(可配置的)前景色,8种(可配置的)背景色,以及粗体,下划线和斜体属性的所有组合(例如,粗体,粗体斜体,粗体下划线等等).非默认配置支持以下附加属性:standout,reverse和undercurl.

有一个非常广泛的帮助文件,作者非常乐意回答使用问题...