[問題] manpage 顯示排版提早換行

看板Linux作者時間3年前 (2021/08/14 03:38), 3年前編輯推噓2(2010)
留言12則, 3人參與, 3年前最新討論串1/1
大家好, 標題可能不太清楚,先上張圖: https://i.stack.imgur.com/wvPmV.png
請問為啥 manpage 的輸出會提早換行,而不是顯示完整 terminal 版面後才換行? 這問題我在 FreeBSD 跟 Linux (Ubuntu) 都遇過,不過後者如果是用 SSH 操作的話就 沒這問題,但前者不管是 SSH 或直接在機器上(QEMU -nographic)操作都會這樣。 這問題是不是跟某個環境變數有關呀? 另外想請教個可能沒相關的問題(? 在還沒解壓縮 dot file (.zshrc, .oh-my-zsh/, etc)之前,為什麼按 delete 會輸出 '~'字元,而不是向後刪除字元?這問題不管是在 zsh 或是 csh 都有遇到。 謝謝各位! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.37.32.101 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1628883485.A.E52.html ※ 編輯: dces4212 (114.37.32.101 臺灣), 08/14/2021 03:40:02 ※ 編輯: dces4212 (114.37.32.101 臺灣), 08/14/2021 03:41:10

08/14 10:13, 3年前 , 1F
請看 man 的 manpage 有環境變數可以控制寬度
08/14 10:13, 1F

08/14 10:13, 3年前 , 2F
沒有的話會自動偵測 偵測不到會自動掉回 80 字
08/14 10:13, 2F

08/14 10:14, 3年前 , 3F
至於後面應該是跟 terminfo 有關
08/14 10:14, 3F

08/14 10:15, 3年前 , 4F
你的環境的預設 TERM 可能是不會處理 delete 的類型
08/14 10:15, 4F
感謝C大,看來是都沒偵測到,不過有趣的是,manpage提到$COLUMNS是fallback手段 之一,但我 echo $COLUMNS 明明吐得出東西,可是man卻吃不到這個環境變數@@ 確實,我在本機的TERM是vt-100,不同於在SSH時,是 screen-256color

08/14 10:54, 3年前 , 5F
先 echo $TERM 看看,是不是FreeBSD不認得該TERM
08/14 10:54, 5F
感謝b大,後來改成screen-256color就正常了

08/14 11:10, 3年前 , 6F
倒數第二段的問題,或許rc檔裏包含一些設定tty的指令?
08/14 11:10, 6F
好像沒這麼單純,因為我dotfile裝好後,本機還是一樣是原本的TERM,我後來是手動改 zshrc去換TERM的

08/14 12:37, 3年前 , 7F
FreeBSD 的 man 預設不會自動偵測寬度,如果想要自動偵測
08/14 12:37, 7F

08/14 12:37, 3年前 , 8F
要設定環境變數 MANWIDTH=tty。
08/14 12:37, 8F
感謝l大,原來如此阿,剛剛已經把這個 env var 丟進 zshrc了XD

08/14 12:40, 3年前 , 9F
如果已經確定程式會自動偵測,寬度卻還是有問題,那可能
08/14 12:40, 9F

08/14 12:42, 3年前 , 10F
系統認知的寬度和實際不符,可以用 stty -a 查詢目前終端
08/14 12:42, 10F

08/14 12:43, 3年前 , 11F
機的大小,如果有錯誤可以用 stty 手動更正,或用 resize
08/14 12:43, 11F

08/14 12:43, 3年前 , 12F
之類的指令自動修正。
08/14 12:43, 12F
看來是不會自動偵測,不過 stty -a 的輸出看起來挺正常,而且我縮放字體大小也會更 新。看 manpage 説他是用 ioctl 去抓的,我再看看 strace 看不看得出失敗原因 ※ 編輯: dces4212 (114.37.32.101 臺灣), 08/14/2021 16:59:37
文章代碼(AID): #1X5ieTvI (Linux)
文章代碼(AID): #1X5ieTvI (Linux)