zen*_*ith 25 vim keyboard-shortcuts zsh environment-variables
我的.zshrc看起来像这样:
export EDITOR="/usr/bin/vim"
Run Code Online (Sandbox Code Playgroud)
现在,当我打开终端并输入键盘快捷键(例如ctrla转到行首)时,它不起作用。相反,字符串^A(或其他一些字符串,取决于我输入的快捷方式)被输入到终端:
emlai:~ % ^A
Run Code Online (Sandbox Code Playgroud)
export从 my 中删除单词.zshrc会使键盘快捷键正常工作:
EDITOR="/usr/bin/vim"
Run Code Online (Sandbox Code Playgroud)
导出EDITOR为其他东西而不是vim使键盘快捷键也可以工作,例如:
export EDITOR="/usr/bin/nano"
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况?
我也对此进行了测试bash,键盘快捷键在所有情况下都能正常工作。
Sté*_*las 28
zsh像大多数现代 shell 一样,可以在用于命令行编辑的两种不同键盘映射之间进行选择:vi一种和emacs一种。在某些 shell(如tcsh或readline基于shell 的 shell bash)中,emacs一个是默认的,可能也是您期望的。
使用zsh,emacs默认情况下您将获得模式,除非$EDITOR或$VISUAL包含vi(如果您是vi/ nvi/ vim/elvis用户(vimacs如果您$EDITOR也是……),则假定您更喜欢该模式)。/home/victor/bin/emacszshvi
无论 的值如何,要强制使用特定模式$EDITOR,请添加:
bindkey -e # for emacs
bindkey -v # for vi
Run Code Online (Sandbox Code Playgroud)
或者它们更便携的等价物:
set -o emacs
set -o vi
Run Code Online (Sandbox Code Playgroud)
到您的~/.zshrc. 看
info -f zsh -n Keymaps
Run Code Online (Sandbox Code Playgroud)
详情。