zsh vim 모드에서 명령 실행


10

zshvim mode, 내가 뭔가를 쓰기

foo foo bar bar

그런 다음 Esc일반 모드로 이동하여 입력하십시오. :

foo foo bar bar
execute: _

그럼, 내가 검색하고 대체 할, 내가 그렇게 할 수 가정 bar으로baz

foo foo bar bar
execute: s/bar/baz/g_

그런 다음 Enter 키를 누르려고하지만 작동하지 않습니다. 나는 + execute사용으로 만 돌아갈 수 있습니다 .Ctrlc

명령을 어떻게 실행할 수 있습니까?

나는 이것을 내 평범 .zshrc하고 전혀 시도 하지 않았다 .zshrc.

답변:


10

vicmd모드는 , 이름에도 불구하고, 바이올렛의 정상 모드 명령입니다. 시작 프롬프트는 :Vi의 ex-mode 명령이 아니라 ZLE (Zsh 's line editor) 명령 을 실행하기위한 것입니다 .

$ echo foo
execute: e_
edit-command-line          emacs-forward-word         end-of-history             end-of-line-hist           exchange-point-and-mark    execute-named-cmd          expand-history             expand-or-complete-prefix
emacs-backward-word        end-of-buffer-or-history   end-of-line                end-of-list                execute-last-named-cmd     expand-cmd-path            expand-or-complete         expand-word

Enter고유 한 접두사가 입력되면을 누르면 작동합니다 (예 :, ed일치하는 입력 edit-command-line한 다음 Enter작동 함). Tab일치하는 명령을 보려면를 누르십시오 .


감사. bash대신 다음 을 사용하는 이유 입니다 zsh.
pfnuesel

@pfnuesel입니까? Bash는 Vi의 ex 명령 사용을 지원합니까?
muru

1
입력 v하면 할 수 vim있는 모든 일을 입력 하고 수행 할 수 있습니다 vim.
pfnuesel

3
@pfnuesel 아, 맞습니다. Zsh에 있습니다. 기본적으로 활성화되어 있지 않습니다. 참조 unix.stackexchange.com/a/6622/70524
muru

@muru 귀하의 답변은 약간의 오해의 소지가 있습니다. "vicmd 모드"라고하는 것은 실제로 command키맵 입니다. 이는 "LEE" 와 같은 execute:ZLE 명령을 입력하라는 프롬프트를 표시합니다. vicmd키맵 이다 VI (m) 형 명령 모드 가공용. VI 모드에서 zsh을 사용하는 경우, 당신은 가능성이 사이에 앞뒤로 교환 수 있습니다 vicmd그리고 viins당신이 VI (m) 모드에서 명령 사이에 삽입 되돌려 등을 이동하는 것이 거의 같은 방법으로.
wjv
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.