특정 디렉터리의 볼륨으로 제한하여 umount 탭을 완료하려면 어떻게 해야 합니까?

특정 디렉터리의 볼륨으로 제한하여 umount 탭을 완료하려면 어떻게 해야 합니까?

나는 zsh를 와 함께 사용하는데 zim, 이는 일반적으로 훌륭합니다. 이상적으로는 의 항목만 제안하기 위해 탭 완성 기능을 마운트 해제하고 싶습니다 /run/media/$USER. 다음 예에서는 이름이 단일 볼륨입니다 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                                            

탭을 완료하고 싶지 않은 내용이 많이 있습니다. 이러한 제안을 모두 제거하고 절대 경로에 대한 탭 완성만 남겨두고 싶습니다 /run/media/sparhawk/L_drive.

FWIW zim에는 다음이 있습니다.벌레문자를 입력한 후 상대 경로를 찾을 수 없습니다.

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

하지만 다른 모든 제안을 제거하고 에 절대 경로만 남겨둔다고 가정하면 /run/media/$USER/*이 버그는 문제가 됩니다.

답변1

당신은 사용할 수 있습니다ignored-patterns스타일일부 완료를 제외합니다.

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

기본 설정에서는 무시되지 않은 후보가 없는 경우에도 무시된 패턴에 대한 완성을 얻을 수 있습니다.

(이 답변은 compinit완성 시스템을 사용하는 일반 zsh에 대한 것입니다. zim으로 인해 작동하지 않을 수도 있지만 가능성은 낮습니다.)

관련 정보