Linux
如何防止 GNU 螢幕將製表符擴展到空格?
使用普通的 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 不是罪魁禍首。