Man

‘man’ 如何將雙引號呈現為雙引號和素數 字元?

  • November 1, 2016

當我執行以下命令時:

man bash

我看到引號顯示為:

``...''

有文章說明為什麼會發生這種情況:

但是,我還沒有找到一種方法來強制man或底層尋呼機顯示 ASCII 雙引號 (") 或加粗字元,或使用反引號/素數字元以外的任何內容。

我的案例是我希望能夠在bash手冊頁中搜尋單引號或反引號以了解它們在哪裡具有語義價值,而非語義反引號/素數字元的混亂使這變得困難。

我嘗試將 LC_ALL 從 en_us.UTF-8 更改為 C,並嘗試使用man的選項 -P 來指定其他尋呼機/選項,但我還沒有找到解決方案。

我的環境是 man 2.6.3、CentOS 7.2 (3.10.0-327.13.1.el7.x86_64)、bash 4.2.46(1) 或 zsh 5.0.2。

我的偏好是找到一種解決方案,該解決方案使man將雙引號呈現為 ASCII 雙引號字元 (") 或將引用的內容呈現為格式化文本(例如,通過下劃線或加粗)。

這同樣適用於man如何將單引號內容呈現為**` content ‘**。

一個糟糕的解決方法:

man bash | sed -e "s/\(''\|\`\`\)//g" -e "s/\`\([^']*\)/\1/g" | less

誰能告訴我如何使人顯示帶有反引號和素數​​的引用內容?該解決方案不應要求安裝任何軟體(即該解決方案應與 CentOS 7.2 最小安裝一起使用)。

bash 手冊頁中的反引號在 troff 原始碼中明確給出,而不是某些宏的結果,因此很難更改。但是,特殊的單個反引號被引用```,因此您可以將 sed 應用於源 troff,而不是使用此差異。

相反,您可以添加一個 troff 命令將反引號轉換為其他字元。該命令.tr AXBY將所有 A 轉換為 X,將 B 轉換為 Y。所以

(echo '.tr `"'\''"'; zcat $(man -w bash)) | man /dev/stdin

將反引號和單引號翻譯成雙引號。儘管您也有像the pipeline"s return.

總的來說,我認為您的“糟糕的解決方法”已經足夠了。

引用自:https://unix.stackexchange.com/questions/315414