作者dces4212 ()
看板Linux
標題[問題] manpage 顯示排版提早換行
時間Sat Aug 14 03:38:00 2021
大家好,
標題可能不太清楚,先上張圖:
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://webptt.com/m.aspx?n=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
1F:→ CP64: 請看 man 的 manpage 有環境變數可以控制寬度 08/14 10:13
2F:→ CP64: 沒有的話會自動偵測 偵測不到會自動掉回 80 字 08/14 10:13
3F:→ CP64: 至於後面應該是跟 terminfo 有關 08/14 10:14
4F:→ CP64: 你的環境的預設 TERM 可能是不會處理 delete 的類型 08/14 10:15
感謝C大,看來是都沒偵測到,不過有趣的是,manpage提到$COLUMNS是fallback手段
之一,但我 echo $COLUMNS 明明吐得出東西,可是man卻吃不到這個環境變數@@
確實,我在本機的TERM是vt-100,不同於在SSH時,是 screen-256color
5F:→ bitlife: 先 echo $TERM 看看,是不是FreeBSD不認得該TERM 08/14 10:54
感謝b大,後來改成screen-256color就正常了
6F:→ bitlife: 倒數第二段的問題,或許rc檔裏包含一些設定tty的指令? 08/14 11:10
好像沒這麼單純,因為我dotfile裝好後,本機還是一樣是原本的TERM,我後來是手動改
zshrc去換TERM的
7F:推 lantw44: FreeBSD 的 man 預設不會自動偵測寬度,如果想要自動偵測 08/14 12:37
8F:→ lantw44: 要設定環境變數 MANWIDTH=tty。 08/14 12:37
感謝l大,原來如此阿,剛剛已經把這個 env var 丟進 zshrc了XD
9F:推 lantw44: 如果已經確定程式會自動偵測,寬度卻還是有問題,那可能 08/14 12:40
10F:→ lantw44: 系統認知的寬度和實際不符,可以用 stty -a 查詢目前終端 08/14 12:42
11F:→ lantw44: 機的大小,如果有錯誤可以用 stty 手動更正,或用 resize 08/14 12:43
12F:→ lantw44: 之類的指令自動修正。 08/14 12:43
看來是不會自動偵測,不過 stty -a 的輸出看起來挺正常,而且我縮放字體大小也會更
新。看 manpage 説他是用 ioctl 去抓的,我再看看 strace 看不看得出失敗原因
※ 編輯: dces4212 (114.37.32.101 臺灣), 08/14/2021 16:59:37