Existe uma maneira (preferencialmente não-lúdica) de evitar correções de ortografia ao usar o comando 'mv' do zsh

4

Embora eu ame o zsh, e ache a correção ortográfica útil, é irritante corrigir as coisas que obviamente não devem ser corrigidas. Por exemplo, acabei de executar

mv iso_ iso

e respondeu

zsh: correct 'iso' to 'iso_' [nyae]?

Pense nisso. Corrigir 'iso' para 'iso_' significaria que eu estava tentando executar

mv iso_ iso_

que nunca faria sentido. Portanto, isso é realmente uma falha de design no zsh e deve ser corrigido em toda a linha. Mas, dado que não foi (pelo menos na versão que estou usando) e não é provável que seja, existe alguma configuração para corrigi-lo? Eu preferiria uma maneira não-kludgey de consertá-lo. Aliases para mv , por exemplo, são kludgey.

    
por iconoclast 17.07.2012 / 18:08

2 respostas

6

Bem, não use a opção correct_all se você não gostar do que faz.

FWIW, NÃO é definido por padrão. Há uma configuração popular na net (não vou dizer qual) que pensa por alguma razão que é uma idéia divertida para definir essa opção para todos ... ainda assim, não faz sentido para muitos aplicativos, no entanto. Faz com que todos os argumentos da linha de comando estejam sujeitos à correção ortográfica do nome do arquivo ... Isso é insano.

Para encurtar a história: Apenas setopt correct e NÃO setopt correctall .

Se você precisar de ajuda com a ortografia de nomes de arquivos, o sistema de conclusão do zsh poderá ajudá-lo com seus _approximate e _correct completers. Detalhes podem ser encontrados na página de manual zshcompsys(1) .

    
por 17.07.2012 / 21:51
5

Existe uma maneira fácil de corrigir isso. Para corrigir o comportamento de mv , cp e mkdir , adicione isso ao seu arquivo .zshrc:

alias mv='nocorrect mv'
alias cp='nocorrect cp'
alias mkdir='nocorrect mkdir'

Esta não é uma correção ideal por vários motivos, e o menor deles é que pode haver alguns momentos em que você faz deseja correção ortográfica para um comando mv . Por exemplo, se você estava tentando executar:

mv directory_a/sub/sub/some_file directory_b/sub/sub/

mas você digitou incorretamente um dos diretórios e acabou digitando

mv directory_a/sub/sub/some_file directry_b/sub/sub/

correção ortográfica pode ter sido útil. (Este é obviamente um exemplo artificial, mas você entendeu.)

    
por 17.07.2012 / 18:08