¿Cómo puedo realizar el desmontaje completo con tabulaciones, restringiéndolo a volúmenes en un directorio específico?

¿Cómo puedo realizar el desmontaje completo con tabulaciones, restringiéndolo a volúmenes en un directorio específico?

Yo uso zsh con zim, que en general es excelente. Idealmente, me gustaría desmontar la finalización de pestañas para sugerir solo elementos en formato /run/media/$USER. En el siguiente ejemplo, se trata de un único volumen denominado L_drive.

$ cd /run/media/sparhawk
$ ls
L_drive
$ umount <Tab>
 -- device label --
binfmt_misc  debugfs      fusectl      mqueue       run          systemd-1                          
cgroup       dev          gvfsd-fuse   proc         securityfs   tmpfs                              
configfs     devpts       hugetlbfs    pstore       sys                                           
 -- device path --
/dev/sda2                 /dev/sdb5                 /dev/sdb6                 /dev/sdc1               
 -- mount point --
/                                 /run/media/sparhawk/L_drive       /sys/fs/cgroup/pids             
/dev                              /run/user/1000                    /sys/fs/cgroup/systemd          
/dev/hugepages                    /run/user/1000/gvfs               /sys/fs/fuse/connections        
/dev/mqueue                       /sys                              /sys/fs/pstore                  
/dev/pts                          /sys/fs/cgroup                    /sys/kernel/config              
/dev/shm                          /sys/fs/cgroup/blkio              /sys/kernel/debug               
/HDD                              /sys/fs/cgroup/cpu,cpuacct        /sys/kernel/security            
/home                             /sys/fs/cgroup/cpuset             /tmp                            
L_drive                           /sys/fs/cgroup/devices            /var/cache                      
/proc                             /sys/fs/cgroup/freezer            /var/log                        
/proc/sys/fs/binfmt_misc          /sys/fs/cgroup/memory             /var/tmp                        
/run                              /sys/fs/cgroup/net_cls                                            

Hay muchas cosas allí que nunca querría completar con pestañas. Me gustaría eliminar todas estas sugerencias y dejar solo la función de tabulación para la ruta absoluta /run/media/sparhawk/L_drive.

FWIW zim tiene lo siguientebichodonde no se encuentra la ruta relativa después de escribir una letra.

$ umount L<Tab>
 -- no matches found --

pero suponiendo que pueda eliminar todas las demás sugerencias, dejando solo la ruta absoluta en /run/media/$USER/*, entonces este error es discutible.

Respuesta1

Puedes usar elignored-patternsestilopara excluir algunas terminaciones.

zstyle ':completion:*:umount:*' ignored-patterns "^/run/media/$USER/*"

Con la configuración predeterminada, aún puede completar patrones ignorados si no hay ningún candidato no ignorado.

(Esta respuesta es para zsh simple que usa el compinitsistema de finalización. Es posible, pero poco probable, que zim de alguna manera haga que no funcione).

información relacionada