Używam oh-my-zsh na Mac OS X z homebrew'ed zsh 4.3.12. Ostatnio natknąłem się na dziwny problem. W scripts/not-used
Mam kilka .R
plików:
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
Jednak gdy próbuję ls scripts/not-used/
+, Tabpierwsze zakończenie jest ls scripts/not-used/_.R
tam, gdzie _
reprezentuje pozycję kursora. Jeśli Tabponownie nacisnę, otrzymam to dziwne zakończenie:
$ ls scripts/not-used/.R
breakdowns.R eventloop.R
Jak usunąć to brzydkie (złe) zachowanie?
Ustawione opcje to:
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
zsh
autocomplete
oh-my-zsh
Nikola Knezevic
źródło
źródło
breakdowns.R eventloop.R
nieprawidłowe uzupełnienie? Spróbuj odznaczyćcompleteinword
opcję, ponieważ pozwala to na zakończenie z obu końców kursora, z lewej i prawej strony. Oznacza to, że jeśli wpiszeszpac
jako inpacman
, a zostanie wywołane poleceniearpac
,arpac
pojawi się na liście uzupełnień, ponieważ uzupełnianie następuje po obu stronach kursora zamiast tylko po prawej stronie.breakdowns.R eventloop.R
jest to niepoprawne uzupełnienie w sensie niekompletności. Jeśli przyjrzysz się uważnie liście plików, jest ich więcej niż tylko 2, na końcu.R
.Odpowiedzi:
Problem leży w liście
zstyle
for matcher.Jeśli dodasz do tego
.zshrc
, to naprawi to:e:
(Zamiast domyślnegor:
) zmusić meczu do końca łańcucha.Szczegóły dotyczące opcji można znaleźć w dokumentach ZSH: Completion Matching Control
źródło
Czy zauważyłeś, gdzie umieścił kursor? Ponieważ wszystkie pliki kończą się rozszerzeniem .R, automatycznie dołącza możliwą sugestię.
Autouzupełnianie używa „obu końców” zgodnie z opisem Tshepanga.
Spróbuj upuścić plik do tego folderu bez nazwy .R, a zobaczysz, że bit .R zniknie.
Szczerze mówiąc, autouzupełnianie faktycznie potrzebuje czegoś do „uzupełnienia”, a nie ślepego założenia katalogu.
źródło
Gert może być odpowiedni do poprawki. Podejrzewam jednak, że przyczyną niekompletności listy plików (breakdowns.R i eventloop.R) jest to, że pliki te są jedynymi plikami w bieżącym katalogu roboczym, które są oznaczone jako pliki wykonywalne. Możesz to potwierdzić za pomocą „ls -l” i spojrzeć na uprawnienia dla czegoś takiego jak rwx. Jeśli nie masz „./” lub tego katalogu wyraźnie w PATH, oczekiwałbym, że te dwa pliki też się nie pojawią.
źródło