4

I don't like the cterm=reverse used on the StatusLine. Without reverse, I also don't care for bold, so I ended up with hi StatusLine cterm=none in my .vimrc.

However, this lead the spaces caused by the %= in my statusline to be displayed as ^'s, which is quite obnoxious.

Here's my statusline code:

if has('statusline')
    if version >= 700
        " Fancy status line.
        set statusline =
        set statusline+=%n                                 "buffer number
        set statusline+=%{'/'.bufnr('$')}\                 "buffer count
        set statusline+=%f%m\                              "file name/modified flag
        set statusline+=(%{strlen(&ft)?&ft:'none'})        "file type
        set statusline+=%=                                 "indent right
        set statusline+=U+%04B\                            "Unicode char under cursor
        set statusline+=%-6.(%l/%{line('$')},%c%V%)\ %<%P  "position
    endif
endif

What's causing that to happen? And can I change it or do I have to settle for cterm=bold?

2
  • 1
    This could be a bug. Commented Mar 5, 2015 at 20:22
  • 2
    I checked it in the source. This is done on purpose to make fillchars visible. Don't think there is a way around. I would probably make the statusline bold or use underline highlighting Commented Mar 5, 2015 at 21:26

1 Answer 1

4

No. There is no way around that. This is done on purpose whenever the Statusline highlighting is not different than the normal highlighting. You could however try to set the Statusline highlighting to a particular highlighting. That should prevent that this happens. E.g. if you are using this in a black terminal, try this:

:hi StatusLine ctermbg=0 term=none

That means, by setting the highlighting group of the statusline to a particular color it will be different than the Normal highlighting and therefore, the replacement of the fillchars to '^' will not occurr.

You might also want to consider to set the StatuslineNC highlighting to a similar highlighting.

7
  • 1
    I use various background colors for terminals that all rely on the same .vimrc, so unfortunately setting a specific color wouldn't be any better (unless I can set it to "whatever is being used for the bg"). Looks like I'll just have to settle for bold or underlined then. Commented Mar 6, 2015 at 15:52
  • "whatever is being used for the bg" That is possible. Use 'ctermbg=bg' this works, if your Vim knows the current bg color otherwise you might get an error. Commented Mar 6, 2015 at 21:35
  • :hi StatusLine ctermbg=bg just gives me E420: BG color unknown, unfortunately Commented Mar 9, 2015 at 18:29
  • What is the definition of the :Normal highlighting group for you? Commented Mar 9, 2015 at 18:38
  • "highlight group not found: Normal" Commented Mar 9, 2015 at 18:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.