bat icon indicating copy to clipboard operation
bat copied to clipboard

`^H` in random places when using the `bat -plhelp` command

Open asher-gh opened this issue 2 years ago • 2 comments

The produced output from git stash --help | bat -plhelp produces ^H at random places.

image

How did you install bat? homebrew


bat version and environment

Software version

bat 0.21.0

Operating system

macOS 12.4 (Darwin 21.5.0)

Command-line

bat --diagnostic 

Environment variables

SHELL=/bin/zsh
PAGER=less
LESS=-R
LANG=en_GB.UTF-8
LC_ALL=<not set>
BAT_PAGER=<not set>
BAT_CACHE_PATH=<not set>
BAT_CONFIG_PATH=<not set>
BAT_OPTS=<not set>
BAT_STYLE=<not set>
BAT_TABS=<not set>
BAT_THEME=<not set>
XDG_CONFIG_HOME=<not set>
XDG_CACHE_HOME=<not set>
COLORTERM=truecolor
NO_COLOR=<not set>
MANPAGER=<not set>

Config file

# This is `bat`s configuration file. Each line either contains a comment or
# a command-line option that you want to pass to `bat` by default. You can
# run `bat --help` to get a list of all possible configuration options.

# Specify desired highlighting theme (e.g. "TwoDark"). Run `bat --list-themes`
# for a list of all available themes
--theme="TwoDark"

# Enable this to use italic text on the terminal. This is not supported on all
# terminal emulators (like tmux, by default):
--italic-text=always

# Uncomment the following line to disable automatic paging:
#--paging=never

# Uncomment the following line if you are using less version >= 551 and want to
# enable mouse scrolling support in `bat` when running inside tmux. This might
# disable text selection, unless you press shift.
#--pager="less --RAW-CONTROL-CHARS --quit-if-one-screen --mouse"

# Syntax mappings: map a certain filename pattern to a language.
#   Example 1: use the C++ syntax for Arduino .ino files
#   Example 2: Use ".gitignore"-style highlighting for ".ignore" files
#--map-syntax "*.ino:C++"
#--map-syntax ".ignore:Git Ignore"

Custom assets metadata

Could not read contents of '/Users/asher/.cache/bat/metadata.yaml': No such file or directory (os error 2).

Custom assets

'/Users/asher/.cache/bat' not found

Compile time information

  • Profile: release
  • Target triple: aarch64-apple-darwin
  • Family: unix
  • OS: macos
  • Architecture: aarch64
  • Pointer width: 64
  • Endian: little
  • CPU features: unknown
  • Host: aarch64-apple-darwin

Less version

> less --version 
less 581.2 (POSIX regular expressions)
Copyright (C) 1984-2021  Mark Nudelman

less comes with NO WARRANTY, to the extent permitted by law.
For information about the terms of redistribution,
see the file named README in the less distribution.
Home page: https://greenwoodsoftware.com/less

asher-gh avatar May 31 '22 11:05 asher-gh

Thank you for reporting this. I can not reproduce this on Linux with less 590, bat 0.21.0:

image

sharkdp avatar Jun 04 '22 20:06 sharkdp

^H stands for backspace-H, which is the Backspace control code. This could be related to #652.

Background: some programs used to print something like -p^Hp, i.e. -, -p, <backspace>, p to write -p with a bold p (think of a typewriter where you type two "p"s at the same position).

Maybe your man program still uses that old format and bat can't handle it properly (I think git --help calls man somehow?).

sharkdp avatar Jun 04 '22 20:06 sharkdp