J'utilise oh-my-zsh sur Mac OS X avec homebrew'ed zsh 4.3.12. Je suis récemment tombé sur un problème étrange. Dans scripts/not-used
j'ai plusieurs .R
fichiers:
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
Cependant, lorsque j'essaie ls scripts/not-used/
+ Tabla première complétion est l' ls scripts/not-used/_.R
endroit où _
représente la position du curseur. Si j'appuie à Tabnouveau, j'obtiens cet achèvement bizarre:
$ ls scripts/not-used/.R
breakdowns.R eventloop.R
Comment désamorcer ce vilain (mauvais) comportement?
Les options définies sont les suivantes:
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
la source
la source
breakdowns.R eventloop.R
achèvement incorrect? Essayez de désactiver l'completeinword
option, car cela permet de terminer les deux extrémités du curseur, à gauche et à droite. Cela signifie que si je tapepac
comme danspacman
, et qu'il y a une commande appeléearpac
, alorsarpac
sera dans la liste des achèvements, car l'achèvement se produit des deux côtés du curseur au lieu de seulement à droite.breakdowns.R eventloop.R
c'est un achèvement incorrect, dans le sens de l'incomplétude. Si vous regardez attentivement la liste des fichiers, il y a plus que ces 2, se terminant par.R
.Réponses:
Le problème réside dans la
zstyle
liste de correspondance for.Si vous ajoutez ce qui suit à votre
.zshrc
, cela le réparera:Le
e:
(au lieu de la valeur par défautr:
) force la correspondance à la fin de la chaîne.Les détails des options se trouvent dans les documents ZSH: Completion Matching Control
la source
Avez-vous remarqué où il a placé votre curseur? Étant donné que tous les fichiers se terminent par .R, il ajoute automatiquement la suggestion possible pour vous.
La saisie semi-automatique utilise "les deux extrémités" comme décrit par Tshepang.
Essayez de déposer un fichier dans ce dossier sans nom .R, et vous verrez que le bit .R disparaîtra.
Honnêtement, la saisie semi-automatique a réellement besoin de quelque chose pour "compléter" et non pas une hypothèse de répertoire aveugle.
la source
Gert pourrait bien avoir raison pour le correctif. Cependant, je soupçonne que la raison de la nature incomplète de la liste des fichiers (pannes.R et eventloop.R) est due au fait que ces fichiers sont les seuls fichiers du répertoire de travail actuel qui sont marqués comme exécutables. Vous pouvez le confirmer avec un "ls -l" et regarder les autorisations pour quelque chose comme rwx. Si vous n'avez pas "./" ou ce répertoire explicitement dans PATH, je m'attendrais à ce que ces deux fichiers n'apparaissent pas non plus.
la source