zshのViコマンドライン編集モードで外部エディタを呼び出す

zshのViコマンドライン編集モードで外部エディタを呼び出す

何らかの理由で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 シェルは、コマンドライン編集においてすべて異なります。

関連情報