首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在statusline中包含颜色字符串

在statusline中包含颜色字符串
EN

Stack Overflow用户
提问于 2011-05-13 23:54:45
回答 1查看 696关注 0票数 4

我有一些函数被定义为

代码语言:javascript
复制
function! myfunc()
    let s = 'hello world'
    return s
endfunction

我可以将它作为statusline=%{myfunc()}包含在我的状态行中,它可以很好地打印出'hello world‘。我还可以将它着色为statusline=%#mycolor#%{myfunc()},其中mycolor是我定义的颜色。

现在,我想对每个单词分别着色,因此我将函数重新定义为

代码语言:javascript
复制
function! myfunc()
    let s = '%#mycolor1#hello %#mycolor2#world'
    return s
endfunction

但是,当我在状态行中设置它时,输出只是文字字符串"%#mycolor1#hello %#mycolor2#world",而我希望hello根据mycolor1着色,world根据mycolor2着色。

我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-14 02:15:48

我认为这个vim实用程序可能部分回答了您的问题:

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

所以看起来你不能在'myfunc‘函数中改变颜色。但您可以通过使用exec命令指定statusline来获得颜色更改,例如:

代码语言:javascript
复制
:let sl_statement = 'set statusline=%#' . color1highlight .
                 \   '#%{myfunc1()}%#' . color2hl . '#%{myfunc2()}'
:exec sl_statement
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5994525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档