Posso alterar como a conclusão do arquivo é exibida?

1

Eu posso fazer a conclusão do processo mais útil fazendo zstyle ':completion:*:processes' command 'ps -u $USER -o pid,%cpu,tty,cputime,cmd' . Existe alguma maneira de fazer algo semelhante para a conclusão de arquivos, como usar ls -l ou exa ou algo assim?

    
por Caagr98 10.09.2017 / 11:23

1 resposta

1

A partir de spelunking em zshall(1) (por zsh 5.4.2 , nenhuma ideia de quando esse recurso foi adicionado) pode-se encontrar

   file-list
          This style controls whether files completed using  the  standard
          builtin  mechanism  are to be listed with a long list similar to
          ls -l.  Note that this feature uses the  shell  module  zsh/stat
          for  file  information;  this  loads the builtin stat which will
          replace any external stat executable.  To avoid this the follow-
          ing code can be included in an initialization file:

                 zmodload -i zsh/stat
                 disable stat

          The style may either be set to a 'true' value (or 'all'), or one
          of the values 'insert' or 'list', indicating that files  are  to
          be  listed in long format in all circumstances, or when attempt-
          ing to insert a file name, or when listing  file  names  without
          attempting to insert one.

Então, usando isso, onde no último comando ls blah/ tab foi digitado:

$ PS1='%% ' zsh -f
% autoload -U compinit && compinit
% zstyle ':completion:*' file-list all
% mkdir blah
% touch blah/{a,b,c}
% ls blah/
-rw-r--r--   1 jhqdoe    grp             0 Sep 10 08:36 a
-rw-r--r--   1 jhqdoe    grp             0 Sep 10 08:36 b
-rw-r--r--   1 jhqdoe    grp             0 Sep 10 08:36 c
    
por 10.09.2017 / 17:40