Estoy usando oh-my-zsh en Mac OS X con homebrew'ed zsh 4.3.12. Recientemente me topé con un problema extraño. En scripts/not-usedtengo varios .Rarchivos:
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
Sin embargo, cuando intento ls scripts/not-used/+ Tabla primera finalización esls scripts/not-used/_.R donde _representa la posición del cursor. Si presiono Tabnuevamente, obtengo esta extraña terminación:
$ ls scripts/not-used/.R
breakdowns.R eventloop.R
¿Cómo deshacer este comportamiento feo (incorrecto)?
Las opciones que se configuran son:
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
fuente
fuente

breakdowns.R eventloop.Rfinalización incorrecta? Intente desactivar lacompleteinwordopción, ya que esto permite completar desde ambos extremos del cursor, izquierda y derecha. Eso significa que si escribopaccomopacman, y hay un comando llamadoarpac,arpacestará en la lista de finalizaciones, ya que la finalización se produce en ambos lados del cursor en lugar de solo a la derecha.breakdowns.R eventloop.Res una finalización incorrecta, en el sentido de incompleto. Si observa detenidamente la lista de archivos, hay más que solo esos 2, que terminan en.R.Respuestas:
El problema radica en el
zstylelista de matcher.Si agrega lo siguiente a su
.zshrc, lo solucionará:El
e:(en lugar del predeterminador:) fuerza la coincidencia al final de la cadena.Los detalles de las opciones se pueden encontrar en los documentos de ZSH: Completion Matching Control
fuente
¿Notaste dónde puso tu cursor? Como todos los archivos terminan con .R, se agrega automáticamente la posible sugerencia para usted.
El autocompletado está usando "ambos extremos" como lo describe Tshepang.
Intente colocar un archivo en esta carpeta sin un nombre .R, y verá que ese bit .R desaparece.
Honestamente, el autocompletado realmente necesita algo para "completar", no una suposición de directorio ciego.
fuente
Gert bien podría estar en lo cierto para la solución. Sin embargo, sospecho que la razón de la naturaleza incompleta de la lista de archivos (breakdowns.R y eventloop.R) se debe a que esos archivos son los únicos archivos en el directorio de trabajo actual que están marcados como ejecutables. Puede confirmar esto con un "ls -l" y ver los permisos para algo como rwx. Si no tiene "./" o ese directorio explícitamente en PATH, entonces esperaría que esos dos archivos tampoco aparezcan.
fuente