GNU情報とその使用方法は理解していますが、それは何ですかfor?マニュアルページと並行して存在するのはなぜですか?詳細なmanを記述しないのはなぜですか?別のユーティリティを提供するのではなく、ページ?
GNU Infoは、包括的でハイパーリンクされたドキュメントを提供し、複数の形式に出力できるように設計されています。
Manページが利用可能で、印刷出力を提供するのに優れていました。ただし、各manページのコンテンツのセットがかなり少ないように設計されています。マニュアルページには、printf(3)などの単一のC関数に関する説明がある場合と、ls(1)コマンドについて説明している場合があります。
より大きなシステムに入ると、それは壊れます。 Emacsのドキュメントをmanページにどのように収めますか?問題の例はPerlのmanページで、情報を取得するために読むことができる174の個別のmanページがリストされています。それをどのように参照するか、または&&の意味を見つけるために検索を行いますか?
マニュアルページの改善点として、Infoは次のことを提供しました。
それはまだ関連していますか?今日、ほとんどの人は「このドキュメントはマンページに属していません」と言い、PDFまたはHTMLで記述します。実際、いくつかのOSのヘルプシステムはHTMLに基づいています。ただし、GNU情報が作成されたとき(1986))、HTMLはまだ存在していませんでした。現在、texinfoでは、PDF、情報、またはその他の形式を作成できるため、これらを使用できます。必要に応じてフォーマットします。
GNU情報が発明されたのはそのためです。
Infoシステムが発明された理由は必要ですが、「怠惰、傲慢、焦り」も同様に良い説明だと思います。
GNU=プロジェクトの目的は、自由に変更および自由に配布できるオペレーティングシステムとツールを開発することでした。従来のUnix manシステムは、Bell Labsのnroff/troffドキュメントフォーマットシステムに基づいていました。当時は商用(非フリー)ソフトウェアでした。最終的にそのシステムはリバースエンジニアリングされ、groffと呼ばれる無料の代替が作成されましたが、GNUプロジェクトが開始してから数年後です。 GNU以前のドキュメンテーションのためのシステムは、troffの交換を実装する必要があり、それは大きな仕事でした。
一方、GNU EmacsはGNUの最初の大きなプロジェクトであり、詳細なドキュメントが必要でした。GNU =システム、Richard Stallmanは、自分のシステムで使用できる既存のソフトウェアを探し求めました。TeXはすでに存在し、強力なドキュメントフォーマット機能を備えていました。nroff/ troffとは異なり、TeXは自由に使用および再配布できます。Texinfoは、活用するためのドキュメントシステムとして作成されました印刷されたマニュアルとGNU Emacsの処理とオンラインドキュメントの読み取りのためのTeXの力。元のTexinfoプロセッサとInfoドキュメントブラウザは両方ともLISPで作成され、Emacs内で実行されました。スタンドアロンのTexinfoユーティリティはいくつかありました年後。
ウィキペディアのページにあるように であるように、TeXinfoはGNUプロジェクトのリチャードストールマンによる公式ドキュメントとして設計されました。これはTeXの上にあるマクロのセットであり、ソフトウェアマニュアルを書くために設計されています。ストールマンは、manページがタスクには不十分だと考えていました。Texinfoのmanページに対する2つの利点は、ハイパーリンクされていることと、設計上、他の形式に簡単に変換できることです。
補遺:質問に厳密に関連しているわけではありませんが、manページはLinuxカーネル上で実行されているようなフリーのUnixライクなシステムやさまざまなBSDフレーバーの標準的なドキュメントシステムと見なされていることに注意してください。たとえば、Debianパッケージテンプレートは、コマンドのmanページの追加を推奨し、lintianはmanページのチェックも行います。 TexinfoはまだGNUプロジェクト以外では広く使用されていません。
(以下のコマンドのチートシートを参照)
manページはフラットです。
info
はツリーです。
どちらもテキストベースのままなので、低レベルのシステム開発中に使用できます(httpとは異なり、使用する前に本格的なGUIとブラウザが必要です)。
Linuxは多くの低リソースマシンで実行できるため、これも役立ちます。たとえば、AtmelのArduinoで実行されるものはinfo
にあります。
manページに操作可能なハイパーリンクを含めることはできません。(このテクノロジーでは不可能です。)
info
には、操作可能なリンクが多数ありますノードからノードへ、またはノードからリーフへのリンクがあり、大きなマニュアルをすばやくナビゲートすることが非常に簡単になります。
(履歴:info
は Gopher に似ています。覚えておくと、移動する直前の状態でした。 GUI OSに、そしてワールドワイドウェブは爆発しました。Gopherは情報を見つけるのに非常にうまく機能し、高速でシンプルでした。それは簡単に拡張でき、完全にテキストベースで、高速でした。)
多くの標準パッケージには、姉妹-docパッケージもあります。多くの場合、このコンテンツはinfo
内でのみ見つかります。
これらのドキュメントパッケージは、セクションとサブセクションを含む情報内に小冊子を追加します。 info
lingoでは、これらはnodes
と呼ばれ、ノードは他のnodes
を含むことができます- ツリー内構造。
しかし[〜#〜] h [〜#〜]によって提供されるヘルプは役に立ちません。 一部のロボットの出力に似ています。
私は彼らの助けをGnoteにコピーし、手で再編成しました(以下)。また、キーストロークの多くが重複しており、特定のコマンドを実行する方法が2つまたは3つあることに気付きました。 それはemacsに非常によく似ています。
木を登るコマンドがあります。ここにいくつかの例があります:
読んでいるときに1行ずつ下にスクロールすると、各ブックレットのすべてのセクションにアクセスできます。
最後
* l-lastつまり、戻ります。 Webブラウザーの戻るボタンに似ています。 -このウィンドウに表示されている最後のノードに戻ります(最初は1つのウィンドウしかありません)。 うわー、ドキュメントウィンドウも半分に分割できます!
親
* - p 1レベル。例えばセクション2.1からセクション2に進みます。
兄弟
* n-nこのレベルの次のノード。例えばセクション2->セクション3(2.1以外)
* p-pこのレベルの前のノード。例えばセクション3->セクション2
子供
* ]-nextドキュメント内のノード。セクション2->セクション2.1
* [-前へドキュメント内のノード。セクション2.1->セクション2
人
* d-d irectory(メイン)ノード。 -これはINFOツリーの最上位です。家族へのリンクが含まれています:
家族
* t-tこのドキュメントのopノード。 -一般的に目次
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)
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):
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))
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