항목을 숨기지 않도록 탭 완성을 수정하는 방법은 무엇입니까?


17

homebrew'ed zsh 4.3.12와 함께 Mac OS X에서 oh-my-zsh를 사용하고 있습니다. 나는 최근에 이상한 문제에 걸려 넘어졌다. 에서 scripts/not-used나는 여러 가지가 .R파일 :

breakdowns.R             eventloop.R              process-largeclients.R   process-qt.R
reprocess-pinning.R      calculate-qt-error.R     generate_decision_tree.R process-net.R
process-scalingexp.R

내가하려고 할 때, ls scripts/not-used/+ Tab최초의 완성은 ls scripts/not-used/_.R어디에서 _커서의 위치를 나타냅니다. Tab다시 누르면 다음과 같은 이상한 완성을 얻습니다.

$ ls scripts/not-used/.R                                                                          
breakdowns.R  eventloop.R

이 못생긴 (잘못된) 동작을 설정 해제하는 방법?

설정되는 옵션은 다음과 같습니다.

alwaystoend autocd autonamedirs autopushd cdablevars completeinword
correctall extendedglob extendedhistory noflowcontrol
histexpiredupsfirst histignoredups histignorespace histreduceblanks histverify
incappendhistory
interactive login longlistjobs monitor promptsubst 
pushdignoredups pushdminus pushdsilent pushdtohome
sharehistory shinstdin zle

2
어떻게 breakdowns.R eventloop.R잘못된 완성은? completeinword커서의 양쪽 끝에서 왼쪽과 오른쪽으로 완료 할 수 있으므로 옵션 설정을 해제하십시오 . 그 말, 내가 입력하면 그 pac와 같이 pacman, 및라는 명령 거기에 arpac다음, arpac완료 커서의 양쪽에 대신의 오른쪽에 발생하기 때문에 완성 목록에있을 것가.
Alexej Magura

나는 그 질문에 대해 몰랐다 ... 그래서, breakdowns.R eventloop.R불완전하다는 의미에서 잘못된 완성이다. 파일 목록을 자세히 살펴보면로 끝나는 2 개 이상이 있습니다 .R.
Nikola Knezevic

테스트 목적으로 zR, az, .R 및 z_test.R뿐만 아니라 나열된 파일과 동일한 이름을 가진 많은 파일을 만져 보았습니다 .z_test.R은 자동 완성을 시도하지 않습니다. 그러나 z, .R은 할 것입니다. 그것을 추측하는 것은 정규식 사고의 일종이다
드미트리 DB

이는 오래된 문제이지만 github.com/robbyrussell/oh-my-zsh/issues/1398 과 관련이있을 수 있지만 최신 버전은 유사한 완료 코드를 갖습니다. 확인을위한 해결 방법을 시도하지 않았습니다.
rjewell

답변:


1

문제는 zstylefor matcher-list에 있습니다.

에 다음을 추가 .zshrc하면 문제가 해결됩니다.

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

e:(기본 설정 대신은 r:) 문자열의 끝에 경기를 강제로.

옵션에 대한 자세한 내용은 ZSH : Completion Matching Control 문서 에서 찾을 수 있습니다 .


0

커서를 어디에 두 었는지 알았습니까? 모든 파일은 .R로 끝나므로 가능한 제안을 자동으로 추가합니다.

자동 완성은 Tshepang에서 설명한대로 "두 끝"을 사용하고 있습니다.

.R 이름없이이 폴더에 파일을 놓으면 .R 비트가 사라지는 것을 볼 수 있습니다.

솔직히, 자동 완성은 실제로 맹목적인 디렉토리 가정이 아닌 "완료"할 것이 필요합니다.


0

Gert가 수정에 적합 할 수 있습니다. 그러나 파일 목록이 불완전한 이유 (breakdowns.R 및 eventloop.R)는 해당 파일이 현재 작업 디렉토리에서 실행 가능으로 표시된 유일한 파일이기 때문입니다. "ls -l"로이를 확인하고 rwx와 같은 권한을 볼 수 있습니다. "./"가 없거나 PATH에 해당 디렉토리가 없으면이 두 파일도 나타나지 않을 것으로 예상됩니다.

 8 -rwxr--r-- 1 userbob    groupbob      4420 May 28 15:55 filebob.R
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.