zsh 자동 완료 이벤트 지정자


1

( 추가 컨텍스트에 대한 내 이전 질문 을 참조하십시오 ).

나는 zsh에서로 마이 그 레이션 bash하고 사용하고 oh-my-zsh있습니다. 내 zsh경력이 다음과 같이 보일 때 :


git status
git add -A
git commit

나는 다시 뛰고 싶다 git add -A. 그렇게하기 위해서, 나는 사용할 수 !?git add있어야한다.

!? str [?] str을 포함하는 가장 최근의 명령을 참조하십시오. 뒤에 오는 '?' 이 참조 다음에 수식 자 또는 str의 일부로 간주되지 않는 텍스트가 오는 경우 필요합니다.

zsh 이벤트 지정자에 대한 링크가 여기에 있습니다 .

불행히도, 나는 이것을 할 수 없다 - !?git add나는 타격 할 때 ' ', 가장 최근의 명령 일치 git(즉, 자동 완성 git commit) 명령 을 자동 완료 한다. 필자는이 자동 완성으로 인해 이벤트 지정자를 올바르게 사용할 수 없습니다.

oh-my-zsh기능 이 있다고 가정 합니다. 근원 grep에서 'complet'를위한 oh-my-zsh것이 어디에서나 나에게 다가 가지는 않을 지라도 나는 어디를보아야할지 모른다 .

내 질문 :이 기능을 끄려면 어떻게해야합니까? 또는 그것이 뭔가 알려지지 않은 경우, 내가 어디에서보아야하는지 - 공백이 입력되었을 때이 자동 완성을 구현하려고한다면 oh-my-zsh프레임 워크 에서 논리적 인 장소는 어디 일까요?

답변:


1

oh-my-zsh / lib / key-bindings.zsh를 보면 라인이 보일 것입니다.

bindkey ' ' magic-space    # also do history expansion on space

이 기능을 제거하려면 주석 처리하십시오.


0

이 고양이를 피부에 몇 가지 다른 방법이 있습니다 :

!{?git add?}

열린 중괄호는 첫 번째 공간에서 마법 공간 확장을 억제하고 닫는 중괄호 뒤에 탭을 사용하면 마법처럼 같은 줄에서 확장됩니다. 물론 !{?git a?}충분할 것입니다.

!?add

git이 경우에는 전혀 필요하지 않습니다 . 두 번째 후에는 dreturn 또는 tab을 누를 수 있습니다. 당신과 명령 사이에 많은 역사가 있다면, 이것은 명령의 add어느 시점에서 세 문자 를 발견 할 수 있으므로 문제가 될 수 있습니다.

zsh 히스토리 확장 은 다음의 문서에 자세히 설명되어 있습니다.

http://zsh.sourceforge.net/Doc/Release/Expansion.html#History-Expansion

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.