terminal icon indicating copy to clipboard operation
terminal copied to clipboard

Select and copy TAB characters without expanding to spaces

Open KalleOlaviNiemitalo opened this issue 4 years ago • 6 comments

Description of the new feature/enhancement

After outputting a text file to the terminal, I want to copy part of it to the clipboard without expanding TAB characters to spaces. So that I can then paste it to a different file in which TAB characters are required.

Proposed technical implementation details (optional)

Remember which character cells were output as spaces and which ones were skipped over by TAB characters. When selecting text with the mouse, select entire TAB characters instead of individual character cells. Copy the TAB characters to the clipboard.

The macOS Terminal app has this feature. It does not preserve TAB characters in the following situations:

  • If outputting the TAB character moves the cursor over character cells of which at least one contains a different character already.
  • If the TAB character has already been output and a different character is then output to any of the character cells spanned by the TAB character.

I did not test whether the macOS Terminal app preserves TAB characters if they are moved using SCROLL LEFT, SCROLL RIGHT, or INSERT CHARACTER control functions, or if tabulation stops are changed. I think it would be OK to expand TAB characters to spaces in those situations.

Related:

KalleOlaviNiemitalo avatar Oct 02 '20 15:10 KalleOlaviNiemitalo

Yeah, I think this is totally worthwhile!

It's also going to be hard. Our buffer needs a deep rethink on how it stores a great number of things. :smile:

DHowett avatar Oct 02 '20 21:10 DHowett

Ah ok

Diego-TorresDev avatar Oct 02 '20 21:10 Diego-TorresDev

If the TAB characters are part of a rectangular selection, and whitespace trimming is enabled (https://github.com/microsoft/terminal/issues/9706), I think they should be trimmed just like space characters.

https://github.com/microsoft/terminal/blob/2219014385c9b2b351bd0148b2aae385ce6427a1/src/buffer/out/textBuffer.cpp#L1678-L1679

KalleOlaviNiemitalo avatar Apr 24 '21 07:04 KalleOlaviNiemitalo

As a bioinformatics researcher, can select and copy TAB characters without expanding to spaces is the only reason that keep me using xshell while not win terminal. Please give this feature to your great terminal. Thank you for your time ! I wish you all the best !

Musketeer-D avatar Jul 05 '21 02:07 Musketeer-D

Any update on this?

Suleman-Elahi avatar Jan 04 '23 10:01 Suleman-Elahi

Nope. We'll make sure to update this thread when there is. In the meantime, might I recommend the Subscribe button? image That way you'll be notified of any updates to this thread, without needlessly pinging everyone on this thread ☺️

zadjii-msft avatar Jan 04 '23 12:01 zadjii-msft

As a workaround I started to use for Ubuntu staff xfce4-terminal. This terminal preserve tab character in both ways.

xdml avatar May 19 '23 04:05 xdml

Just wanted to note that Gnome Terminal which is the default terminal in Ubuntu also renders tabs as tabs. I am used to being able to copy git diffs, source code, and similar text from the terminal without breaking the formatting, but using the windows terminal this is not possible and I have to redirect the output to a file instead.

computator avatar Jul 23 '24 20:07 computator