Posso ignorar os diretórios __pycache__ no bash-completion e grep?

3

Eu ignorei __pycache__ no meu git repos e no% wildmenu do vi . O último local em que esses diretórios poluem o meu fluxo de trabalho é quando ele percorre recursivamente os arquivos do projeto e ao usar o preenchimento automático da guia na linha de comando.

Existe uma maneira de configurar ferramentas de linha de comando como grep e bash-completion para ignorar diretórios universalmente?

    
por drs 12.08.2015 / 00:40

2 respostas

2

Com bash , você pode fazer a globulação de arquivos largar __pycache__ , definindo:

$ export GLOBIGNORE=__pycache__

Agora, se você emitir:

$ ls __*
ls: cannot access __*: No such file or directory

Também com bash Você pode usar a variável de ambiente FIGNORE para pular sufixos de arquivo. Pode ser usado para filtrar um pouco o diretório ...

$ mkdir __pycache__
$ export FIGNORE=__pycache__

Em seguida, ao emitir:

$ ls __ guia

será concluído para

$ ls __pycache__

No entanto, se for prefixado (como usar um caminho):

$ ls ./__ guia

não será concluído.

Você pode alias grep para excluir os diretórios __pycache__ :

alias grep='grep --exclude-dir="__pycache__"'

Você também pode usar a resposta de Madhavan Kumar para alterar a conclusão de grep e os outros comandos que deseja filtrar, mas não se esqueça de que eles precisarão ser definidos em um arquivo rc e originados após a origem de bash_completion , para aplicar suas substituições.

FIGNORE
    A colon-separated list of suffixes to ignore when performing filename 
completion (see READLINE below). A filename whose suffix matches one of 
the entries in FIGNORE is excluded from the list of matched filenames. A 
sample value is ".o:~". 

GLOBIGNORE
    A colon-separated list of patterns defining the set of filenames to
    be ignored by pathname expansion. If a filename matched by a pathname 
    expansion pattern also matches one of the patterns in GLOBIGNORE, it is 
    removed from the list of matches. 
    
por 12.08.2015 / 01:54
3

Você pode alterar o compsec para esses comandos, ignorá-los.

Digamos, por exemplo, para obter o compsec existente, use

complete -p grep

retorna,

 complete -F _longopt grep

Agora adicione a opção excluir a este comando como

complete -F _longopt -X '@(__pycache__|more__patterns)' grep

Você não verá esses nomes de arquivo na guia de imprensa

    
por 12.08.2015 / 01:25