Her*_*itz 10 vim syntax-highlighting
我有Vim文档,其中包含使用"语法包含"区域的代码块区域,以便从主文档中突出显示不同的语法.例如,我在输入Python代码时使用了一个名为'pyregion'的语法区域.然后使用Python的语法文件中的设置突出显示文档的pyregion区域,而区域外的区域使用主文档的语法文件.
我想让Python区域中的整个背景以不同的颜色着色,以区别于文档的非Python区域.我可以通过输入整个python区域的背景来获得部分路径:
:highlight pyregion guibg=#555555
Run Code Online (Sandbox Code Playgroud)
但是上面的命令只更改了背景上有文本字符的区域的背景,而不是区域的整个背景,这似乎仍然像"正常"组定义的背景颜色一样被控制为文档的其余部分.这没关系 - 它确实引起了对该区域的注意,但它有一个斑点的外观,因为只有代码字符本身具有不同的背景,而不是整个屏幕区域的整个区域.
有没有办法在整个区域内获得不同背景颜色的统一乐队,而不仅仅是有角色的区域的一部分?
在以下链接中有相关的问题和答案,但据我所知,答案也只在有文本的地方改变背景: 用Vim突出显示代码块背景
谢谢你的帮助.
如果没有荒谬的躲避(见下文),我不相信这是可能的.如果你试试这个:
:match Error /\%3l/
Run Code Online (Sandbox Code Playgroud)
它强调了Vim认为是第3行的全部内容.突出显示仅延伸到角色的结尾.这让我怀疑无法突出显示不存在的字符.
现在停止阅读.
纯粹作为一种荒谬的运动,你当然可以在每一行的末尾附加大量的空格,然后在你保存时删除它们.这将是愚蠢的,但这是我唯一能想到的.
" Add spaces to the end of every line (you could also do
" this selectively for lines that don't already have lots
" of spaces and you could do it on reading a file or whatever)
:exe '%s/$/' . repeat(' ', 1000) . '/'
" Automatically remove spaces at the end of every line when saving
:autocmd BufWritePre %s/ *$//
" Make 'A' append at the end of the non-space characters on the line
:nmap A / *$<CR>i
" Make '$' go to the end of the non-space characters on the line
:nmap $ /.\? *$<CR>
Run Code Online (Sandbox Code Playgroud)
免责声明:不要这样做.
| 归档时间: |
|
| 查看次数: |
881 次 |
| 最近记录: |