I managed to hide the background of the seperator between open windows by using:

hi VertSplit term=NONE cterm=NONE gui=NONE guifg=NONE guibg=NONE ctermfg=NONE ctermbg=NONE

However the fillchars still show up, and from my research it seems like its impossible to completely remove the fillchars. I figured there must be a way to make it fillchars invisible, but I cant seem to figure out how.

enter image description here

enter image description here


You can try hiding it using

set fillchars=vert:\ 
hi! VertSplit guifg=black guibg=black ctermfg=black ctermbg=black

Instead of black use color of your terminal or colorscheme background (not sure about various fancy terminals out there)

NOTE: vert:\ the space at the end.

enter image description here

It also works with windows terminal (preview):

(you have to set fillchars, though)

enter image description here

  • These commands get rid of the background, but not the fillchars. I do have the background invisible already. I want to get rid of the | characters that appear when I do a vertical split. – mbl Nov 25 '19 at 7:03
  • 1
    The command makes fillchars the same color as background... and it works for non transparent terminals and gui. You probably have transparency set up in your terminal, haven't you? – Maxim Kim Nov 25 '19 at 7:08
  • For windows terminal with "useAcrylic" and transparency it doensn't work. – Maxim Kim Nov 25 '19 at 7:12
  • It still doesn't work with useAcrylic set to false. :( It also doesn't work in gVim. I've also been trying with set fillchars=vert:\ – mbl Nov 25 '19 at 7:30
  • 1
    Have you tried to set guifg and ctermfg colors to smth else then NONE? as in my example? – Maxim Kim Nov 25 '19 at 7:33

it seems like its impossible to completely remove the fillchars

You can't really remove it, but you can make it invisible:

" must be before setting your colorscheme
augroup nosplit | au!
    autocmd ColorScheme * hi VertSplit ctermfg=bg guifg=bg
augroup end
  • 1
    that doesn't work for me, I still see the | character on my vertical seperators – mbl Nov 25 '19 at 3:12
  • @mbl This one should do. – Matt Nov 25 '19 at 3:41
  • thank you, but still this doesn't have any effect for me. it seems like this script is trying to do the same thing that I posted in my original post, which works to an extent. It's just that the fillchar is still there, I see | characters on my vertically split windows still. – mbl Nov 25 '19 at 3:50

While you have fixed VertSplit highlighting I don't see anywhere here the replacement of the actual vert 'fillchar' value. We know removing it doesn't help as it will fall back to a default value but this seems to me to be a sufficient workaround:

:set fillchars=vert:\ ,..the rest..

(That's an escaped Space char.)

  • I tried :set fillchars=vert:\ and it doesnt work. Does it actually work for you? – mbl Nov 25 '19 at 5:10
  • Indeed it does. I'm grasping at straws but try it with another value: set fillchars=vert:\ ,fold:- or let &fillchars = 'vert: ,fold:-'. Try refreshing screen with Ctrl-L...hmmm...thinking some more....try putting it in an autocmd in .vimrc. ... Will wait for your next update. – B Layer Nov 25 '19 at 5:15
  • if I do a set fillchars=vert:x for example and then try set fillchars=vert\ my vim goes back to showing | which seems to be my default fillchar – mbl Nov 25 '19 at 5:19
  • It's like the space is being ignored which drove some of my suggested workarounds. The let version especially will make it impossible to cutoff the space. Let me know what happens with those and I'll think about it more. – B Layer Nov 25 '19 at 5:20
  • What version of vim are you using and what system, btw? – B Layer Nov 25 '19 at 5:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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