You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Same file, with bat --wrap never --tabs 0 notes.tsv:
I'm not sure what is causing the misalignment bug, but my problem is that some columns data is a lot wider than their headers, and I'd like bat to have a setting to use the largest visible width for these, since setting --tabs to an arbitrary big value applies to all columns.
I tried using column -ts $'\t' notes.tsv | bat -l tsv to columnate the data, but then bat doesn't understand the file:
But column -ts $'\t' -o $'\t' notes.tsv | bat -l tsv --wrap never --tabs 0 seems to work, but I think it'd be better to have it as a setting.
System information
bat 0.23.0
GNOME Terminal 3.49.92 using VTE 0.74.0 +BIDI +GNUTLS +ICU +SYSTEMD
Ubuntu 23.10 (Gnome 45 on Wayland)
The text was updated successfully, but these errors were encountered:
I tried using column -ts $'\t' notes.tsv | bat -l tsv to columnate the data, but then bat doesn't understand the file
That is expected, as there is no way for bat to know with a variable-space-separated file whether a field contains a space character or not and would highlight it wrongly/misleadingly.
But column -ts $'\t' -o $'\t' notes.tsv | bat -l tsv --wrap never --tabs 0 seems to work, but I think it'd be better to have it as a setting.
Nice solution. In my testing the --tabs 0 has no effect here, but maybe I'm missing something.
In terms of making a setting for it, well, bat reads the input one line at a time (especially when piping from stdin), so there is no way in advance for it to know the max width of each column. Indeed, the syntax highlighting engine wouldn't support it anyway. So I think your column pre-processing is the way to go. Now that we have $LESSOPEN support (#2444), perhaps that can also be utilized somehow - perhaps with a wrapper script - to "make it easier" than having to type the whole thing out each time you work with a tsv file?
I'm not sure what $LESSOPEN does, but it seems to be defined as LESSOPEN=| /usr/bin/lesspipe %s on my computer. I didn't know that bat read one line at a time, thanks for the information, at the end I put this in my .bashrc:
tsv() {
column -ts $'\t' -o $'\t'"$1"| bat -l tsv --wrap never --tabs 0 --file-name "$1"
}
The following file
TSV file, with
bat --wrap never notes.tsv
:Same file, with
bat --wrap never --tabs 0 notes.tsv
:I'm not sure what is causing the misalignment bug, but my problem is that some columns data is a lot wider than their headers, and I'd like bat to have a setting to use the largest visible width for these, since setting
--tabs
to an arbitrary big value applies to all columns.I tried using
column -ts $'\t' notes.tsv | bat -l tsv
to columnate the data, but then bat doesn't understand the file:But
column -ts $'\t' -o $'\t' notes.tsv | bat -l tsv --wrap never --tabs 0
seems to work, but I think it'd be better to have it as a setting.System information
bat 0.23.0
GNOME Terminal 3.49.92 using VTE 0.74.0 +BIDI +GNUTLS +ICU +SYSTEMD
Ubuntu 23.10 (Gnome 45 on Wayland)
The text was updated successfully, but these errors were encountered: