GNU Infoが何であり、どのように使用するかは理解していますが、何のためですか?なぜマニュアルページと並行して存在するのですか?別のユーティリティを提供するのではなく、詳細なマニュアルページを作成してみませんか?
info --vi-keys
情報のキーバインドをより身近に感じさせるために使用します。less
infoを使用して、次のように感じることもできman
ますinfo --subnodes -o - $1 | less
。ただし、この方法では一部のテキスト形式が失われます。
GNU Infoが何であり、どのように使用するかは理解していますが、何のためですか?なぜマニュアルページと並行して存在するのですか?別のユーティリティを提供するのではなく、詳細なマニュアルページを作成してみませんか?
info --vi-keys
情報のキーバインドをより身近に感じさせるために使用します。less
infoを使用して、次のように感じることもできman
ますinfo --subnodes -o - $1 | less
。ただし、この方法では一部のテキスト形式が失われます。
回答:
GNU Infoは、包括的でハイパーリンクされたドキュメントを提供し、複数の形式に出力できるように設計されました。
マニュアルページが利用可能であり、印刷出力の提供に優れていました。ただし、それらは、各manページのコンテンツセットがかなり小さいように設計されています。マニュアルページには、printf(3)などの単一のC関数に関する説明がある場合や、ls(1)コマンドについて説明する場合があります。
これは、大規模なシステムに入ると壊れます。Emacsのドキュメントをmanページにどのように収めますか?問題の例は、Perlのマニュアルページです。これには、情報を取得するために読むことができる174の個別のマニュアルページがリストされています。それをどのように閲覧するか、検索を行って&&の意味を見つけますか?
マニュアルページを改良したものとして、Infoは以下を提供しました。
それはまだ関連していますか?最近では、ほとんどの人が「このドキュメントはマンページに属していません」と言ってPDFに入れたり、HTMLに入れたりします。実際、いくつかのOSのヘルプシステムはHTMLに基づいています。ただし、GNU Infoが作成されたとき(1986年)、HTMLはまだ存在していませんでした。現在、texinfoではPDF、Info、またはその他の形式を作成できるため、必要に応じてこれらの形式を使用できます。
それがGNU Infoが発明された理由です。
man -K foo
、大文字オプションを使用すると、グローバルな全文検索が実行されます。試してみてくださいman -K global-apropos
-それはman
それ自身のために、英語で、そして現地語でページを見つけます。
Infoシステムが発明された理由は必然ですが、「怠laz、hub慢、焦り」も同様に良い説明だと思います。
GNUプロジェクトの目的は、自由に変更および配布可能なオペレーティングシステムとツールを開発することでした。従来のUnix manシステムは、当時は商用(非フリー)ソフトウェアだったBell Labsのnroff / troffドキュメントフォーマットシステムに基づいていました。最終的にそのシステムはリバースエンジニアリングされ、groffと呼ばれる無料の代替が作成されましたが、それはGNUプロジェクトが開始されてから数年後のことです。そのため、それ以前にGNUドキュメントにmanシステムを使用するには、troffの置き換えを実装する必要がありました。
一方、GNU EmacsはGNUの最初の大きなプロジェクトであり、広範なドキュメントが必要でした。リチャード・ストールマンは、GNUシステムを実装する多くの作業に直面して、自分のシステムで使用できる既存のソフトウェアを探しました。TeXはすでに存在し、強力なドキュメントフォーマット機能を備えていました。nroff / troffとは異なり、TeXは自由に使用および再配布できました。Texinfoは、印刷されたマニュアルにはTeXの力を、処理とオンラインのドキュメント読み取りにはGNU Emacsの力を活用するドキュメントシステムとして作成されました。オリジナルのTexinfoプロセッサとInfoドキュメントブラウザは両方ともLispで記述され、Emacs内で実行されました。スタンドアロンのTexinfoユーティリティは、数年後に登場しました。
Wikipediaのページが言う、Texinfoのは、リチャード・ストールマンによって、GNUプロジェクトの公式ドキュメントとして設計されました。TeXの上にあるマクロのセットであり、ソフトウェアマニュアルを作成するために設計されました。ストールマンは、このタスクには不十分なマニュアルページを考えていたと思います。Texinfoがmanページよりも優れている2つの利点は、ハイパーリンクであるということと、2番目に、設計により他の形式に簡単に変換できることです。
補遺:質問と厳密には関連していませんが、manページはLinuxカーネルやさまざまなBSDフレーバー上で実行されるようなフリーなUnixライクなシステムの標準ドキュメントシステムと見なされていることに注意してください。たとえば、Debianパッケージテンプレートでは、コマンド用のマニュアルページの追加が推奨されています。また、マニュアルページ用のlintianチェックも推奨されています。Texinfoは、GNUプロジェクト以外ではまだ広く使用されていません。
man
です。これは、ハードコピー指向の形式から(そしてそれ以上に)移行したくない主な理由だと思います。
より実用的なビュー、info
ある最も詳細の三つのレベルリファレンスドキュメントの:
通常、3つのレベルは詳細に増加しています。
--help
短期の利用-一般的なコマンドオプションとしてまとめ、
man
-古典的なmanページ、クイックリファレンス、および
info
-より詳細な、GNU-specifficマニュアル- フル、公式ドキュメント。
info
ページが利用できない場合、通常、マニュアルページには完全なドキュメントが含まれています。
manページには--help
、GNU coreutilsからの多くのコマンドの出力のようなまったく同じ情報が含まれていることに注意してくださいls
。たとえば、
比較ls --help
しman ls
て、違いはフォーマットのみにあることを確認してください。
info
。端末用、GUI用など、pinfo
konqueror
pinfo ls
konqueror info:ls
help
組み込みbashのコマンドのコマンドとして、そしてapropos
そしてwhatis
そこに実用化するためのオプションを持つ男として。
info sed
とinfo grep
してと比較man sed
してman grep
。マニュアルページははるかに技術的であり、ほとんどの場合例がありません。先ほど説明したものには例外がありますが、ほとんどのコマンドに当てはまります。
マニュアルページはフラットです。
info
木です。
どちらもテキストベースのままなので、低レベルのシステム開発中に使用できます(httpとは異なり、使用するには完全なGUIとブラウザが必要です)。
Linuxは多くのリソースの少ないマシンで実行できるため、これも便利です。たとえば、Atmelの私のArduinoで実行されるものはにありinfo
ます。
(歴史:それを覚えていればinfo
、gopherに似ています。GUIOSに移行する直前のことでした。WorldWide Webが爆発しました。シンプルです。簡単に拡張でき、完全にテキストベースで、高速でした。)
マニュアルページに操作可能なハイパーリンクを含めることはできません。 (このテクノロジーでは不可能です。)
info
ノードからノードへ、またはノードからリーフへの多くの操作可能なリンクを使用でき、実際に使用できるため、大きなマニュアルをすばやく簡単にナビゲートできます。
多くの標準パッケージには、姉妹の-docパッケージもあります。多くの場合、このコンテンツは内部のみで見つかりinfo
ます。
これらのドキュメントパッケージは、セクション、サブセクションを含むinfo内にブックレットを追加します。ではinfo
専門用語、これらが呼び出されnodes
、ノードは他を含むことができnodes
、ツリー構造に。
ツリーの周りを登るコマンドがあります。以下に例を示します。
読んでいて、1行ずつ下にスクロールすると、各冊子のすべてのセクションにアクセスできます。
L - 戻ってのように、小文字'L' - リットルの AST。これは、Webブラウザの戻るボタンのようなものです。-このウィンドウに表示されている最後のノードに戻ります(最初は1つのウィンドウしかありません)。 ドキュメントウィンドウも半分に分割できます。
D - 私の人々は -メイン「に行くD irectory」ノード。-これは、INFOツリーの最上部です。ファミリーへのリンクが含まれています:
トン - 私の家族 -に行くトンのこのドキュメントのOPノード。-一般に目次
U - 私の親 -行くU P 1のレベルを。たとえば、セクション2.1からセクション2に進みます。
nは - 私の兄弟は -に移動し、n個のこのレベルでのextノード。例:セクション2->セクション3(2.1ではない)
P - 私の兄弟は -に行くのpこのレベルでreviousノード。例セクション3->セクション2
] - 私の子供たち - ドキュメントの次のノードに移動します。たとえば、セクション2->セクション2.1
[ - 私の子供 - ドキュメント内の前のノードに移動します。たとえば、セクション2.1->セクション2
また、情報を使用する理由を本当に理解していませんでした。以前私はそれに手を出したことがありましたが、最初は古いものでした。しかし、autoconfプロジェクトにはさらに情報が必要であり、そのドキュメントがある場所であることが示唆されたので、最近もう一度調べました。
私が最初にしなければならなかったのは、より良いナビゲート方法を見つけることでした。Hからの助けはほとんど役に立たなかった。それは、このヘルプにスクロールダウンできることに気づくまででした。しかし、あまりにも多くの混乱がありました。
そこで、私はこのヘルプをコピーしてGnoteに貼り付け、どのようにinfo
機能するかを理解しようとしました。
もっと学んだように、私は彼らの助けを自分のために書き直しました。コマンドの全範囲とは何か、どのように分類されているかを知りたかった。
キーストロークの多くが、特定のコマンドを実行する2つまたは3つの方法で複製されていることに気付きました。 また、これはすべてemacsに非常によく似ていることに気づきました。
infoコマンドのチートシートは次のとおりです。
HELP - info - commands
#####################################################################################################################################################
Short list - 'basic' Info command keys (see below for full list)
C-g Cancel the current operation.
H Close this help window. (toggle help window)
q Quit Info altogether.
h Invoke the Info tutorial.
Move in this node
Up Move up one line.
Down Move down one line.
PgUp Scroll backward one screenful. - also backspace
PgDn Scroll forward one screenful. - also space
Home Go to the beginning of this node.
End Go to the end of this node.
TAB Skip to the next hypertext link.
/ Search forward for a specified string.
} Search for next occurrence.
{ Search for previous occurrence.
Move to other nodes
RET Follow the hypertext link under the cursor.
1...9 Pick the first...ninth item in this node's menu.
0 Pick the last item in this node's menu.
l Last in history. Go back to the last node seen in this window (initially we only have one window). (?? history)
d Go to the main 'directory' node. my people
the Info main menu - "This is the top of the INFO tree."
t Go to the top node of this document. my family Generally the table of contents
u Go up one level. my parent e.g. go from Section 2.1, to Section 2.
n Go to the next node on this level. my siblings e.g. section 2 -> section 3 (not 2.1)
p Go to the previous node on this level.
] Go to the next node in the document. my children e.g. section 2 -> section 2.1
[ Go to the previous node in the document. (?siblings)
m <name> Pick a menu item specified by name.
f Follow a cross reference specified by name.
g Go to a node specified by name.
i Search for a specified string in the index (if there is an index), and select the node referenced by the first entry found.
I Synthesize menu of matching index entries. ???
#####################################################################################################################################################
Full list - of commands available in Info windows:
Notes:
M- (meta) is Alt; (also you can use an Esc prefix instead of meta -hwj)
M-C- means hold both Ctrl and Alt down at same time
* Basic commands (listed above)
HELP
* H (get-help-window) Toggle display of help message
* h (get-info-help-node) Visit Info node '(info)Help' (this gets: man info )
CANCEL
* C-g C-x C-g M-C-g (abort-key) Cancel current operation (?? esc)
* q C-c (quit) Quit using Info
C-x C-c (quit) Quit using Info
WINDOWS
C-l (redraw-display) Redraw the display
x C-x 0 (delete-window) Delete the current window
C-x 1 (keep-one-window) Delete all other windows (leaving 1)
C-x 2 (split-window) Split the current window (into 2)
C-x t (tile-windows) Divide the available screen space among the visible windows
C-x ^ (grow-window) Grow (or shrink) this window
C-x o (next-window) Select the next window (other)
C-x C-b (list-visited-nodes) Make a window containing a menu of all of the currently visited nodes
C-x w (toggle-wrap) Toggle the state of line wrapping in the current window
VIEW OTHER FILE
C-x C-f (view-file) Read the name of a file and select it
C-x C-v (view-file) Read the name of a file and select it
SCROLL
C-v (scroll-forward-page-only) Scroll forward in this window staying within node ('v' looks like a down arrow)
M-v (scroll-backward-page-only) Scroll backward in this window staying within node (meta-v is the reverse, or up arrow)
* PgDn SPC (scroll-forward) Scroll forward in this window (at end moving to next node??)
* PgUp DEL C-h (scroll-backward) Scroll backward in this window (at end moving to next node??) (DEL = Backspace or Del)
M-C-v ESC PgDn (scroll-other-window) Scroll the other window
ESC PgUp (scroll-other-window-backward) Scroll the other window backward
CURSOR MOVEMENT (within a 'node' / page)
Right C-f ( forward-char) Move forward a character
Left C-b (backward-char) Move backward a character
M-b (backward-word) Move backward a word
M-f ( forward-word) Move forward a word
C-a (beginning-of-line) Move to the start of the line
C-e (end-of-line) Move to the end of the line
* Up C-p (prev-line) Move up to the previous line
* Down C-n (next-line) Move down to the next line
M-r (move-to-window-line) Move the cursor to a specific line of the window
* Home b ESC < (beginning-of-node) Move to the start of this node
* End e ESC > (end-of-node) Move to the end of this node
SEARCHING
/ (search) Read a string and search for it
s (search) Read a string and search for it
? (search-backward) Read a string and search backward for it
R (toggle-regexp) Toggle the usage of regular expressions in searches
S (search-case-sensitively) Read a string and search for it case-sensitively
* } C-x n (search-next) Repeat last search in the same direction
* { C-x N (search-previous) Repeat last search in the reverse direction
C-s (isearch-forward) Search interactively for a string as you type it
C-r (isearch-backward) Search interactively for a string as you type it
M-/ (tree-search) Search this node and subnodes for a string.
M-} (tree-search-next) Go to next match in Info sub-tree
M-{ (tree-search-previous) Go to previous match in Info sub-tree
JUMP TO NODE CROSS REFERENCES (underlined links to nodes)
* TAB (move-to-next-xref) Move to the next cross reference
BackTab M-TAB (move-to-prev-xref) Move to the previous cross reference (Shift-tab)
SELECT A NODE (hyperlink)
* RET (select-reference-this-line) Select reference or menu item appearing on this line
* 1 .. 9 (menu-digit) Select this menu item (link) # in this node's menu (this page's menu)
* 0 (last-menu-item) Select the last menu item (link) in this node's menu (this page's menu)
< (first-node) Select the first node in this file
> (last-node) Select the last node in this file
* d (dir-node) Select the 'dir' node (in all files?) the Info main menu - "This is the top of the INFO tree."
* t (top-node) Select the 'Top' node in this file Generally the table of contents
* u ( up-node) Select the 'Up' node in this file i.e. go from Section 2.1, to Section 2.
* n (next-node) Select the Next node i.e. section 2.1 -> section 2.2
* p (prev-node) Select the Prev node
* g <name> (goto-node) Read a node name and select it
* m <item> (menu-item) Read a menu item and select its node ???
C-x b (select-visited-node) Select a node which has been previously visited in a visible window (c-x=Window, back)
MOVE TO ANOTHER NODE (in the tree)
* [ (global-prev-node) Move backwards or up through node structure (tree within this file)
* ] (global-next-node) Move forwards or down through node structure (tree within this file)
* l (history-node) last - Select the most recently selected node
GET NODE INFORMATION
= (display-file-info) Show full file name of node being displayed
O (goto-invocation-node) Find the node describing program invocation
READ IN NEW MENUS
G <menus> (menu-sequence) Read a list of menus starting from dir and follow them ???
INDEX
* i (index-search) Look up a string in the index for this file (Search for a specified string in the index
(if there is an index), and select the node referenced by the first entry found.
, (next-index-match) Go to the next matching index item from the last 'i' command
* I (virtual-index) List all matches of a string in the index
C-x f (all-files) Show all matching files
FOOTNOTES
* f (xref-item) Read a footnote or cross reference and select its node
r (xref-item) Read a footnote or cross reference and select its node
M-C-f (show-footnotes) Show the footnotes associated with this node in another window
NUMERIC
C-u (universal-argument) Start (or multiply by 4) the current numeric argument
M-- (add-digit-to-numeric-arg) Add this digit to the current numeric argument
M-0 .. M-9 (add-digit-to-numeric-arg) Add this digit to the current numeric argument
MISC
M-x (execute-command) Read a command name in the echo area and execute it ?? pwd and ls don't work
#####################################################################################################################################################
The following text commands can only be invoked via M-x (Alt-x -hwj):
This is a list of longer commands that can be typed, all prefixed with Alt-x:
M-x scroll-forward-set-window Scroll forward in this window and set default window size
M-x scroll-backward-set-window Scroll backward in this window and set default window size
M-x scroll-forward-page-only-set-window Scroll forward in this window staying within node and set default window size
M-x scroll-backward-page-only-set-window Scroll backward in this window staying within node and set default window size
M-x down-line Scroll down by lines
M-x up-line Scroll up by lines
M-x scroll-half-screen-down Scroll down by half screen size
M-x scroll-half-screen-up Scroll up by half screen size
M-x prev-window Select the previous xwindow
M-x set-screen-height <number> Set the height of the displayed window
M-x find-menu Move to the start of this node's menu
M-x visit-menu Visit as many menu items at once as possible
M-x man <name of man page> Read a manpage reference and select it
M-x print-node Pipe the contents of this node through INFO_PRINT_COMMAND
M-x clear-search Clear displayed search matches
M-x describe-key <key combo> Print documentation for KEY (one line of documentation)
M-x where-is Show what to type to execute a given command
M-x describe-command Read the name of an Info command and describe it
M-x index-apropos Grovel all known info file's indices for a string and build a menu (grep widely, and make a menu of what is found)
M-x describe-variable Explain the use of a variable
M-x set-variable Set the value of an Info variable
M-x info-version Display version of Info being run
#####################################################################################################################################################
Commands available in the 'echo' area (i.e. at bottom of screen):
(M- (meta) = Fn (not alt) -hwj)
C-l (redraw-display) Redraw the display
C-g Esc (echo-area-abort) Cancel or quit operation
M-C-g (echo-area-abort) Cancel or quit operation
MOVE
C-a Home (echo-area-beg-of-line) Move to the start of this line
C-e End (echo-area-end-of-line) Move to the end of this line
C-b Left (echo-area-backward) Move backward a character
C-f Right (echo-area-forward) Move forward a character
M-b (echo-area-backward-word) Move backward a word
M-f (echo-area-forward-word) Move forward a word
COMMAND LINE COMPLETIONS
M-? ? (echo-area-possible-completions) List possible completions
M-C-v (echo-area-scroll-completions-window) Scroll the completions window
TAB SPC (echo-area-complete) Insert completion
RET LFD (echo-area-newline) Accept (or force completion of) this line
DELETE/YANK
C-d (echo-area-delete) Delete the character under the cursor
C-h DEL (echo-area-rubout) Delete the character behind the cursor
M-d (echo-area-kill-word) Kill the word following the cursor
M-DEL (echo-area-backward-kill-word) Kill the word preceding the cursor
C-k (echo-area-kill-line) Kill to the end of the line
C-x DEL (echo-area-backward-kill-line) Kill to the beginning of the line
C-y (echo-area-yank) Yank back the contents of the last kill
M-y (echo-area-yank-pop) Yank back a previous kill
INSERT
C-q (echo-area-quoted-insert) Insert next character verbatim
M-TAB (echo-area-tab-insert) Insert a TAB character
TRANSPOSE
C-t (echo-area-transpose-chars) Transpose characters at point (and move ahead by one)
NUMERIC ARGUMENTS ???
C-u (universal-argument) Start (or multiply by 4) the current numeric argument
M-- (add-digit-to-numeric-arg) Add this digit to the current numeric argument
M-0 .. M-9 (add-digit-to-numeric-arg) Add this digit to the current numeric argument
C-x o (next-window) Select the next window