web-dev-qa-db-ja.com

MacOSのmanページをエディタにパイプする

MacOSでbashを使用して、自分で使用するためにいくつかのmanページを編集します。

Mac OSでは、コマンドopen -t filenameは、指定されたファイルをシステムのデフォルトのテキストエディタで開きます。

$ man somepage | col -b

指定されたmanページを適切にレンダリングします。私がやりたいのは、レンダリングされたマニュアルページをテキストエディタで開くことです。私はこれを次のように達成することができます:

man somepage | col -b > filename && open -t filename

私はおそらくそれに満足しているはずですが、パイピングとリダイレクトのみを使用してこれを行うための「より良い方法」が必要であることが頭に浮かびました。また、上記のコマンドは、保持する必要のないファイルをファイルシステムに「散らかす」傾向があるため、残骸を削除するには別の手順が必要です。理想的には、ファイル名や、呼び出しごとに上書きされる一般的なファイル名なしで、レンダリングされたmanページをエディターで開くことができます。私は約1時間かけてこれにうなずき、さまざまなことを試みましたが、役に立ちませんでした。

私にとって最も理にかなっているのはこれでした:

$ open -t < man somepage | col -b

またはこれ:

$ open -t &1 < man somepage | col -b

しかしもちろん、シェルはファイル名としてmanをとるので、それは機能しません。私はこれを正しくすることにさえ近づいていますか?私は試してみたくてたまらないですか?

4
Seamus

open-fフラグを渡して、stdinからコンテンツを読み取り、テキストエディターで開くと、パイプラインで使用できるようになります。

したがって、このようなものはあなたが望むことをするはずです:

man somepage | col -b | open -tf

参照:

4
filbranden