4.1 设置编辑模式

既然 bash 与 zsh 都提供了 Emacs 和 vi 两种编辑模式,那么如何在这两种编辑模式之间进行选择呢?一般而言,在 Emacs 模式下,编辑操作显得更加自然,上手起来相对也更快一些。如果你从来没有使用过 vi 编辑器,那么选用 vi 编辑模式,一开始将会有找不到北的感觉。在 vi 模式下,按键要么能插入文本,要么能执行编辑指令,你需要在两种状态间不断来回切换。Emacs 模式跟 vi 模式相比更加简单,在使用上也会更容易一些。因此,推荐大家优先选择使用 Emacs 编辑模式。这也是 bash 和 zsh 都将 Emacs 作为默认的命令行编辑模式的原因。但是,假如你对 vi 的操作方法非常感兴趣的话,那么不妨选择使用 vi 编辑模式,去做那个敢于吃螃蟹的人。

bash 和 zsh 两个都支持使用 set 指令来设置命令行编辑模式。例如,假如我们想要设为 vi 编辑模式,只需执行:

xiaodong@codeland:~$ set -o vi

要重新设为 Emacs 编辑模式,则执行:

xiaodong@codeland:~$ set -o emacs

在 zsh 中,我们也可以通过 bindkey 来设置 Emacs 或 vi 编辑模式。

xiaodong@codeland:~$ bindkey -e

该命令将 Emacs 作为编辑模式。如果打算设置为 vi 编辑模式,那么使用 -v 选项即可:

xiaodong@codeland:~$ bindkey -v

为了永久保存设置,我们需要将 bash 的设置选项添加到 ~/.bashrc 配置文件。

而 zsh 的设置选项则需添加到 ~/.zshrc 配置文件。