我注意到'showbreak'符号以突出显示的“NonText”color-element突出显示。 NonText也用于EOL角色 我想保留EOL角色的高亮颜色但想改变它的showbreak符号是可能的吗?
另一个问题是我的showbreak符号未显示。 我想用这个符号“↳”把它放在亚麻布栏中(使用set cpoptions + = n)。我无法找到如何显示符号以及如何在showbreak符号后面放置一个空格(在文本和符号之间)。
任何人都可以帮助我吗?
答案 0 :(得分:6)
我认为你不会突然发现与EOL角色不同,至少我不知道如何做到这一点。
对于第二部分,我可以提供帮助。我能够通过以下设置在我的行号列中显示“↳”:
let &showbreak = '↳ '
set wrap
set cpo=n
请注意↳
后面有空格。这个排队很好,直到你有>文件中有9行。如果你想让它与数字列的最后一个字符对齐而不管行数,我不确定你将要做什么。
编辑:我最近为IRC上的某个人写了一个proof-of-concept function,突出显示已用不同突出显示组包装的第一个字符。它没有经过多少测试,但似乎有效。不完全是你想要的,但也许值得一看。
答案 1 :(得分:6)
:help hl-NonText
非常清楚地表明,'showbreak'
字符串和其他非文字字符串(eol
是其成员)不能有不同的颜色(请参阅:help 'listchars'
):
非文本
窗口末尾的'〜'和'@',来自'showbreak'的字符和 文本中不存在的其他字符(例如“>” 当双宽字符不适合在结尾时显示 线)。
如果您愿意接受此限制(@elliottcable),hi! link NonText LineNr
会将'showbreak'
字符串与行号颜色相匹配。
如果您真的想要变得聪明,作为折衷方案,您可以创建一个映射或命令,以便在':set list'
和':set nolist'
之间切换,这也会调整NonText
highlight
同时设置。
如果您使用:set relativenumber
(在vim 7.3中添加),:set showbreak=↳\ \ \
将可靠地保持您的'showbreak'
整齐排列,因为您在浏览文件时数字宽度不会改变。 (除了:set cpo+=n
和:set wrap
@Randy Morris在他的回答中提到的这一点。)
↳
字符肯定需要UTF-8,因为它不会出现在其他编码中。我强烈建议您仔细记录编码问题,详细说明如何将它们与操作系统,版本和vim的:version
输出一起重现,并将它们作为单独的问题发布。 UTF-8应该帮助你争论多种语言而不是障碍。