次のコマンドを実行するとき:
man bash
引用符は次のように表示されます。
``...''
なぜこれが起こるのかを説明する投稿があります。
しかし、強制する方法を見つけることができませんでした。男性または、デフォルトのポケットベルには、ASCII二重引用符( ")、太字またはバックティック/アポストロフィ文字を使用する以外のすべての文字が表示されます。
私のユースケースは、検索できるようにしたいということです。強く打つ一重引用符または逆引用符のマニュアルページは意味論的価値があることを示唆しており、意味論的ではない逆引用符/主要文字が複雑になり、これを困難にします。
LC_ALLをen_us.UTF-8からCに変更してみました。男性別のポケットベル/オプションを指定する-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です。
私が好むのは、次のような結果を生み出す解決策を見つけることです。男性二重引用符を ASCII 二重引用符文字 (") でレンダリングするか、引用符で囲まれた内容をリッチテキスト (下線または太字で表示) でレンダリングします。
方法にも同じことが当てはまります。男性一重引用符の内容を次のようにレンダリングします。`コンテンツ'。
悪い解決策:
man bash | sed -e "s/\(''\|\`\`\)//g" -e "s/\`\([^']*\)/\1/g" | less
作り方を教えてください。男性バックティックとアポストロフィを含む引用符を表示しませんか?このソリューションはソフトウェアをインストールする必要はありません(つまり、ソリューションはCentOS 7.2最小インストールで動作する必要があります)。
答え1
Bash のマニュアルページのバックティックは、一部のマクロの結果ではなく、 troff ソースコードに明示的に提供されるため、変更が困難です。ただし、特別な単一の逆引用符が引用されているため、\`
この違いを使用するのではなく、ソース troff に sed を適用できます。
代わりに、 troff コマンドを追加してバックティックを別の文字に変換できます。このコマンドは、.tr AXBY
すべてのAをXに変換し、BをYに変換します。だから
(echo '.tr `"'\''"'; zcat $(man -w bash)) | man /dev/stdin
バックティックと一重引用符を二重引用符に変換します。これにより、出力に必要な特別な単一のバックティックだけが残ります。もちろんthe pipeline"s return
。
全体的に「悪い解決策」であれば十分だと思います。
答え2
これは良いオプションではないかもしれませんが、w3m
ブラウザのHTML出力を使用できます。man
BROWSER=w3m man -H bash
レンダリングにはUnicode引用符を使用します``…''
(Google Chromeに似ていますが、何らかの理由でlynx
そうではありません)。
FreeBSD マンページリポジトリは私に教えてくれます。CentOS 7はman
サポートしています-H
。
答え3
引用文が troff (man ページ) ソースに含まれているという @meuh のコメントに同意します。硬い変化が疑わしい。これは主に特定のドキュメントの開発者によって異なります。 bashはこの規則を使用して処理します。関連ツールセット、例えば、makeinfo
。
たとえば、xtermのマニュアルページでは、より良い外観を得るためにマクロを使用します。
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds AQ \(aq
.el .ds AQ '
.ie \n(.g .ds `` \(lq
.el .ds `` ``
.ie \n(.g .ds '' \(rq
.el .ds '' ''
これはバグレポート(修正済み)からのものです。2009年):
マクロを使用したASCII引用文のgroffマッピングの解決Debian #378700)。
例えば
.PP
Although both windows may be displayed at the same time, one of them is
considered the \*(``active\*('' window for receiving keyboard input and terminal
output.
そしてこれを生成します(代替引用符を保存するためにxtermで切り取り/貼り付け)。
2つのウィンドウを同時に表示できますが、そのうちの1つはキーボード入力と端末出力を受け取る「アクティブ」ウィンドウと見なされます。テキストカーソルを含むウィンドウです。アクティブウィンドウは、エスケープシーケンス、VTxxxウィンドウのVTオプションメニュー、および4014ウィンドウのTekオプションメニューから選択できます。
スクリーンショットを見ると、よりよくわかります。
マクロの条件のため、PDF 結果には別の引用が使用されます。
したがって、マクロ定義を追加し、リテラル一重引用符と二重引用符の代わりにgroffの名前付き文字を置き換えるように前処理を変更することが可能な改善になります。どちらもデフォルトでASCIIを生成しないため、結果の構文混乱が少なくなります。
これは、「xxx」をイタリック体に変更すると、状況が改善されることを思い出させます(おそらく後で)。