Bash有两种操作模式,分别是emacs-mode
和vi-mode
,在默认情况下使用的是emacs-mode
,通过修改~/.bashrc
可以开启vi-mode,方法是在~/.bashrc
中写入
set -o vi
然后,在终端执行source ~/.bashrc
或者是重启终端使配置生效。
之后,你每次打开终端,默认进入的都是insert-mode
,按<Esc>
则进入normal-mode
。如果你没有设置EDITOR
,在emacs-mode下默认的编辑器是nano
,而在vi-mode下则是vi
。也就是说,在vi-mode下按<Esc>+v
,默认会打开vi,这是因为Bash的bashline.c
中存在下面这个函数调用
rl_bind_key_if_unbound_in_map (‘v’, vi_edit_and_execute_command, vi_movement_keymap);
默认的vi比较难用,可以继续向~/.bashrc
中写入
EDITOR=vim
export EDITOR
设置默认编辑器为vim。
Zsh在安装了oh-my-zsh以后,只需要在plugins那里添加vi-mode
,然后在终端执行source ~/.zshrc
或者是重启终端就开启vi-mode了。
最后附上Bash在vi-mode下的快捷键bash-vi-editing-mode-cheat-sheet,基本上与vim是一致的。