何らかの理由で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
関数がZシェルではなくBourne Againシェルであるためです。 ZLEにはそのようなものはありません。 (FreeBSDのAlmquistシェルで使用されているeditlineライブラリは似ていますが、同じではありません。はい。FreeBSD vi-histedit
'93 Kornvi-edit-and-accept
シェルも同じです。 Almquistシェルにはそのようなものはありません)。
あなたは殻の中に存在するものが普遍的であると誤って信じています。そうではありません。これはシェルごとに異なる領域です。 ZLE、GNU Readline、Editline、Watanabe シェル、および '93 Korn シェルは、コマンドライン編集においてすべて異なります。