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