manページに記載されているリンクをたどる方法はありますか?たとえば、これはのmanページですps
。赤でマークされたリンクにアクセスするにはどうすればよいですか?
manページに記載されているリンクをたどる方法はありますか?たとえば、これはのmanページですps
。赤でマークされたリンクにアクセスするにはどうすればよいですか?
回答:
マニュアルページは、Unix First Editionにさかのぼります。一方でハイパーテキストが発明されていた、それはまだ始まったばかりでした。ウェブは20年先にあり、マニュアルは実際の印刷された本であり、多くの場合、適切な場合はページごとに1つのコマンドがあります(そのため、ページと呼ばれていました)。
マニュアルページに使用される形式はそれ以降多少進化しましたが、ほとんどのページは実際にはハイパーテキスト用に設計されてman
おらず、デフォルトプログラムはそれをサポートしていません(単なるプレーンビューアーであり、いくつかの基本的な形式をサポートするハックがあります)。いくつかのハイパーリンクを再構築manページの閲覧プログラム、伝統的な形式で書かれている他のmanページ、主にリンクがありますmanページの名前であり、あるセクション番号は:man(1)
man
1
man2html
たとえば、オンラインの多くのサイトで、いくつかのオペレーティングシステムのマニュアルページをHTMLに変換したり、同様のツールで参照したりできます。
manページは、UNIX上の確立文書フォーマットやWebが発明される前にいくつかの時間になった後にいくつかの時間は、GNUのプロジェクトが導入された情報のテキスト端末用に設計されたシンプルなマークアップにこだわりながら、男性よりも高度なドキュメントフォーマットを、。人と比較した情報の主な革新は、他のページへのハイパーリンクを含む複数ページのドキュメントを作成することでした。ほとんどのInfoページはHTMLも生成できるTexinfoソース(または他の形式)から生成されますが、Infoは依然としてGNUプロジェクトで好まれているドキュメント形式です。プログラムの情報ドキュメントが存在する場合、多くの場合それはメインマニュアルですが、マニュアルページにはコマンドライン引数に関する基本情報しか含まれていません。
M-x man
(とC-h v mode-name
あるMan
):少なくとも一つの態様では、それがより優れているWoMan
ことが、テーブル(表示されるので、スクリーンショットを)。もちろん、それもハイパーリンクされています。
b
そのようにして、主キーはです。どのインターフェイスパラダイムのユーザーにとって、これは直感的でしょうか?
page(N)
リンクをハイパーリンクに変換するという正確な理由で、テキスト端末でロックされた場合、常にマンページの読み取りにinfo(1)を使用します。その品質のジルの答えに言及されていなかったことは非常に驚いた。
まず第一に、それはリンクではありません。それはただ下線です。マニュアルページは、端末が処理できる簡単なフォーマットを少し備えた単なるテキストドキュメントです。下線は単なるハイライトであり、「リンク」は含まれていません。
通常のman
コマンドは単なるテキストフォーマッタです。実際、man
コマンドはテキストも表示せずman
、manページファイル[1]に保存されている情報をフォーマットし、フォーマットされたless
出力を画面に表示する別のプログラム(通常)に送信します。これらの表示プログラムにはリンクの概念はありません。
そのようなフォーマットを見て、そのようなハイライトがプルアップしてリンクを作成することができる関連するマニュアルページがあることを示すかもしれないという教育的な推測をすることができるいくつかの特別なドキュメントリーダーがありますが、私は知りませんどれがします。おそらくpinfo
?
ハイパーリンクを使用したWebのような書式設定が必要な場合は、リンクが追加されたほぼすべてのUNIX manページをオンラインで見つけることができます。Googleに入力man [anything]
してみてください。
あなたの例の場合、視覚的な強調表示は、簡単にプルアップできる独自のマニュアルページを持つ別のプログラム名である手がかりです。試してくださいman 1 top
。1は、参照するマニュアルページのセクションを示します。セクションの説明については、この質問を参照してください。マニュアルページの数字は何を意味していますか?
[1]man
テキストエディターでページファイルを開くと、man
読みやすいようにフォーマットされていない生のページが表示されます。生のman
ページはと呼ばれるマークアップ言語で書かれていtroff
ます。詳細についてはtroff
、どのように書き込みするman
ページを参照してください:https://liw.fi/manpages/を。
man 1 top
ですか?? ps 1 top
のマニュアルページでリンクを見つけたので、それは次のようなものになるはずですps
。「man 1 top」は私には意味がありません。どうか明らかにしてください。
top(1)
「リンク」をたどる場合はtop
、最初のセクションからマニュアルページを開く必要があります。セクションの詳細については、man(1)を参照してください。奇妙なパラメータを指定してコマンドをps 1 top
実行するだけなので、意味がありませんps
。
readlink
セクション1とセクション2に、表示されたprintf
あなただけ入力した場合のセクション1と3でman command
男性が番号順にセクションをtrysと、最初に見つかったが表示されたり、あなたと特定することができ、man # command
あなたがドキュメントを取得するために行うために持っています、readlink
システムコール用
これは非常に遅い返信ですが、w3mmanを使用します。w3mmanはw3mによるシステムのマニュアルページャーです。
https://linux.die.net/man/1/w3mman
w3mパッケージをインストールすることで試すことができます。このパッケージは、ほとんどの主要なLinux / UNIXディストリビューションとCygwinのソフトウェアリポジトリに登録されていると思います。
w3mman
また、デフォルトのMacports w3m
インストールで提供されます。それは素晴らしいです:)ありがとう!
あなたのワークフローに従うという意味で、あなたの質問をもう少し解釈してみましょう。あなたがおそらく望んでいるのは、man
あなたが読んでいる下線付きのコマンドに直接導くページ内のキーの組み合わせです。したがって、他のものをインストールしたり、別のコンソールを開いたりして、たとえば正確な構文を忘れたりする必要はありません。
この最も簡単な解決策は感嘆符(less
manページの表示に使用している場合)であり、下線付きの場所に移動する必要がありますtop
。
!man top
または
!man 1 top
q
複数回押すことでそれらをすべて閉じる必要があります。また、がLESSSECURE=1
環境変数として設定されている場合はless
動作しません!
。環境変数を設定すると、セキュアモードで実行され、を使用できなくなります。「コマンドが使用できません」などの情報が表示されます。
がw3mmanは、リンクをたどるためのソリューションである、(少なくともUbuntuの12.10で)すべての画面を使用していません
私は使用したい:
$ sudo su -
# apt-get install w3m man2html
# exit
$ alias man=' hman -P w3m'
〜/ .bash_aliasesまたは同様の起動スクリプトに最後のコマンドを追加して、すべてのセッションで取得します。
-Pのw3mのは HMANへの最初のブラウザであるためであるオオヤマネコや賢明なブラウザが、私は好むのw3m
hmanはhtml2manにバンドルされているツールです。参照してください。これを
確認で終了するのが面倒な場合は、私にとってはこれを使用しています
特にUbuntuには、Yelpがあります。これはデフォルトでインストールされ、デフォルトでマニュアルページを表示できますが、その呼び出しはman
コマンドの表示と同じではありません。エイリアスまたはシェル関数は、後者のポイントを回避できます(シェルによって異なります)。
yelp 'man:exit'
知らない方法でデフォルトでセクションになります。注意:手動トピックのセクションリストを取得するにはwhatis
、のようにを使用しwhatis exit
ます。
Yelpに特定のセクション、たとえば2のマニュアルページを表示するように要求するには、次のようにします。
yelp 'man:exit(2)'
問題:yelpにはバグがあり、コマンドラインから呼び出すときに複数のエラー出力を受け取る準備ができています。また、エイリアスまたはカスタムシェル関数を使用すると、すべてのエラーを/dev/null
ハック(のカップル)があります。
これを〜/ .bashrcまたは〜/ .zshrcに入れてください
function man(){
for arg in "$@"; do
vim -c 'execute "normal! :let no_man_maps = 1\<cr>:runtime ftplugin/man.vim\<cr>:Man '"${arg}"'\<cr>:wincmd o\<cr>"'
done
}
スクリーンショット
アシネマ..
https://asciinema.org/a/130131
今..
あなたが入力するとman vim
、例えば、それはこのmanページを開きますvimの
man man vim
、例えば、それは最初にオープンしますman
のマニュアルとあなたがVimを終了した後、それが開きますvim
のマニュアルを下部の別のmanページ(関連セクション)にいるときにK(大文字ですk
)を押すと、このマニュアルにジャンプします(残念ながら、以下のページャーの内部にあります。これは、私たちが持っているからです。そうすると、vimは強制的になり、マクロを簡単に記録できなくなり、vimは他の方法で正常に動作する可能性があります)。let no_man_maps = 1
q
:q
ftplugin / man.vimをロードし、ftが(自動的に)設定されてman
いるため、非常にきれいな構文強調表示が得られます。
コピーして貼り付けたり、vimで自由にナビゲートしたり、バッファやを変更したりすることもできます:w ~/usefulfile
。記録マクロ、"+y
(もしあれば)を使用してクリップボードにヤンクするなど、vimで通常行うことはすべて実行できます+clipboard
。
私はそれが少ないよりずっといいと思います。
私が見つけた唯一のマイナーなset折(ページャーとしてlessを使用している場合に存在する)は、1つのvimセッションで複数のマニュアルを開きたい場合です。私はこれを行う方法が本当に見当たりません。
いくつかのメモ:
バッファを保存しようとすると、 E382: Cannot write, 'buftype' option is set
あなたはまだのように保存することができます :w /tmp/man.man
.man
拡張子を付けて保存すると、開くとファイルタイプが設定さman
れます.man
延長、あなただけにフィートを設定することができますman
実行することにより、:set ft=man
autocmd VimEnter *.~ echom 'hooray, we are using vim for man pages!'
たとえば、manページを開くときに何かをする必要がある場合は、を使用できます。
vimrcに以下を入力して、を押しKてマニュアルを開こうとした後、を押しGて前のマニュアルに戻るようにしました。
augroup man
autocmd!
autocmd VimEnter *.~ nnoremap B :execute "normal! `Z"<cr>
autocmd VimEnter *.~ nnoremap <buffer> K :execute "normal! mZyiw:Man \<lt>c-r>\"\<lt>cr>"<cr>
augroup END
これを〜/ .bashrcまたは〜/ .zshrcに入れてください
function man(){
declare -a args
for arg in "$@"; do
command man "$arg" > "/tmp/${arg}.man"
args+=("/tmp/${arg}.man")
done
vim "${args[@]}"
}
スクリーンショット
アシネマ..
https://asciinema.org/a/9Q6Si90Pi46cDVUknxFxfIwsv
これは、問題は解決し1ハックとあまり顔(今は一つのバッファ内に複数のマニュアルを表示することができますが)、それはあまりエレガントです。
ノート:
重要hack2を機能させたい場合は、を入力する必要が:let no_man_maps = 1
あります~/.vimrc
。これは、vimがソース.../vim80/man.vim
にq
なり、に強制的に再マップされるため:q
です。
さらにクリーンアップが必要です(すべてのマニュアルを/tmp/*.manに保存します)
ただし、上記のように、1つのセッションで複数のマニュアルページを表示できるようになりました
を押すKと、新しいvimセッションが開きますが、
autocmd VimEnter man.~ nnoremap <buffer> K :execute "normal! Byt(:silent !man \<c-r>\" > /tmp/\<c-r>\".man\<cr>:edit /tmp/\<c-r>\".man\<cr>"
またはそのようなクレイジーなことを行うことができます(未テスト)--html
引数man
$ を使用して、$ BROWSER環境変数で定義されたブラウザーで開くことができました。
BROWSER=google-chrome man ps --help
私はFedoraを使用しています。これがディストリビューションで機能するかどうかわからない場合は、テストしてコメントで報告してください。
groff
をインストールする必要があります。groff
同じ名前のパッケージは、(コマンドが付属していない間にコマンドがあるかもしれgroff-base
、ない完全なgroff
パッケージ)。私がやるman --html="surf file%c//%s" <command>
、それは大丈夫です。ただし、非常に限られたハイパーテキストがあります:-/。
man is an interface to the on-line reference manuals
(私が間違っていなければ)インターネット上のいくつかのWebページからすべての情報を取得する必要があることを意味しますよね?だから、誰もhttp://リンクが何であるかについての手がかりを持っていますか?