Less
如何減少將標籤顯示為標籤?
當我在 中查看帶有製表符的數據時
less
,製表符會擴展為空格。如果我然後使用 ctrl-c 將它們直接從終端複製出來,它們會複製為空格。另一方面,more
保留製表符,就像許多其他命令一樣tail
和head
。有什麼辦法可以less
保持標籤完好無損?
-r``-U
即使與聲稱將製表符視為控製字元的 結合使用,似乎也沒有任何效果。我沒有看到任何其他相關選項less
。
的手冊頁
less
似乎具有誤導性。通過組合使用
-r
和-U
選項,您將防止less
在它從輸入讀取行並填充其輸出緩衝區時將製表符轉換為空格。但是,當將輸出緩衝區寫入終端(而不是寫入文件或管道)時,write()
由於 termio 設置,在呼叫中會進行第二次製表符到空格的轉換,這與閱讀手冊頁可能期望的行為相矛盾.如果您
less
從原始碼編譯,並註釋或#ifdef
刪除 which 或XTABS
、OXTABS
或TAB3
intos.c_oflag
in 的screen.c:raw_mode()
行(第 487 版中的第 398-411 和 489 行less
),您將獲得一個版本,less
如果使用-r -U
.我找不到任何現有的命令行選項來產生所需的行為,儘管很容易產生一個可以切換此行為的版本。
使用足夠笨的終端也應該有效。