Open avysk opened 1 year ago
Thanks for reporting. Does it help to use the -S
option or explicitly set the --terminal-width
? I think the highlighting goes wrong because it wraps the text in the wrong place, perhaps before it gets highlighted, which confuses it I'd guess.
I see something similar on my Linux Mint 21 system, and -S
helps for me, and despite expectations, nothing actually gets chopped that I can see.
Neither -S
nor --terminal-width
helps.
This is the result of PAGER="bat --style snip --theme gruvbox-dark -S" man ls
This is the result of PAGER="bat --style snip --theme gruvbox-dark --terminal-width 40" man ls
I do not think that highlighting goes off because of wrapping. As you can see, it goes off after (non-wrapped) "DESCRIPTION" header.
If it helps, that's what bat shows with -A
Surprising thing: setting terminal-width
to anything less than 22 causes "DESCRIPTION" header to wrap.
Actually, I'm wrong: it looks like the highlighting is broken even before, in ls option line. Does [
do something bad?
I do not think that highlighting goes off because of wrapping.
I'm a little bit confused, because in the first bat
screenshot, it looks like the line is wrapped at [--colo|r=when]
, which you pointed out as problem 1, and the r
has a different color than colo
, so I guess I thought it is one example of what you referred to as problem 2. And I believe that for this specific case, fixing 1 would fix 2.
As for the bat -A
output duplicating letters with backspaces between them -- which could also affect wrapping logic, this is why the readme recommends using col -bx
I believe.
to be honest, I don't know how gruvbox-dark should look so I find it hard to guess what is wrong...
You are right. The problem with line break seems to go away. I believe I have the same issues with default theme. I will produce screenshots tomorrow; it is nearly 9 pm here.
I will also try with col tomorrow.
You are right; col solves the problem (even though that resulting highlighting has nothing in common with "proper" highlighting -- I suppose the suggested combination just strips all the formatting from a manual page and then tries to guess what to do). I started to use bat really long time ago, I think col
was not in the readme at that time, that's why I missed it.
Probably this issue can be closed -- with col, the formatting of a man page is ignored but nothing is broken.
I guess I'm following up here with a related issue. I've been using the MANPAGER-Snippet from the readme for several months now, and since some software updates two days ago, my manpages have some gibberish characters included:
When investigating, i found that col
(included in util-linux
) got updated exactly around that time and seems to behave differently, has anyone else experienced that too?
I have the same exact issue with yours, @christianhauff .
❯ col --version
col from util-linux 2.39.1
❯ bat --version
bat 0.23.0 (871abd27)
Same problem as @christianhauff.
EDIT:
Apparently the culprit is groff v1.23, so I added this to .zshrc and .bashrc
export MANROFFOPT='-c'
I don't know what this actually does, but it seems to work.
Thanks @mjd-tech, your workaround works for me !
export MANROFFOPT='-c' I don't know what this actually does, but it seems to work.
$ man groff | grep -e '^\s*-c'
-c Start with color output disabled.
@ju1ius , thanks. I found this solution in the gnu groff forum, only to find it was documented in the bat readme all along!
For myself, using bat-extras & less, this is how I could get proper coloring:
alias less='batpipe'
export MANPAGER="less -R --use-color -Dd+r -Du+b"
export MANROFFOPT='-c'
Please notice that is is different from #2563 and different man colorization bugs where escape color codes are not interpreted.
What steps will reproduce the bug?
This is how
man ls
looks inmost
:Now let's run
PAGER="bat --style snip --theme gruvbox-dark" man ls
.Notice two problems:
ls
option line is broken in the middle ofcolor
.The plain style looks a little bit better: the option line is not broken, but the highlighting is:
If the
--style
option is omitted, there is still an erroneous line break. I was not able to get any changes by using a different colorscheme.Bat was installed via cargo.
❯ bat --style plain --theme gruvbox-dark --diagnostic
Software version
bat 0.23.0
Operating system
freebsd 13.2-RELEASE
Command-line
Environment variables
System Config file
Could not read contents of '/etc/bat/config': No such file or directory (os error 2).
Config file
Could not read contents of '/home/alexey/.config/bat/config': No such file or directory (os error 2).
Custom assets metadata
Could not read contents of '/home/alexey/.cache/bat/metadata.yaml': No such file or directory (os error 2).
Custom assets
'/home/alexey/.cache/bat' not found
Compile time information
Less version