Como corrigir o término da tabulação para que não oculte entradas?

17

Estou usando oh-my-zsh no Mac OS X com o homebrew'ed zsh 4.3.12. Eu tropecei recentemente em um problema estranho. Em scripts/not-used , tenho vários arquivos .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

No entanto, quando tento o ls scripts/not-used/ + Tab , a primeira conclusão é ls scripts/not-used/_.R , em que _ representa a posição do cursor. Se eu pressionar Tab novamente, eu obtenho esta conclusão estranha:

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

Como desfazer esse comportamento feio (errado)?

As opções definidas são:

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
    
por Nikola Knezevic 14.10.2011 / 00:01

3 respostas

1

O problema está no zstyle da lista de correspondência.

Se você adicionar o seguinte ao seu .zshrc , ele será corrigido:

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

O e: (em vez do padrão r: ) força a correspondência ao final da string.

Os detalhes das opções podem ser encontrados no ZSH: Controle de correspondência de conclusão docs

    
por 17.04.2015 / 21:49
0

Você percebeu onde colocou o cursor? Como todos os arquivos terminam com .R, ele anexa automaticamente a sugestão possível para você.

O preenchimento automático está usando "ambas as extremidades", conforme descrito por Tshepang.

Tente colocar um arquivo nessa pasta sem o nome .R e você verá que o .R desaparece.

Honestamente, o preenchimento automático realmente precisa de algo para "completar" e não uma suposição de diretório cego.

    
por 18.12.2014 / 00:13
0

Gert pode estar certo para a correção. No entanto, suspeito que o motivo da natureza incompleta da lista de arquivos (breakdowns.R e eventloop.R) seja devido a esses arquivos serem os únicos arquivos no diretório de trabalho atual marcados como executáveis. Você pode confirmar isso com um "ls -l" e olhar as permissões para algo como rwx. Se você não tem "./" ou esse diretório explicitamente no PATH, então eu esperaria que esses dois arquivos não aparecessem também.

 8 -rwxr--r-- 1 userbob    groupbob      4420 May 28 15:55 filebob.R
    
por 29.05.2015 / 12:14