zsh vim 모드에서 명령 실행


10

년 zsh에 vim 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.