Linuxのマニュアルページのリンクをたどる方法は?

Linuxのマニュアルページのリンクをたどる方法は?

マニュアルページに記載されているリンクをたどる方法はありますか?たとえば、以下は次psのマニュアルページです。スクリーンショットで下線付きの赤い丸リンクにアクセスするには:top(1)

psマニュアルページのスクリーンショット

答え1

マニュアルページは次に戻ります。Unixバージョン1。しかし、ハイパーテキスト発明当時は初期段階であった。ウェブはまだ20年も残っており、マニュアルは実際に印刷された本であり、一般的に適切な場合はページごとに1つの注文がありました(それでページと呼ばれています)。

マニュアルページで使用されるフォーマットはそれ以来進化してきましたが、ほとんどのページは実際にはハイパーテキスト用に設計されておらず、基本プログラムはそれをサポートしていませんman(一部の基本フォーマット技術をサポートするプレーンテキストビューアのみ)。ただし、一部のマニュアルページビュープログラムは、一部のハイパーリンク(主に他のマニュアルページへのリンク)を再設定します。このリンクは伝統的にマニュアルページの名前であり、次のman(1)形式で作成されています。man1セクション番号:

man2html多くのオンラインサイトで、複数のオペレーティングシステムのマニュアルページを参照して、次のような同様のツールを使用してHTMLに変換できます。

マニュアルページがUNIXで確立された文書形式になった後、Webが発明される前に、牛に似た一種の栄養プロジェクト紹介情報テキスト端末用に設計されたシンプルなマークアップに準拠しながら、人よりも高度な文書形式です。人間に比べて情報の主な革新は、異なるページへのハイパーリンクを含む複数ページの文書を保持することです。ほとんどのInfoページは以下から派生していますが、InfoはGNUプロジェクトで好む文書形式のままです。テキサス情報ネットワークHTMLソース(または時には他の形式)も作成できます。プログラムに関する情報文書が存在する場合、これは通常デフォルトのマニュアルであり、マニュアルページにはコマンドライン引数に関する基本情報のみが含まれます。

答え2

まず、これはリンクではありません。ただ下線だけです。マニュアルページは、端末が処理できる単純な形式を含むテキスト文書です。下線は「リンク」ではなく強調表示にすぎません。

一般的なmanコマンドは単にテキストフォーマッタです。実際には、このコマンドはテキストも表示せず、マニュアルページファイル[1]manに格納されている情報の形式を指定し、フォーマットされた出力を画面の上部に表示する他のプログラム(通常は)に送信します。これらの表示プログラムにはリンクの概念はない。manless

そのような形式を見て、そのような強調表示が引き出され、リンクが生成される可能性のある関連マニュアルページがあることを示すことができるという訓練を受けた推測を行うことができる特別な文書読者がいますが、私はそうではありません。誰がこのようなことをしているのかを知ってください。おそらくpinfo

ハイパーリンクを含むWebに似た形式が必要な場合は、リンクが追加されたオンラインでほぼすべてのUNIXのマニュアルページを見つけることができます。 Google に何かを入力してみると、man [anything]最初の数回のクリックでほぼ確実に見つけることができます。

あなたの例では、視覚的なハイライトは、これが簡単に呼び出すことができる独自のマニュアルページを持つ別のプログラム名であるという手がかりです。努力するman 1 top。 1 はマンページの表示部分を示します。各セクションの説明については、次の質問を参照してください。マニュアルページの数字はどういう意味ですか?


[1]manページファイルをテキストエディタで開くと、読みやすくするためにフォーマットされていない元のページが表示されますman。元manのページはというマークアップ言語で書かれていますtroff。ページtroffの作成方法の詳細については、次を参照してください。manhttps://liw.fi/manpages/

答え3

私はお勧めしますw3mman、システムのマニュアルポケットベルは、w3mコマンドラインブラウザを介して実行されます。リンクに色を付け、タブの切り替えを許可します。

w3mほとんどのソフトウェアリポジトリとCygwinで利用可能なこのパッケージをインストールして試すことができます。

答え4

ハッカーがあります。

ハッカー1

~/.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
}

スクリーンショット..

vimマニュアルスクリーンショット

アシネマ...

https://asciinema.org/a/130131

今..

  1. たとえば、と入力すると、man vimこのマニュアルページが開きます。ウィム

    • man man vimたとえば、入力するとマニュアルが最初に開き、vimを終了した後にマニュアルがman開きます。vim
  2. キーを押すとK(大文字k)、下部の別のマニュアルページにあるとき(また、見ることができますセクション)このマニュアルに移動します(残念ながら少ないポケットベルlet no_man_maps = 1- そうしないと、vimが強制的にマクロを記録できなくなり、vimが他の方法で異常に機能する可能性があるためqです。:q

    • 入力した2番目のマニュアルを終了すると、見ていた前のマニュアルに戻ります。
  3. ロードした後は、本当にクールなフレーズの強調表示を得ることができます。ftplugin/man.vimft(自動)はに設定されますman

  4. vim内でコピー&ペースト、自由にナビゲートすることができ、さらにバッファと:w ~/usefulfile"+y+clipboard

私の考えでは、それは良いと思います。少ない

私が見つけた唯一のマイナーなイライラ(フェイザーとしてそれほど使用していない場合でもまだ存在する)は、1つのvimセッションで複数のドキュメントを開いたままにしたいということです。私がこれを行う方法は本当にありません。

いくつかの注意:

  1. バッファを保存しようとすると、次の結果が表示されます。E382: Cannot write, 'buftype' option is set

    • 誤って保存するのを防ぐので保存できない点が気になります。
  2. まだ保存できます:w /tmp/man.man

    • 拡張子で保存して開くと、.manファイル形式がmanユーザーに合わせて設定されます。
    • 拡張子なしで保存すると、.manftを次のように設定できます。man:set ft=man
  3. autocmd VimEnter *.~ echom 'hooray, we are using vim for man pages!'たとえば、マニュアルページを開くときに特定のタスクを実行する必要がある場合に使用できます。

  4. vimrcに以下を入れてKtryを押してマニュアルを開き、次にを押して前の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

ハッカー2

~/.bashrc または ~/.zshrc に入れてください。

function man(){
    declare -a args
    for arg in "$@"; do
        command man "$arg" > "/tmp/${arg}.man"
        args+=("/tmp/${arg}.man")
    done
    vim "${args[@]}"
}

スクリーンショット..

vimの複数のマニュアル

アシネマ...

https://asciinema.org/a/9Q6Si90Pi46cDVUknxFxfIwsv

これが問題を解決しましたハッカー1そして少ない(これは1つのバッファで複数のマニュアルを見ることができますが)それほど優雅ではありません。

メモ:

  1. 重要欲しいならハッカー2動作するには、vimの:let no_man_maps = 1ソース~/.vimrcを提供.../vim80/man.vimし、q強制的に:q

  2. より多くのクリーンアップ作業が必要です(今では各マニュアルを/tmp/*.man)

  3. ただし、上記のように、1つのセッションで複数のマニュアルページを表示できるようになりました。

  4. を押すとK新しいvimセッションが開きますが、

    • 必要に応じて、autocmdをバインドして(上記のようなautocmdを使用して)似ているautocmd VimEnter man.~ nnoremap <buffer> K :execute "normal! Byt(:silent !man \<c-r>\" > /tmp/\<c-r>\".man\<cr>:edit /tmp/\<c-r>\".man\<cr>"か、そのような奇妙な操作を実行できます(未テスト)

関連情報