我的.zshrc
看起来像这样:
export EDITOR="/usr/bin/vim"
现在,当我打开终端并输入键盘快捷键(例如ctrla转到行首)时,它不起作用。相反,字符串^A
(或其他字符串,取决于我输入的快捷方式)被输入到终端:
emlai:~ % ^A
export
从 my 中删除单词.zshrc
可以使键盘快捷键正常工作:
EDITOR="/usr/bin/vim"
导出EDITOR
为其他内容vim
也可以使键盘快捷键起作用,例如:
export EDITOR="/usr/bin/nano"
为什么会出现这种情况?
我也对此进行了测试bash
,并且键盘快捷键在所有情况下都可以正常工作。
答案1
zsh
与大多数现代 shell 一样,可以在两种不同的键盘映射之间进行选择以进行命令行编辑:一种vi
和emacs
一种。在某些 shell(例如基于tcsh
或readline
- 的 shell,如bash
)中,该emacs
shell 是默认的,并且可能是您期望的 shell。
使用 时zsh
,默认情况下您会获得emacs
模式,除非或包含(如果您是 // /$EDITOR
用户$VISUAL
(vi
尽管vi
也nvi
和if是... ),假设您更喜欢该模式)。vim
elvis
vimacs
$EDITOR
/home/victor/bin/emacs
zsh
vi
要强制使用特定模式而不考虑 的值$EDITOR
,请添加 tcsh-style:
bindkey -e # for emacs
bindkey -v # for vi
或 ksh 风格:
set -o emacs
set -o vi
给你的~/.zshrc
.看
info -f zsh -n Keymaps
了解详情。