ZSH의 전체 화면 편집기에서 명령 줄을 편집하는 방법은 무엇입니까?


52

내가 치면 배쉬에서, VI 모드를 사용하여, Esc, v, 내 현재의 명령 줄에 지정된 편집기에서 열립니다 $EDITOR나는 쉘에 반환하고 실행하는 명령을 '저장'하기 전에 전체 화면으로 편집 할 수 있어요.

zsh에서 유사한 동작을 수행하려면 어떻게해야합니까? v명령 모드에서 타격을 가하면 EDITOR환경 변수가 설정되어 있어도 벨이 나타나지 않습니다 .

답변:


36

보기 edit-command-line에서 zshcontrib.

bindkey -M vicmd v edit-command-line

13
(그냥 명확히하기 위해) : 활성화하려면 edit-command-line같은 "위젯"당신이 필요합니다 뭔가 autoload edit-command-line; zle -N edit-command-line당신의 일에 zsh을 초기화 파일합니다 (참조 ZLE 함수 섹션zshcontrib문서 ).
크리스 존슨

일단 설치되면 어떻게 활성화합니까? 이맥스 스타일의 대답에있는 바인딩 키가 나에게 의미가 있습니다. 그러나 bindkey -M vicmd v설정 내용에 대한 참조를 찾을 수 없습니다 .
Mat Schaffer

@MatSchaffer Bash와 동일 : vi 모드 인 경우을 <ESC>눌러 삽입 모드에서 명령 모드로 들어간 다음 v시각적 모드 ( Meta-v동일 함)로 또는 v이미 명령 모드에있는 경우를 누르십시오. Emacs 모드를 사용하는 경우 일반적인 바인딩은 C-x C-e입니다.
ephemient

1
v 키를 다시 매핑한다는 것은 더 이상 비주얼 모드를 사용할 수 없다는 것을 의미하므로 스페이스 바로 다시 매핑하는 것이 좋습니다 (일반 모드에서 유용한 기능은 없음)bindkey -M vicmd ' ' edit-command-line
gib


23

fc히스토리에서 마지막 명령을 편집하는 데 사용할 수 있습니다 . 동일한 명령을 편집하는 것과 동일하지 않지만 Enter 키를 빠르게 누르면 현재 명령이 기록의 마지막 명령이됩니다.


14

이것은 ~/.zshrcbash에서 동일한 동작을 얻기 위해 추가 한 전체 구성입니다 .

export VISUAL=vim
autoload edit-command-line; zle -N edit-command-line
bindkey -M vicmd v edit-command-line

이전 설명에 따라 Oh my ZSH 또는 Prezto를 사용하는 경우 기본적으로 구성됩니다 . 후자는 editor모듈을로드 vi하거나 vim명령 모드로 선택해야합니다.
AL X

이 답변을 받아 들일 수 있도록 투표하면 설명 된 모든 구성으로 내 질문을 해결했습니다. 감사.
Laurent
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.