由于某种原因,在使用 iTerm 时,我无法获得调用 Vim(我的编辑器)来使用Esc+ 的键绑定。v zsh
我又回到了极简.zshrc
文件,以确保这不是插件问题:
# If you come from bash you might have to change your $PATH.
export PATH=$HOME/bin:/usr/local/bin:/Users/user/go/bin:$PATH
export GOPATH=$HOME/go
export PATH=$PATH:/usr/local/kubebuilder/bin
export EDITOR="/usr/bin/vi"
# Path to your oh-my-zsh installation.
export ZSH="/Users/user/.oh-my-zsh"
ZSH_THEME="gnzh"
source $ZSH/oh-my-zsh.sh
set -o vi
但是在命令行上时,我似乎无法使用Esc+v打开编辑器,我不知道为什么。
如果我将外壳更改为bash
,它工作正常,所以这似乎是一个问题zsh
。
也尝试过bindkey -v
没有效果。
答案1
直接从联机帮助页复制粘贴zshcontrib(1)
(或info zsh edit-command-line
):
autoload edit-command-line
zle -N edit-command-line
bindkey -M vicmd v edit-command-line
答案2
我似乎无法使用Esc+v打开编辑器,我不知道为什么。
这是因为 GNU Readlineedit-and-execute-command
函数是 Bourne Again shell 的东西,而不是 Z shell 的东西。 ZLE没有这样的东西。 (FreeBSD 上的 Almquist shell 使用的 editline 库有一些相似但不相同的东西。它是vi-histedit
。FreeBSD '93 Korn shell 也是如此。Watanabe shell 及其 也是如此vi-edit-and-accept
,这又略有不同。但是 FreeBSD PD Korn shell 没有任何这样的东西,相比之下,Debian Almquist shell 也没有。)
你错误地认为存在于一个外壳中的东西是普遍的。它不是。这是一个因外壳而异的区域。在命令行编辑方面,ZLE、GNU Readline、Editline、Watanabe shell 和 '93 Korn shell 都是不同的。