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 Readline edit-and-execute-command함수가 Z 쉘이 아닌 Bourne Again 쉘이기 때문입니다. ZLE에는 그런 것이 없습니다. (FreeBSD의 Almquist 쉘에서 사용하는 editline 라이브러리는 비슷하지만 동일하지는 않습니다. 그렇습니다 vi-histedit. FreeBSD '93 Korn 쉘도 마찬가지입니다. Watanabe 쉘도 마찬가지고 vi-edit-and-accept, 이것도 약간 다릅니다. 그러나 FreeBSD PD Korn 쉘에는 아무 것도 없습니다. 대조적으로 Debian Almquist 쉘에는 그런 것이 없습니다).

당신은 껍질 속에 존재하는 것이 보편적이라고 잘못 믿고 있습니다. 그렇지 않습니다. 이것은 껍질마다 다른 영역입니다. ZLE, GNU Readline, Editline, Watanabe 쉘 및 '93 Korn 쉘은 명령줄 편집에 있어서 모두 다릅니다.

관련 정보