2014-06-22 7 views
1

osx를 실행 중이며 oh-my-zsh도 설치되어 있습니다."andr"탭은 android 또는 nothing 대신에 "_xrandr"로 완성됩니다.

어쨌든 "andr"과 같은 입력을 완료하고 탭을 완료하면 아무 것도 수행하지 않고 이 내 경로에없는 대신 _xrandr으로 자동 완성됩니다. 나는 이유를 정말로 모른다.

그 이유는 무엇입니까?

+1

'android' 명령이 경로에 있습니까? – Guillaume

+0

그것은 중요하지 않지만 관련성이 있어야합니까? 아무것도하지 말아야합니까? (그냥 질문 제목을 반영하도록 수정했습니다) – randomafk

+0

경로 상에 없다면,'zsh'은 그것을 완료 할 수 없습니다! 'export PATH = $ PATH : '로'.zshrc'를 편집하여 명령을 추가 할 수 있습니다. – Guillaume

답변

2

oh-my-zsh은 입력 된 단어의 왼쪽에 완료가 없는지 확인한 후 완료를 설정합니다.

~/.oh-my-zsh/lib/completion.zsh에서 일어나는 : 여기

## case-insensitive (all),partial-word and then substring completion 
if [ "x$CASE_SENSITIVE" = "xtrue" ]; then 
    zstyle ':completion:*' matcher-list 'r:|[._-]=* r:|=*' 'l:|=* r:|=*' 
    unset CASE_SENSITIVE 
else 
    zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*' 
fi 

중요한 부분은 'l:|=* r:|=*'이다. 이 동작을 싫어하면 zstyle ':completion:*' matcher-list에서이 동작을 제거하기 만하면됩니다. 이 작업을 수행하는 가장 좋은 방법은, 예를 own-completion.zsh를 들어, 확장 .zsh~/.oh-my-zsh/custom에서 파일을 만드는 것입니다 :

zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 

당신은 또한 'm:{a-zA-Z}={A-Za-z}'을 제거하거나이를 원하지 않는 경우는, 대소 문자를 구별 완료입니다.

~/.oh-my-zsh/lib/completion.zsh에서 직접 변경할 수 있지만 oh-my-zsh을 업데이트하면 덮어 쓰기가됩니다.