文件

常用 Info 命令键

l           关闭当前帮助窗口.
q           完全退出 Info.
H           显示 Info 帮助指南.
Up          光标向上移动一行.
Down        光标向下移动一行.
DEL         向上滚动一屏.
SPC         向下滚动一屏.
Home        移动到本节点的开始.
End         移动到本节点的末尾.

TAB         跳至下一个超文本链接.
RET         转至光标处的超文本链接节点.
l           返回当前窗口浏览的上一节点.

[           移动到当前文档的上一节点.
]           移动到当前文档的下一节点.
p           移动到当前级别的上一节点.
n           移动到当前级别的下一节点.
u           向上移动一级.
t           移动到当前 info 文档的第一个节点.
d           移动到 Info 的主 `directory' 节点.

1...9       选取当前节点菜单的第一...第九项.
0           选取当前节点菜单的最后一项.
m           选取指定名称的菜单项.
r           转至指定名称的对照节点.
g           移动到指定名称的节点.

s           向下搜索指定字符串.
{           重复搜索上一个结果.
}           重复搜索下一个结果.
i           依索引搜索指定字符串, 并选择第一个匹配节点.
C-g         取消当前操作.

---------------------
当前搜索路径为:
/usr/local/info:/usr/share/info:/usr/info:/usr/share/info:.:/usr/local/info:/us\
r/info:/usr/local/lib/info:/usr/lib/info:/usr/local/gnu/info:/usr/local/gnu/lib\
/info:/usr/gnu/info:/usr/gnu/lib/info:/opt/gnu/info:/usr/share/info:/usr/share/\
lib/info:/usr/local/share/info:/usr/local/share/lib/info:/usr/gnu/lib/emacs/inf\
o:/usr/local/gnu/lib/emacs/info:/usr/local/lib/emacs/info:/usr/local/emacs/info
---------------------

Info 窗口中的可用命令:

C-a     (beginning-of-line)             移动到行首
C-b     (backward-char)                 向后移动一个字符
C-e     (end-of-line)                   移动到行尾
C-f     (forward-char)                  向前移动一个字符
C-g     (abort-key)                     取消当前操作
C-h     (get-help-window)               显示帮助信息
TAB     (move-to-next-xref)             移动到下一对照节点
LFD     (select-reference-this-line)    选择当前行中的对照或菜单项
C-l     (redraw-display)                重绘当前显示
RET     (select-reference-this-line)    选择当前行中的对照或菜单项
C-n     (next-line)                     向下移动一行
C-p     (prev-line)                     向上移动一行
C-r     (isearch-backward)              向后交互搜索键入的字符串
C-s     (isearch-forward)               向前交互搜索键入的字符串
C-u     (universal-argument)            开始 (或乘以 4) 当前数字参数
C-v     (scroll-forward-page-only)      当前窗口本节点内向下滚动
C-x C-b (list-visited-nodes)            在一个窗口中列出所有访问过的节点
C-x C-c (quit)                          退出 Info
C-x C-f (view-file)                     读取文件名并选择该文件
C-x C-g (abort-key)                     取消当前操作
C-x C-v (view-file)                     读取文件名并选择该文件
C-x 0   (delete-window)                 删除当前窗口
C-x 1   (keep-one-window)               删除当前窗口外的其它窗口
C-x 2   (split-window)                  拆分当前窗口
C-x A .. C-x M  (do-lowercase-version)  执行绑定到该键小写字母的命令
C-x N   (search-previous)               反方向重复最后的搜索
C-x O .. C-x Z  (do-lowercase-version)  执行绑定到该键小写字母的命令
C-x ^   (grow-window)                   伸长 (或收缩) 当前窗口
C-x b   (select-visited-node)           在一个可见窗口中选择之前访问过的节点
C-x k   (kill-node)                     关闭节点
C-x n   (search-next)                   同方向重复最后的搜索
C-x o   (next-window)                   选择下一窗口
C-x t   (tile-windows)                  在可视窗口中拆分空白屏幕
C-x w   (toggle-wrap)                   在当前窗口绑定自动换行状态
C-x M-A .. C-x M-Z      (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC C-f (show-footnotes)                在另一窗口中显示当前节点的脚注
ESC C-g (abort-key)                     取消当前操作
ESC TAB (move-to-prev-xref)             移动到前一对照
ESC C-v (scroll-other-window)           向下滚动另一窗口
ESC ESC A .. ESC ESC N  (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC ESC O A     (prev-line)             移动到上一行
ESC ESC O B     (next-line)             移动到下一行
ESC ESC O C     (forward-word)          向前移动一个字
ESC ESC O D     (backward-word)         向后移动一个字
ESC ESC O E .. ESC ESC O Z      (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC ESC O M-A .. ESC ESC O M-Z  (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC ESC P .. ESC ESC Z  (do-lowercase-vercase-version)
     执行绑定到该键小写字母的命令
ESC ESC [ 5 A .. ESC ESC [ 5 Z  (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC PgUp        (scroll-other-window-backward)
     向上滚动另一窗口
ESC ESC [ 5 M-A .. ESC ESC [ 5 M-Z      (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC ESC [ 6 A .. ESC ESC [ 6 Z  (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC PgDn        (scroll-other-window)   向下滚动另一窗口
ESC ESC [ 6 M-A .. ESC ESC [ 6 M-Z      (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC Up  (prev-line)                     移动到上一行
ESC Down        (next-line)             移动到下一行
ESC Right       (forward-word)          向前移动一个字
ESC Left        (backward-word)         向后移动一个字
ESC ESC [ E .. ESC ESC [ Z      (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC ESC [ M-A .. ESC ESC [ M-Z  (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC ESC M-A .. ESC ESC M-Z      (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC -   (add-digit-to-numeric-arg)
     为当前数字参数增加一个数字
ESC 0 .. ESC 9  (add-digit-to-numeric-arg)
     为当前数字参数增加一个数字
ESC <   (beginning-of-node)             移动到节点开始
ESC >   (end-of-node)                   移动到节点末尾
ESC A .. ESC N  (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC O A (prev-line)                     移动到上一行
ESC O B (next-line)                     移动到下一行
ESC O C (forward-char)                  向前移动一个字符
ESC O D (backward-char)                 向后移动一个字符
ESC O E .. ESC O Z      (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC O M-A .. ESC O M-Z  (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC P .. ESC Z  (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC [ 1 A .. ESC [ 1 Z  (do-lowercase-version)
     执行绑定到该键小写字母的命令
Home    (beginning-of-node)             移动到节点开始
ESC [ 1 M-A .. ESC [ 1 M-Z      (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC [ 3 A .. ESC [ 3 Z  (do-lowercase-version)
     执行绑定到该键小写字母的命令
DEL     (scroll-backward)               向上滚动一屏
ESC [ 3 M-A .. ESC [ 3 M-Z      (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC [ 4 A .. ESC [ 4 Z  (do-lowercase-version)
     执行绑定到该键小写字母的命令
End     (end-of-node)                   移动到本节点的末尾
ESC [ 4 M-A .. ESC [ 4 M-Z      (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC [ 5 A .. ESC [ 5 Z  (do-lowercase-version)
     执行绑定到该键小写字母的命令
PgUp    (scroll-backward)               向上滚动一屏
ESC [ 5 M-A .. ESC [ 5 M-Z      (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC [ 6 A .. ESC [ 6 Z  (do-lowercase-version)
     执行绑定到该键小写字母的命令
PgDn    (scroll-forward)                向下滚动一屏
ESC [ 6 M-A .. ESC [ 6 M-Z      (do-lowercase-version)
     执行绑定到该键小写字母的命令
Up      (prev-line)                     光标向上移动一行
Down    (next-line)                     光标向下移动一行
Right   (forward-char)                  向前移动一个字符
Left    (backward-char)                 向后移动一个字符
ESC [ E .. ESC [ Z      (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC [ M-A .. ESC [ M-Z  (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC b   (backward-word)                 向后移动一个字
ESC f   (forward-word)                  向前移动一个字
ESC r   (move-to-window-line)           光标移动到当前窗口的指定行
ESC v   (scroll-backward-page-only)     当前窗口本节点内向前滚动
ESC x   (execute-command)               在命令行中读取并执行一个命令
ESC M-A .. ESC M-Z      (do-lowercase-version)
     执行绑定到该键小写字母的命令
SPC     (scroll-forward)                当前窗口内向下滚动
,       (next-index-match)              移动到最后一次 `i' 命令匹配的下一索引
/       (search)                        读取并搜索一个字符串
0       (last-menu-item)                在节点菜单中选择最后一项
1 .. 9  (menu-digit)                    选择该菜单项
<       (first-node)                    选择文件中的第一个节点
>       (last-node)                     选择文件中的最后一个节点
?       (get-help-window)               显示帮助信息
A .. F  (do-lowercase-version)          执行绑定到该键小写字母的命令
G       (menu-sequence)                 读取并转到目录中的一列菜单
H       (get-info-help-node)            访问 Info 节点 `(info)Help'
I .. N  (do-lowercase-version)          执行绑定到该键小写字母的命令
O       (goto-invocation-node)          查找程序调用描述节点
P .. Q  (do-lowercase-version)          执行绑定到该键小写字母的命令
R       (toggle-regexp)                 绑定搜索中的正则表达式
S       (search-case-sensitively)       读取并搜索一个区分大小写的字符串
T .. Z  (do-lowercase-version)          执行绑定到该键小写字母的命令
[       (global-prev-node)              向后跳出当前节点
]       (global-next-node)              向前跳出当前节点
b       (beginning-of-node)             移动到节点开始
d       (dir-node)                      选取 `dir' 节点
e       (end-of-node)                   移动到节点末尾
f       (xref-item)                     读取脚注或对照并选取对应节点
g       (goto-node)                     读取节点名称并选取该节点
h       (get-help-window)               显示帮助信息
i       (index-search)                  在文件索引中查找字符串
l       (history-node)                  选取最近选择的节点
m       (menu-item)                     读取菜单项并选取对应节点
n       (next-node)                     选择下一节点
p       (prev-node)                     选择上一节点
q       (quit)                          退出 Info
r       (xref-item)                     读取脚注或对照并选取对应节点
s       (search)                        读取并选择字符串
t       (top-node)                      选择文件中的 `Top' 节点
u       (up-node)                       选择上一节点
x       (delete-window)                 删除当前窗口
{       (search-previous)               重复搜索上一个结果
}       (search-next)                   重复搜索下一个结果
DEL     (scroll-backward)               当前窗口内向上滚动
M-C-f   (show-footnotes)                在另一窗口中显示当前节点的脚注
M-C-g   (abort-key)                     取消当前操作
M-TAB   (move-to-prev-xref)             移动到上一对照
M-C-v   (scroll-other-window)           向下滚动另一窗口
M--     (add-digit-to-numeric-arg)      为当前数字参数增加一个数字
M-0 .. M-9      (add-digit-to-numeric-arg)
     为当前数字参数增加一个数字
M-<     (beginning-of-node)             移动到节点开始
M->     (end-of-node)                   移动到节点末尾
M-A .. M-Z      (do-lowercase-version)
     执行绑定到该键小写字母的命令
M-b     (backward-word)                 向后移动一个字
M-f     (forward-word)                  向前移动一个字
M-r     (move-to-window-line)           光标移动到当前窗口的指定行
M-v     (scroll-backward-page-only)     当前窗口本节点内向前滚动
M-x     (execute-command)               在命令行中读取并执行一个命令
---------------------

命令行区域中的可用命令:

C-a     (echo-area-beg-of-line)         移动到行首
C-b     (echo-area-backward)            向后移动一个字符
C-d     (echo-area-delete)              删除光标处的一个字符
C-e     (echo-area-end-of-line)         移动到行尾
C-f     (echo-area-forward)             向前移动一个字符
C-g     (echo-area-abort)               取消或退出操作
C-h     (echo-area-rubout)              删除光标后的一个字符
TAB     (echo-area-complete)            插入完整命令
LFD     (echo-area-newline)             接受 (或强制完成) 该行命令
C-k     (echo-area-kill-line)           删除当前至行尾字符
C-l     (redraw-display)                重绘当前显示
RET     (echo-area-newline)             接受 (或强制完成) 该行命令
C-q     (echo-area-quoted-insert)       插入下一字符
C-t     (echo-area-transpose-chars)     交换光标前的两个字符
C-u     (universal-argument)            开始 (或乘以 4) 当前数字参数
C-x ESC A .. C-x ESC Z  (do-lowercase-vercase-version)
          执行绑定到该键小写字母的命令
C-x ESC [ 3 A .. C-x ESC [ 3 Z  (do-lowercase-version)
     执行绑定到该键小写字母的命令
C-x DEL (echo-area-backward-kill-line)  K
C-x ESC [ 3 M-A .. C-x ESC [ 3 M-Z      (
     执行绑定到该键小写字母的命令
C-x Up .. C-x ESC [ Z   (do-lowercase-vercase-version)
     执行绑定到该键小写字母的命令
C-x ESC [ M-A .. C-x ESC [ M-Z  (do-lowercase-version)
     执行绑定到该键小写字母的命令
C-x ESC M-A .. C-x ESC M-Z      (do-lowercase-version)
     执行绑定到该键小写字母的命令
C-x A .. C-x Z  (do-lowercase-version)
     执行绑定到该键小写字母的命令
C-x o   (next-window)                   选择下一窗口
C-x DEL (echo-area-backward-kill-line)  删除当前至行首字符
C-x M-A .. C-x M-Z      (do-lowercase-vercase-version)
     执行绑定到该键小写字母的命令
C-y     (echo-area-yank)                撤消上一次删除操作
ESC C-g (echo-area-abort)               取消或退出操作
ESC TAB (echo-area-tab-insert)          插入 TAB 字符
ESC C-v (echo-area-scroll-completions-window)
     向下滚动整个窗口
ESC ESC A .. ESC ESC N  (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC ESC O A .. ESC ESC O B      (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC ESC O C     (echo-area-forward-word)
     向前移动一个字
ESC ESC O D     (echo-area-backward-word)
     向后移动一个字
ESC ESC O E .. ESC ESC O Z      (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC ESC O M-A .. ESC ESC O M-Z  (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC ESC P .. ESC ESC Z  (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC ESC [ 3 A .. ESC ESC [ 3 Z  (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC DEL (echo-area-backward-kill-word)  删除光标前的字
ESC ESC [ 3 M-A .. ESC ESC [ 3 M-Z      (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC Up .. ESC Down      (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC Right       (echo-area-forward-word)
     向前移动一个字
ESC Left        (echo-area-backward-word)
     向后移动一个字
ESC ESC [ E .. ESC ESC [ Z      (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC ESC [ M-A .. ESC ESC [ M-Z  (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC ESC M-A .. ESC ESC M-Z      (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC -   (add-digit-to-numeric-arg)
     为当前数字参数增加一个数字
ESC 0 .. ESC 9  (add-digit-to-numeric-arg)
     为当前数字参数增加一个数字
ESC ?   (echo-area-possible-completions)
     列举所有指令全称
ESC A .. ESC N  (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC O A .. ESC O B      (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC O C (echo-area-forward)             向前移动一个字符
ESC O D (echo-area-backward)            向后移动一个字符
ESC O E .. ESC O Z      (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC O M-A .. ESC O M-Z  (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC P .. ESC Z  (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC [ 1 A .. ESC [ 1 Z  (do-lowercase-version)
     执行绑定到该键小写字母的命令
Home    (echo-area-beg-of-line)         移动到行首
ESC [ 1 M-A .. ESC [ 1 M-Z      (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC [ 3 A .. ESC [ 3 Z  (do-lowercase-version)
     执行绑定到该键小写字母的命令
DEL     (echo-area-rubout)              删除光标后的一个字符
ESC [ 3 M-A .. ESC [ 3 M-Z      (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC [ 4 A .. ESC [ 4 Z  (do-lowercase-version)
     执行绑定到该键小写字母的命令
End     (echo-area-end-of-line)         移动到行尾
ESC [ 4 M-A .. ESC [ 4 M-Z      (do-lowercase-version)
     执行绑定到该键小写字母的命令
Up .. Down      (do-lowercase-version)
     执行绑定到该键小写字母的命令
Right   (echo-area-forward)             向前移动一个字符
Left    (echo-area-backward)            向后移动一个字符
ESC [ E .. ESC [ Z      (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC [ M-A .. ESC [ M-Z  (do-lowercase-version)
     执行绑定到该键小写字母的命令
ESC b   (echo-area-backward-word)       向后移动一个字
ESC d   (echo-area-kill-word)           删除光标后的字
ESC f   (echo-area-forward-word)        向前移动一个字
ESC y   (echo-area-yank-pop)            撤消上一次删除操作
ESC DEL (echo-area-backward-kill-word)  删除光标前的字
ESC M-A .. ESC M-Z      (do-lowercase-version)
     执行绑定到该键小写字母的命令
SPC     (echo-area-complete)            插入完整命令
! .. >  (echo-area-insert)              插入该字符
?       (echo-area-possible-completions)
     列举所有指令全称
@ .. ~  (echo-area-insert)              插入该字符
DEL     (echo-area-rubout)              删除光标后的一个字符
M-C-g   (echo-area-abort)               取消或退出操作
M-TAB   (echo-area-tab-insert)          插入 TAB 字符
M-C-v   (echo-area-scroll-completions-window)
     向下滚动整个窗口
M--     (add-digit-to-numeric-arg)      为当前数字参数增加一个数字
M-0 .. M-9      (add-digit-to-numeric-arg)
     为当前数字参数增加一个数字
M-?     (echo-area-possible-completions)
     列举所有指令全称
M-A .. M-Z      (do-lowercase-version)
     执行绑定到该键小写字母的命令
M-b     (echo-area-backward-word)       向后移动一个字
M-d     (echo-area-kill-word)           删除光标后的字
M-f     (echo-area-forward-word)        向前移动一个字
M-y     (echo-area-yank-pop)            撤消上一次删除操作
M-DEL   (echo-area-backward-kill-word)  删除光标前的字
---------------------

下面的命令只能通过 M-x 调用:
M-x scroll-forward-set-window
     当前窗口内向下滚动并设置默认窗口大小
M-x scroll-forward-page-only-set-window
     当前窗口本节点内向下滚动并设置默认窗口大小
M-x scroll-backward-set-window
     当前窗口内向上滚动并设置默认窗口大小
M-x scroll-backward-page-only-set-window
     当前窗口本节点内向上滚动并设置默认窗口大小
M-x down-line
     逐行向下滚动
M-x up-line
     逐行向上滚动
M-x scroll-half-screen-down
     向下滚动半屏
M-x scroll-half-screen-up
     向上滚动半屏
M-x prev-window
     选择前一窗口节点的菜单
M-x find-menu
     移动到当前节点菜单的开始
M-x visit-menu
     一次访问最多的菜单项
M-x man
     读取并选择一个 manpage
M-x print-node
     通过 INFO_PRINT_COMMAND 管道该节点内容
M-x search-backward
     读取向向后搜索一个字符串
M-x numeric-arg-digit-loop
     C-u 时使用
M-x echo-area-insert
     插入该字符
M-x describe-key
     显示 KEY 的文档
M-x where-is
     显示如何执行给定的命令
M-x describe-command
     读取并描述一个 Info 命令
M-x set-screen-height
     设置显示窗口的高度
M-x index-apropos
     列举一个字符串对应的所有已知 info 文件的索引并创建一个菜单
M-x describe-variable
     解释一个变量的用法
M-x set-variable
     设置一个 Info 变量的值



               LESS命令概述

    带*标记的命令可以加上数字前缀, N.
    圆括号中的注释说明了使用前缀N的结果.

h  H                    显示该帮助.
q  :q  Q  :Q  ZZ        退出.
--------------------------------------------------------------------------------

                            移动
e  ^E  j  ^N  CR     *  向下一行        (或 N 行).
y  ^Y  k  ^K  ^P     *  向上一行        (或 N 行).
f  ^F  ^V  SPACE     *  向下一屏        (或 N 行).
b  ^B  ESC-v         *  向上一屏        (或 N 行).
z                    *  向下一屏        (并设置一屏为 N 行).
w                    *  向上一屏        (并设置一屏为 N 行).
ESC-SPACE            *  向下一屏, 并且不会停留在文件末尾.
d  ^D                *  向下半屏        (并设置半屏为 N 行).
u  ^U                *  向上半屏        (并设置半屏为 N 行).
ESC-)  RightArrow    *  左移半屏宽度    (或 N 列).
ESC-(  LeftArrow     *  右移半屏宽度    (或 N 列).
F                       一直向下, 与 "tail -f" 相同.
r  ^R  ^L               重绘屏幕.
R                       重绘屏幕, 清空缓冲输入.

        ---------------------------------------------------
        缺省 "一屏" 为屏幕高度.
        缺省 "半屏" 为屏幕高度的一半.
--------------------------------------------------------------------------------

                            搜索

/模式                *  向下搜索匹配行 (第 N 行).
?模式                *  向上搜索匹配行 (第 N 行).
n                    *  重复上一次搜索 (第 N 个).
N                    *  往相反方向重复上一次搜索.
ESC-n                *  重复上一次搜索, 可跨文件搜索.
ESC-N                *  往相反方向重复上一次搜索, 可跨文件搜索.
        ---------------------------------------------------
        搜索模式支持以下一种或多种操作:
        ^N 或 !   搜索不匹配的行.
        ^E 或 *   多文件搜索 (忽略文件结束符 EOF).
        ^F 或 @   在第一个文件中搜索 (对 /) 在最后一个文件中搜索 (对 ?).
        ^K        高光显示匹配内容, 但不移动 (保持当前位置).
        ^R        不使用正则表达式.
--------------------------------------------------------------------------------

                            跳转

g  <  ESC-<          *  跳至文件的第一 ( N ) 行.
G  >  ESC->          *  跳至文件的倒数第一 ( N ) 行.
p  %                 *  跳至文件开始 (或文件的 N%).
t                    *  跳至下一 ( N ) 个标签处.
T                    *  跳至上一 ( N ) 个标签处.
{  (  [              *  查找右括号 } ) ].
}  )  ]              *  查找左括号 { ( [.
ESC-^F <c1> <c2>     *  查找右括号 <c2>.
ESC-^B <c1> <c2>     *  查找左括号 <c1>.
        ---------------------------------------------------
        "查找右括号" 的命令为向下匹配上面的 (第 N 个) 左括号.
        "查找左括号" 的命令为向上匹配下面的 (第 N 个) 左括号.

m<字母>                 用 <字母> 标记当前位置.
'<字母>                 跳至上一个 <字母> 标记的位置.
''                      跳至上一个被标记的位置.
^X^X                    与 ' 相同.
        ---------------------------------------------------
        标记可以使用任意大写或小写字母.
        下面为预定义的标记:
              ^         文件开始
              $         文件末尾
--------------------------------------------------------------------------------

                          文件操作

:e [文件名]             检查一个新文件.
^X^V                    与 :e 相同.
:n                   *  从命令行检查下一 ( N ) 个文件.
:p                   *  从命令行检查上一 ( N ) 个文件.
:x                   *  从命令行检查第一 ( N ) 个文件.
:d                      从命令行列表删除当前文件.
=  ^G  :f               输出当前文件名.
--------------------------------------------------------------------------------

                          杂项命令

-<标记>                 连接一个命令行选项 [详见 "选项"].
--<名称>                以名称连接一个命令行选项.
_<标记>                 显示一个命令行选项的设置.
__<名称>                以名称显示一个命令行选项的设置.
+cmd                    检查新文件时执行 less 命令 cmd.

!command                $SHELL 模式下执行 shell 命令.
|Xcommand               在 shell 命令中在当前位置和标记 X 间管道文件.
v                       $VISUAL 或 $EDITOR 模式下编辑当前文件.
V                       输出 "less" 的版本号.
--------------------------------------------------------------------------------

                            选项
        大部分选项可在命令行或 less 下通过 - 或 -- 命令改变. 选项具有两种形式:
        以 - 为前缀的单字符形式和以 -- 为前缀的名称形式.

-?  ........  --help
                显示帮助 (命令行下).
-a  ........  --search-skip-screen
                跳过当前屏向下查找.
-b [N]  ....  --buffers=[N]
                设置缓冲区数量.
-B  ........  --auto-buffers
                禁用自动为管理分配缓冲区.
-c  -C  ....  --clear-screen  --CLEAR-SCREEN
                通过卷动或清除的方式重绘屏幕.
-d  ........  --dumb
                使终端禁声.
-D [xn.n]  .  --color=xn.n
                设置屏幕颜色. (限 MS-DOS)
-e  -E  ....  --quit-at-eof  --QUIT-AT-EOF
                文件结束时退出.
-f  ........  --force
                强制打开未定义文件.
-F  ........  --quit-if-one-screen
                如果整个文件只占一屏时退出.
-g  ........  --hilite-search
                搜索时仅高亮显示最后一项匹配结果.
-G  ........  --HILITE-SEARCH
                搜索时不高亮显示匹配结果.
-h [N]  ....  --max-back-scroll=[N]
                向上滚动屏数最大值设置.
-i  ........  --ignore-case
                不包含大写的搜索时忽略大小写.
-I  ........  --IGNORE-CASE
                搜索时忽略大小写.
-j [N]  ....  --jump-target=[N]
                目标行的屏幕位置.
-J  ........  --status-column
                屏幕左边显示状态列.
-k [文件]  .  --lesskey-file=[文件]
                使用lesskey文件.
-L  ........  --no-lessopen
                忽略环境变量LESSOPEN.
-m  -M  ....  --long-prompt  --LONG-PROMPT
                设置提示符风格.
-n  -N  ....  --line-numbers  --LINE-NUMBERS
                使用行号.
-o [文件]  .  --log-file=[文件]
                复制到日志文件 (仅针对标准输入).
-O [文件]  .  --LOG-FILE=[文件]
                复制到日志文件 (无条件覆写).
-p [模式]  .  --pattern=[模式]
                开始模式 (从命令行).
-P [提示符]   --prompt=[提示符]
                定义新的提示符.
-q  -Q  ....  --quiet  --QUIET  --silent  --SILENT
                终端蜂鸣器静音.
-r  -R  ....  --raw-control-chars  --RAW-CONTROL-CHARS
                输出 "raw" 控制符.
-s  ........  --squeeze-blank-lines
                删除多余的空行.
-S  ........  --chop-long-lines
                使长行换行.
-t [标签]  .  --tag=[标签]
                查找标签.
-T [标签文件] --tag-file=[标签文件]
                使用替换标签文件.
-u  -U  ....  --underline-special  --UNDERLINE-SPECIAL
                修改退格处理.
-V  ........  --version
                显示 "less" 版本号.
-w  ........  --hilite-unread
                向下滚屏后高亮显示第一行.
-W  ........  --HILITE-UNREAD
                向下移动时高亮显示第一行.
-x [N[,...]]  --tabs=[N[,...]]
                设置 tab 键宽度.
-X  ........  --no-init
                不使用 termcap init/deinit 字符串.
              --no-keypad
                不使用 termcap 键区 init/deinit 字符串.
-y [N]  ....  --max-forw-scroll=[N]
                向下滚动的限制.
-z [N]  ....  --window=[N]
                设置屏幕大小.
-" [c[c]]  .  --quotes=[c[c]]
                设置 shell 引用符.
-~  ........  --tilde
                文件末尾不显示 tilde 符.
-# [N]  ....  --shift=[N]
                水平滚动宽度 (0 = 半屏宽度).

--------------------------------------------------------------------------------

                           行编辑

        可用于编辑屏幕下方 "命令行" 中输入的文本.

RArrow                          ESC-l       光标向右移动一个字符.
LArrow                          ESC-h       光标向左移动一个字符.
CNTL-RArrow     ESC-RArrow      ESC-w       光标向右移动一个字.
CNTL-LArrow     ESC-LArrow      ESC-b       光标向右移动一个字.
HOME                            ESC-0       光标移动至行首.
END                             ESC-$       光标移动至行尾.
BACKSPACE                                   删除光标的前一个字符.
DELETE                          ESC-x       删除光标的后一个字符.
CNTL-BACKSPACE  ESC-BACKSPACE               删除光标的前一个字.
DELETE          ESC-DELETE      ESC-X       删除光标的后一个字.
CNTL-U          ESC (限 MS-DOS)             删除整行.
UpArrow                         ESC-k       取得上一命令行.
DownArrow                       ESC-j       取得下一命令行.
TAB                                         自动补全文件名 & 循环.
SHIFT-TAB                       ESC-TAB     自动补全文件名 & 反向循环.
CNTL-L                                      自动补全文件名, 列出所有匹配文件.



gdb                      GNU 工具

名称
        gdb - GNU 调试器

大纲
        gdb     [-help] [-nx] [-q] [-batch] [-cd=dir] [-f] [-b bps] [-tty=dev]
                [-s symfile] [-e prog] [-se prog] [-c core] [-x cmds] [-d dir]
                [prog[core|procID]]

描述
        GDB 等调试器的目的是使用户能够观察正在运行的其他程序 "内部", 或其崩溃时
        的情况.

        GDB 主要具有以下四种功能 (连同其它功能) 以帮助找出问题:

            o   启动程序, 给定可能影响程序运行的因素.

            o   在给定条件下使程序中止运行.

            o   当程序中止时, 检查出现的问题.

            o   修改程序内容, 方便修正bug的影响并继续查找bug.

        GDB 可用于调试 C, C++ 和 Modula-2 程序, 在 GNU Fortran 编译器完成之后将
        增加对 Fortran 的支持.

        GDB 通过 shell 命令 gdb 调用, 启动后, GDB 从终端读取命令直至使用 quit 命
        令结束运行. 用户可以在 gdb 中使用 help 命令获取在线帮助.

        gdb 可以无参数或无选项运行; 但通常 GDB 启动时都有一两个参数, 指定可执行程
        序:

        gdb program

        也可在启动时指定可执行程序与磁盘文件:

        gdb program core

        如果用户希望调试运行中的进程, 还可指定进程 ID 作为第二个参数:

        gdb program 1234

        使得 GDB 指向进程 1234 (除非有一文件名为 "1234", GDB 首先检测磁盘文件).

        下面是一些常用的 GDB 命令:

        break [file:]function
                在 (file) function 入口处设置断点.

        run [arglist]
                (如果给定参数列表 arglist, 将带参数) 启动程序.

        bt      Backtrace: 显示程序当前的调用堆栈.

        print expr
                显示表达式的值.

        c       继续执行程序 (程序中止后, 如: 在断点处).

        next    单步执行至程序的下一行 (程序中止后); 不会进入函数调用内部.

        edit [file:]function
                查看程序当前中止的代码行.

        list [file:]function
                显示程序当前中止的邻近代码段.

        step    单步执行至程序的下一行 (程序中止后); 会进入调用函数内部.

        help [name]
                显示 GDB 命令 name 相关信息, 或 GDB 使用总说明.

        quit    退出 GDB.

        GDB 的更多细节, 参考 Using GDB: A Guide to the GNU Source-Level Debugger
        (使用GDB: GNU 源码级调试器手册), 作者: Richard M. Stallman and Roland H.
        Pesch. 相同的文本可以通过 info gdb 阅读.

选项
        包括选项等所有参数指定了一个可执行文件和磁盘文件 (或进程 ID); 第一个参
        数不关联任何选项标志等价于使用 `-se' 选项, 如果有第二个选项, 并且是一个
        文件名时, 等价于使用 `-c' 选项. 很多选项都具有长短两种形式; 一并列举在
        此.  即使被截短的长形式只要不具有歧义依然可以被正确识别. (如果你喜欢,
        你可以用 `+' 而不是 `-' 标志选项参数, 虽然我们给出了常用习惯.)

        所有选项和命令行参数被有序处理. 在使用 `-x' 选项时顺序会有所差异.


--------------------------------------------------------------------------------


`grep'用于查找模式匹配行。

1 简介
******

`grep'查找输入文件中包含匹配给定模式列表的行。当查到匹配行后,将结果行复制到标准输出(缺省)或生成到其他指定输出。

`grep'期望对文本进行匹配,对输入行长度而非可用内存没有限制,并可在一行内对任意字符进行匹配。若输入文件的最后一个字节不是新行符,`grep'会默认提供一个。除非在模式列表中新行也作为分隔符,否则无法在文本中匹配新行。

2 调用`grep'
************

`grep'命令行的一般说明

    grep OPTIONS PATTERN INPUT_FILE_NAMES

可以有0或多个OPTIONS。如果没有在OPTIONS(通过`-e PATTERN'或`-f FILE'选项)中被指定,PATTERN将保持不动。

2.1 命令行选项
==============

`grep'具有丰富的选项集:源自POSIX.2和GNU扩展。长选项名全部为GNU扩展,包括POSIX规范的选项。POSIX规范的选项的短名称明确用于简化POSIX可移植编程。少数选项名是为了与早期或外部实现兼容。

2.1.1 一般程序信息
------------------

`--help'
    打印概述命令行选项和bug报告地址的用法信息,然后退出。

`-V'
`--version'
    将`grep'的版本号打印到标准输出流。该版本号应当包含在所有bug报告中。

2.1.2 匹配控制
--------------

`-e PATTERN'
`--regexp=PATTERN'
    使用PATTERN作为模式;在保护以`-'开始的模式方面有用。

`-f FILE'
`--file=FILE'
    从FILE获得模式,每行一个。空文件包含0个模式,因此不会匹配任何内容。

`-i'
`-y'
`--ignore-case'
    忽略模式和输入文件的大小写区别,`-y'是为兼容而保留的废弃同义词。

`-v'
`--invert-match'
    颠倒匹配意义,选择未匹配行。

`-w'
`--word-regexp'
    只选取那些匹配整个单词的行。匹配子串要么在行的开始,要么前面是一个非单词要素字符。同样的,也必须是在行尾或后跟一个非单词要素字符。单词要素字符包括字母、数字和下划线。

`-x'
`--line-regexp'
    只选择那些精确匹配一整行的匹配项。

2.1.3 一般输出控制
------------------

`-c'
`--count'
    禁止正常输出;对每一输入文件以打印匹配行数代替。与`-v'、`--invert-match'选项一起使用,可计算非匹配行。

`--color[=WHEN]'
`--colour[=WHEN]'
    围绕非空匹配字符串、匹配行、内容行、文件名、行号、字节偏移和分隔符(针对内容行的域和组),结合换码顺序以彩色显示在终端。颜色在环境变量GREP_COLORS中定义,其默认值是`ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36'。WHEN可取`never'、`always'、`auto'。

`-L'
`--files-without-match'
   禁止正常输出;当没有匹配输出时以打印每一输入文件名代替。在第一次匹配成功时将停止文件扫描。

`-l'
`--files-with-matches'
    禁止正常输出;以打印每一输入文件名代替打印输出。在第一次匹配成功时将停止文件扫描。

`-m NUM'
`--max-count=NUM'
    在匹配NUM行后停止读取文件。如果输入是来自正则文件的标准输入,并且NUM匹配行是输出, `grep'确保退出前标准输入位于最后一项匹配行之后。可以用于调用过程恢复搜索。例如,下面的shell脚本:

        while grep -m 1 PATTERN
        do
            echo xxxx
        done < FILE

    而下面的例子可能无法工作,因为管道不是正则文件:

        # This probably will not work.
        cat FILE |
        while grep -m 1 PATTERN
        do
            echo xxxx
        done

    当`grep'在NUM匹配停止后,输出所有内容行。如果内容中不包含匹配行,在匹配另一行后`grep'将会停止。当`-c'或`--count'选项同时使用时,`grep'不会输出超过NUM项。当`-v'或`--invert-match'选项同时使用时,`grep'在输出NUM个非匹配行后停止。

`-o'
`--only-matching'
    只打印匹配行中的匹配(非空)部分,每一部分都放在单独一个输出行。

`-q'
`--quiet'
`--silent'
    静音;不会向标准输出中写入任何内容。若无匹配或发生错误时立即退出。


5 正则表达式
************

正则表达式是描述一组字符串的模式。正则表达式构成与算术表达式相似,通过使用各种操作符合并更小的表达式。`grep'理解两种不同版本的正则表达式语义:BRE和ERE。对GNU `grep'两种语义并无区别。在其他实现中,BRE差一些。

5.1 基本结构
============

基本构建块是匹配单字符的正则表达式。大多数包含所有字母、数字的字符集都是自匹配的正则表达式。任何含特定含义的元字符都以反斜线\为前缀。

    一个正则表达式可以跟以下的循环操作:

`.'
    句点`.'用于匹配任意单字符。

`?'
    前缀项是可选的,并最多匹配一个字符。

`*'
    前缀项用于匹配0或多次。

`+'
    前缀项用于匹配1或多次。

`{N}'
    前缀项用于匹配N次。

`{N }'
    前缀项用于匹配N或多次。

`{,M}'
    前缀项用于匹配最多M次。

`{N,M}'
    前缀项用于匹配N-M次。

`|'用于连接两个RE。

5.2 字符类和括号表达式
======================

-----------------------------------------------------

emacs $ACE_ROOT/ace/config.h

#include "ace/config-cygwin32.h"o 在

emacs $ACE_ROOT/include/makeinclude/platform_macros.GNU
-----------读书
想读《UNIX Network Programming》很久了,只是这种愿望一直没有特别强烈。用的笔记本换了之后强迫自己只是装了cygwin,没有安装VS,平时写些代码就只能在cygwin下用gcc了。最近对UNIX环境编程和网络基础比较感兴趣,于是读这本书终于提上了议事日程,可是大多数书店都没有这本书了。

工作之后,对于自己喜欢的书,就很少会去看电子版,觉得还是捧卷在手的感觉舒服一些,想怎么看怎么看,享受拿笔在上面写写画画的感觉。因此对于想读但买不到的书,第一反应是等待。在翻电脑上面一些资料的时候才反应过来我已经很久没有down过电子书了,结果就从网上down了很多想读(豆瓣)的书,forgive me, Richard Stevens and anybody.

---------------动手
之前只是在Windows下用过ACE,因为ACE提供了VS各种版本的解决方案,编译过程比较简单。这次放在cygwin下编译的时候,因为环境变量设置问题,并不是非常顺利,参照了源码目录下的ACE-INSTALL.html的描述才将问题解决。现在将过程给出来,仅供google到这里的同学参考:

友情提示:我目前对于cygwin和UNIX类系统的了解停留在知其然(还是在google之后)的水平。

1. 增加环境变量

o 修改/etc/profile文件读写属性:

$ chmod 777 /etc/profile

cygwin下的环境变量可以在该文件中配置,由于该文件默认具有写保护属性,因此需要修改使之可写,修改完成之后应该记得对其进行写保护:

$ chmod 555 /etc/profile

o 打开profile文件(本人使用emacs进行编辑,读者也可以使用vi、vim等,在此不再赘述):

$ emacs /etc/profile

o 往profile中修改和添加环境变量:

将以下五行添加到文件中,ACE_ROOT为ACE源码目录,本文用到的目录是/usr/share/ace:

ACE_ROOT=/usr/share/ace
export ACE_ROOT 

LD_LIBRARY_PATH=$ACE_ROOT/ace:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH 

# export PATH=$ACE_ROOT/ace:$PATH

这个操作等同于在VS下修改库文件目录,我是直接修改了PATH变量的:

PATH=/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:$ACE_ROOT/ace:$PATH

o 执行/etc/profile 

$ /etc/profile 

执行修改后有可能需要重启cygwin,可使用下面的命令查看ACE_ROOT设置是否正确: 

$ echo $ACE_ROOT 

2. 创建若干文件:

o 在$ACE_ROOT/ace 文件夹中创建名为 config.h 的文件,并加入以下内容后保存关闭: 

#include "ace/config-cygwin32.h"

o 在$ACE_ROOT/include/makeinclude 文件夹中创建名为 platform_macros.GNU 的文件,并加入以下内容保存关闭:

include $(ACE_ROOT)/include/makeinclude/platform_cygwin32.GNU

3. 编译ACE:

$ cd $ACE_ROOT/ace
$ make

大概会花掉十几分钟时间吧。

4. 测试ACE:

$ cd $ACE_ROOT/tests
$ make

大概又会花掉十几分钟时间吧。

接下来就可以使用perl脚本完成所有测试,我没有使用过perl,临时安装了一下。

$ perl run_test.pl

这个脚本在我一位同事的机器上跑了很久(十几分钟 or 几十分钟?),不幸的是,Windows竟然抛出了一个内存读写错误,更加不幸的是,我现在没有能力去确定。

其他内容可以参考ACE-INSTALL.html中的论述。

PS: 写过两篇水贴之后,对于debian的使用,大致没有以前那么痛苦了,把vim、g++、gdb的简单使用温习一下,可以开始写写代码了,写的代码多的话,用用make,也差不多了。

1) 如何将Shell输入输出设置为彩色:http://blog.csdn.net/qsd007/archive/2007/04/16/1566660.aspx

2) shell下的编程vim+ctags+taglist (ubuntu):http://linux.chinaitlab.com/SHELL/732841.html

3) vim+ctags+taglist+cscope+cppcomplete+global:http://blog.verycd.com/yoyopub/showentry=22855

4) taglist必须解压到root用户~目录下,否则不能启用。

在安装软件或其它空闲时间,我会查看很多命令的help。

烟酒茶码


mandatory [简明英汉词典]
[5mAndEtEri]
adj.命令的, 强制的, 托管的

implied [简明英汉词典]
[im5plaid]
adj.暗指的, 含蓄的

entry [简明英汉词典]
[5entri]
n.登录, 条目, 进入, 入口, [商]报关手续, [律]对土地的侵占, 对房屋的侵入

permission [简明英汉词典]
[pE(:)5miFEn]
n.许可, 允许

synopsis [简明英汉词典]
[si5nCpsis]
n.大纲

encounter [简明英汉词典]
[in5kauntE]
v.遭遇, 遇到, 相遇
n.遭遇, 遭遇战

recursive [简明英汉词典]
[rI`k\:sIv]
adj.回归的, 递归的

traversal [简明英汉词典]
[trA5vE:sl]
横越, 横断物, (横向)往返移动

supplementary [简明英汉词典]
[7sQpli5mentEri]
n.(supplementaries) 增补者, 增补物
adj.附助的

in contrast [简明英汉词典]
相反, 大不相同

symbolic [简明英汉词典]
[sim5bClik]
adj.象征的, 符号的

representation [简明英汉词典]
[7reprizen5teiFEn]
n.表示法, 表现, 陈述, 请求, 扮演, 画像, 继承, 代表

comma [简明英汉词典]
[5kCmE]
n.逗点, 逗号

combination [简明英汉词典]
[7kCmbi5neiFEn]
n.结合, 联合, 合并, 化合, 化合物

affected [简明英汉词典]
[E5fektid]
adj.受到影响的, 受(疾病)侵袭的, 假装的, 做作的

restricted [简明英汉词典]
[ris5triktid]
adj.受限制的, 有限的

facility [简明英汉词典]
[fE5siliti]
n.容易, 简易, 灵巧, 熟练, 便利, 敏捷, 设备, 工具

manipulate [简明英汉词典]
[mE5nipjuleit]
vt.(熟练地)操作, 使用(机器等), 操纵(人或市价、市场), 利用, 应付, 假造
vt.(熟练地)操作,巧妙地处理

general concept [简明英汉词典]
一般概念

vertically [简明英汉词典]
adv.垂直地

semipermanent [简明英汉词典]
[9semI`p\:mEnEnt,9semaI-]
adj.非永久(性)的,暂时的

henceforth [简明英汉词典]
[hens5fC:W]
adv.自此以后, 今后

consecutive [简明英汉词典]
[kEn5sekjutiv]
adj.连续的, 联贯的

repetition [简明英汉词典]
[7repi5tiFEn]
n.重复, 循环, 复制品, 副本

harmlessly [简明英汉词典]
adv.无害地, 无恶意地

intentional [简明英汉词典]
[in5tenFEnEl]
adj.有意图的, 故意的

deliberate [简明英汉词典]
[di5libEreit]
adj.深思熟虑的, 故意的, 预有准备的
v.商讨

obvious [简明英汉词典]
[5CbviEs, -vjEs]
adj.明显的, 显而易见的

straightforwardly [简明英汉词典]
adv.正直地

be sufficient for [简明英汉词典]
足够

sufficient [简明英汉词典]
[sE5fiFEnt]
adj.充分的, 足够的

consecutive [简明英汉词典]
[kEn5sekjutiv]
adj.连续的, 联贯的

prefix [简明英汉词典]
[5pri:fiks]
n.[语]前缀, (人名前的)称谓(如Mr. Dr. Sir等)

interpret [简明英汉词典]
[in5tE:prit]
v.解释, 说明, 口译, 通译, 认为是...的意思

repetition [简明英汉词典]
[7repi5tiFEn]
n.重复, 循环, 复制品, 副本

operate on [简明英汉词典]
v.对...施手术

arbitrary [简明英汉词典]
[5B:bitrEri]
adj.任意的, 武断的, 独裁的, 专断的

arbitrary [简明英汉词典]
[5B:bitrEri]
adj.任意的, 武断的, 独裁的, 专断的

contiguous [简明英汉词典]
[kEn5ti^juEs]
adj.邻近的, 接近的, 毗边的

transient [简明英汉词典]
[5trAnziEnt]
adj.短暂的, 瞬时的
n.瞬时现象

delimit [简明英汉词典]
[di:5limit]
vt.定界限, 划界

spot [简明英汉词典]
[spCt]
n.班点, 污点, 地点, 场所, 现场
v.沾污, 弄脏, 侦察
vt.认出, 发现
SPOT [简明英汉词典]
=Satellite Positioning and Tracking 人造卫星定位及跟踪

toggle [简明英汉词典]
[5tC^l]
n.[海]绳针, 套索钉
vt.拴牢

annoying [简明英汉词典]
[E5nCiiN]
adj.恼人的, 讨厌的

nuisance [简明英汉词典]
[5nju:sns]
n.讨厌的人或东西, 麻烦事, 损害

transient [简明英汉词典]
[5trAnziEnt]
adj.短暂的, 瞬时的
n.瞬时现象

rigid [简明英汉词典]
[5ridVid]
adj.刚硬的, 刚性的, 严格的

temporarily [简明英汉词典]
adv.临时