修改之前的:
<table>
<caption>BASH常用快捷键</caption>

<tr><th>分类</th><th>按键</th><th>助记</th><th>说明</th></tr>

<tr><td rowspan="8">光标移动</td><td>C-a</td><td>anchor,^</td><td>光标移动到行首</td></tr>
<tr><td>C-e</td><td>end</td><td>光标移动到行尾</td></tr>

<tr><td>C-f</td><td>forward</td><td>光标向前(右)移动一个字符</td></tr>
<tr><td>C-b</td><td>backward</td><td>光标向后(左)移动一个字符</td></tr>
<tr><td>M-f</td><td>forward</td><td>光标向前(右)移动到单词结尾</td></tr>
<tr><td>M-b</td><td>backward</td><td>光标向后(左)移动到单词开始</td></tr>

<tr><td>C-] 字符</td><td>?</td><td>光标向右移动到`字符`出现的位置,即搜索</td></tr>
<tr><td>M-C-] 字符</td><td>?</td><td>光标向左移动到`字符`出现的位置,即搜索</td></tr>

<tr><td rowspan="13">文本改变</td><td>C-d</td><td>delete</td><td>删除光标所在位置的一个字符(光标下有字符的时候)</td></tr>
<tr><td>C-h</td><td>h(vim)</td><td>删除光标所在位置前面的一个字符</td></tr>

<tr><td>C-w</td><td>word</td><td>删除光标所在位置前面的一个单词(以空白字符为边界)</td></tr>
<tr><td>M-Backspace</td><td>word</td><td>删除光标所在位置前面的一个单词</td></tr>
<tr><td>M-d</td><td>delete</td><td>删除光标所在位置的一个单词</td></tr>

<tr><td>C-t</td><td>transpose</td><td>交换光标所在位置的两个字符的位置</td></tr>
<tr><td>M-t</td><td>transpose</td><td>交换光标所在位置的两个单词的位置</td></tr>

<tr><td>C-u</td><td>?(kill Until beginning)</td><td>删除光标前面的所有字符。<br>存入剪贴板。</td></tr>
<tr><td>C-k</td><td>kill</td><td>删除从光标开始后面的所有字符。<br>存入剪贴板。</td></tr>
<tr><td>C-y</td><td>yank</td><td>粘贴剪贴板的内容。</td></tr>

<tr><td>M-u</td><td>uppercase</td><td>使光标下的单词变成全大写</td></tr>
<tr><td>M-l</td><td>lowercase</td><td>使光标下的单词变成全小写</td></tr>
<tr><td>M-c</td><td>capital</td><td>使光标下的单词首字母大写,即标题体</td></tr>

<tr><td rowspan="4">历史命令</td><td>C-p</td><td>previous</td><td>前一个命令,相当于按“上”键。</td></tr>
<tr><td>C-n</td><td>next</td><td>后一个命令,相当于按“下”键。</td></tr>
<tr><td>C-r</td><td>reverse</td><td>搜索历史命令(从最近开始往回搜索)。<br/>按下后输入字符开始搜索,然后按 ESC/TAB/方向键等授受。<br/>按 Ctrl-G / Ctrl-C 取消搜索。</td></tr>
<tr><td>M-.<br>M-_</td><td>.(vim中的重复)</td><td>插入上一个命令的最后一个参数到当前位置</td></tr>

<tr><td rowspan="3">撤销与重做</td><td>C-_<br/>C-x C-u</td><td>undo</td><td>增量撤销最近一次的操作<br>这个可以用来撤销 TAB 展开的路径!非常好用。</td></tr>
<tr><td>M-r</td><td>revert</td><td>当前行重置为最开始的内容</td></tr>
<tr><td>M-#</td><td># comment</td><td>

注释掉当前命令并进入下一行。

等同于:

1. 按下 `^a`,回到行首
2. 输入`#`,注释当前行
3. 按下 `Enter`,进入下一行

</td></tr>

<tr><td rowspan=6>自动补全</td><td>TAB</td><td>?</td><td>尝试自动补全到输入</td></tr>
<tr><td>M-?</td><td>?</td><td>直接显示可能的补全结果列表而不尝试补全到输入</td></tr>
<tr><td>M-*</td><td>*</td><td>将 M-? 的所有结果插入到输入</td></tr>
<tr><td>M-g</td><td>glob</td><td>将光标下的单词作为 GLOB 正则(并追加一个 *)来扩展出可能的文件名</td></tr>
<tr><td>C-x *</td><td>glob</td><td>将光标下的单词作为 GLOB 正则(不会自动追加一个 *)来扩展出可能的文件名,插入输入</td></tr>
<tr><td>C-x g</td><td>glob</td><td>将光标下的单词作为 GLOB 正则(不会自动追加一个 *)来列举出可能的文件名,不会插入</td></tr>

<tr><td rowspan="8">其它</td><td>C-l</td><td>?(cLear)</td><td>把当前行提到屏幕的最上端(类似清屏)</td></tr>
<tr><td>⌘k</td><td>?(Clear Buffer)</td><td>清屏</td></tr>
<tr><td>C-i</td><td>?</td><td>TAB</td></tr>
<tr><td>C-j</td><td>?</td><td>Enter</td></tr>
<tr><td>C-d</td><td>end-of-file</td><td>如果当前输入为空行,则返回 EOF 给输入,代表输入结束</td></tr>
<tr><td>C-v</td><td>verbatim</td><td>直接插入输入字符(取消特殊作用)。<br/>比如 C-v 后按 TAB 可以输入制表符</td></tr>
<tr><td>C-x C-e</td><td>editor</td><td>在<code>$EDITOR</code>编辑器中编辑当前命令,然后执行</td></tr>
<tr><td>C-x C-v</td><td>version</td><td>显示 bash 的版本</td></tr>
</table>
修改之后的:

{|
|+ BASH常用快捷键
! 分类 !! 按键 !! 助记 !! 说明
|-
| rowspan="8" | 光标移动 || C-a || anchor,^ || 光标移动到行首
|-
| C-e || end || 光标移动到行尾
|-
| C-f || forward || 光标向前(右)移动一个字符
|-
| C-b || backward || 光标向后(左)移动一个字符
|-
| M-f || forward || 光标向前(右)移动到单词结尾
|-
| M-b || backward || 光标向后(左)移动到单词开始
|-
| C-] 字符 || ? || 光标向右移动到`字符`出现的位置,即搜索
|-
| M-C-] 字符 || ? || 光标向左移动到`字符`出现的位置,即搜索
|-
| rowspan="13" | 文本改变 || C-d || delete || 删除光标所在位置的一个字符(光标下有字符的时候)
|-
| C-h || h(vim) || 删除光标所在位置前面的一个字符
|-
| C-w || word || 删除光标所在位置前面的一个单词(以空白字符为边界)
|-
| M-Backspace || word || 删除光标所在位置前面的一个单词
|-
| M-d || delete || 删除光标所在位置的一个单词
|-
| C-t || transpose || 交换光标所在位置的两个字符的位置
|-
| M-t || transpose || 交换光标所在位置的两个单词的位置
|-
| C-u || ?(kill Until beginning) || 删除光标前面的所有字符。
存入剪贴板。 |- | C-k || kill || 删除从光标开始后面的所有字符。
存入剪贴板。 |- | C-y || yank || 粘贴剪贴板的内容。 |- | M-u || uppercase || 使光标下的单词变成全大写 |- | M-l || lowercase || 使光标下的单词变成全小写 |- | M-c || capital || 使光标下的单词首字母大写,即标题体 |- | rowspan="4" | 历史命令 || C-p || previous || 前一个命令,相当于按“上”键。 |- | C-n || next || 后一个命令,相当于按“下”键。 |- | C-r || reverse || 搜索历史命令(从最近开始往回搜索)。
按下后输入字符开始搜索,然后按 ESC/TAB/方向键等授受。
按 Ctrl-G / Ctrl-C 取消搜索。 |- | M-.
M-_ || .(vim中的重复) || 插入上一个命令的最后一个参数到当前位置 |- | rowspan="3" | 撤销与重做 || C-_
C-x C-u || undo || 增量撤销最近一次的操作
这个可以用来撤销 TAB 展开的路径!非常好用。 |- | M-r || revert || 当前行重置为最开始的内容 |- | M-# || # comment || 注释掉当前命令并进入下一行。 等同于: 1. 按下 `^a`,回到行首 2. 输入`#`,注释当前行 3. 按下 `Enter`,进入下一行 |- | rowspan=6 | 自动补全 || TAB || ? || 尝试自动补全到输入 |- | M-? || ? || 直接显示可能的补全结果列表而不尝试补全到输入 |- | M-* || * || 将 M-? 的所有结果插入到输入 |- | M-g || glob || 将光标下的单词作为 GLOB 正则(并追加一个 *)来扩展出可能的文件名 |- | C-x * || glob || 将光标下的单词作为 GLOB 正则(不会自动追加一个 *)来扩展出可能的文件名,插入输入 |- | C-x g || glob || 将光标下的单词作为 GLOB 正则(不会自动追加一个 *)来列举出可能的文件名,不会插入 |- | rowspan="8" | 其它 || C-l || ?(cLear) || 把当前行提到屏幕的最上端(类似清屏) |- | ⌘k || ?(Clear Buffer) || 清屏 |- | C-i || ? || TAB |- | C-j || ? || Enter |- | C-d || end-of-file || 如果当前输入为空行,则返回 EOF 给输入,代表输入结束 |- | C-v || verbatim || 直接插入输入字符(取消特殊作用)。
比如 C-v 后按 TAB 可以输入制表符 |- | C-x C-e || editor || 在$EDITOR编辑器中编辑当前命令,然后执行 |- | C-x C-v || version || 显示 bash 的版本 |}