tmux / tmux

tmux source code
Other
35.04k stars 2.12k forks source link

Hardware tabs (tab characters) support - assess the feasibility #3523

Closed tkapias closed 1 year ago

tkapias commented 1 year ago

Short issue description

Tmux (same for Screen) does not output tab characters. This issue has been raised for the last 15 years but has been overlooked.

Issue description

When an output string contains tab characters (used in many files in bash, markdown and many other languages), these are considered as displayable by most modern terminals without multiplexer, they are often displayed as wide characters U+0009.

This allows copying with the mouse or with a visual mode copy feature, keeping the tab characters intact when pasting.

Many users use Tmux as a regular terminal and expect state of the art copy functionality (OSC52 does not work yet too sadly). Besides Tmux indeed allows copying with the mouse throught the terminal, in Tmux copy mode or with addons like extrakto.

But, Tmux does not pass the tab characters to the terminal and they are replaced by spaces, so that any copy becomes invalid.

This issue is a continuation of #978 and #2619. Strangely for me, these were quickly categorized as normal and difficult to modify and then closed.

Screen at least indicates that it is a bug in its documentation (shortly): https://www.gnu.org/software/screen/manual/screen.html#Known-Bugs

I wish that if the Tmux community doesn't want to work on this issue it should be clearly stated in doc that it is a design choice, a bug or a complex feature and put on hold, but not closed without action.

Reproduction

You can easily compare the operation in a terminal like urxvt or alacritty with and without Tmux:

Required information

nicm commented 1 year ago

This has been discussed in the issues you link to and nothing has changed, see these comments:

https://github.com/tmux/tmux/issues/978#issuecomment-308972426 https://github.com/tmux/tmux/issues/2619#issuecomment-803407600

There is also a comment on the todo list, see the first entry here:

https://github.com/tmux/tmux/wiki/Contributing#medium-things

tmux is not going to send Unicode characters for tabs, that sounds mad. In theory we could set tab stops and send actual tabs, but it would be complicated to implement.

OSC 52 works fine for me and others, if you are having problems please open a new issue.

Please keep unasked-for advice on how to manage and close issues to yourself.

tkapias commented 1 year ago

For OSC 52, I should have said that it's in the context of using ssh (I use Tmux localy and remotly), I remember that there are issues opened about that and I will go check if there is some updates later.

About the current issue, thank you for the link to the #medium-things list. What bothered me most was the fact that such an important missing feature was not documented, even after many user requests, I missed this document.

Maybe leaving a "Known issues" section in the manual would be nice, that's the first place where users grep for information.

I hope that a contributor will get motivated on that subject.

github-actions[bot] commented 1 year ago

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.