Linux

如何防止 GNU 螢幕將製表符擴展到空格?

  • February 19, 2015

使用普通的 bash 提示符echo -e 'hello\tworld'會生成一個真正的選項卡。然而,在 GNU 螢幕中執行的相同命令會在兩個單詞之間放置空格。

我已經在 Ubuntu 10.04 上測試了這個,螢幕版本 4.00.03jw4 (FAU) 2-May-06 和 RHEL 5.5 螢幕版本 4.00.03 (FAU) 23-Oct-06

有沒有辦法讓螢幕輸出製表符而不是將它們轉換為空格?

不,沒有辦法,只有寫程式碼。查看“BUGS:”下的手冊頁

  • 螢幕不使用硬體選項卡。

就我而言,硬體是軟體“gnome-terminal”。

這個簡單的實驗,在 GNU Screen 中,向我展示了 “\t” 正在輸出一個 TAB 字元(注意:你的 echo 命令缺少一個 “-e” 標誌):

skx@birthday:~$ echo -e "Hello\tWorld" | od -c
0000000   H   e   l   l   o  \t   W   o   r   l   d  \n
0000014

現在我重複該命令並將輸出保存到文件中,驗證是否仍然存在 TAB 字元:

skx@birthday:~$ echo -e "Hello\tWorld" > x
skx@birthday:~$ od -c < x
0000000   H   e   l   l   o  \t   W   o   r   l   d  \n
0000014

但是,如果我對該文件進行分類,並通過滑鼠將其複制並粘貼到 emacs 中,則 TAB 會失去。所以看起來父 gnome-terminal 正在做一些奇怪的事情,或者標籤在粘貼到我的新視窗時被轉換。無論哪種方式,我都懷疑 GNU Screen 不是罪魁禍首。

引用自:https://serverfault.com/questions/278010