Bash

在終端視窗上輸出製表符

  • January 4, 2019

如何在終端視窗上輸出製表符(ASCII hex 0x09)?

在我的所有實驗中,製表符出現在終端上時都會更改為空格。例如

$ echo -e "xx\t\tyy"
xx              yy

這不是我想要的,因為和之間的xx空格yy填充了 14 個空格而不是 2 個製表符。我試過stty tab0、和stty tab1,但都給出了相同的結果。stty tab2``stty tab3

我正在使用 GNOME 終端 2.16.0 和 Red Hat Enterprise Linux Client 版本 5.9。

背景:我想滑鼠選擇終端上的文本並粘貼到 Excel 中。當我從 Emacs 執行此操作時(欄位之間有 0x09 選項卡),欄位最終位於不同的列中。我喜歡這個,並且在從終端複製粘貼時想要相同的行為。但是,目前所有欄位都以第一列中的一個字元串結尾。當我在 Emacs 中的欄位之間有空格 (0x20) 時,行為與從終端複製粘貼時的行為相同。

製表符不是可列印字元。Tab 是一個控製字元,通常使游標前進(但不在行尾),使其跳過的字元保持不變。

gnome-terminal(和其他vte基於模擬器)有一個特殊的技巧,它試圖保留標籤以用於複製粘貼目的,但是,它仍然會在軟換行時失去它們。其他模擬器可能也有這樣的黑客,但通常他們沒有。

另請參閱https://bugzilla.gnome.org/show_bug.cgi?id=769316上的對話。

引用自:https://unix.stackexchange.com/questions/324676