Wie kann ich die Umount-Operation mit der Tabulatortaste vervollständigt und sie auf Volumes in einem bestimmten Verzeichnis beschränkt halten?

Wie kann ich die Umount-Operation mit der Tabulatortaste vervollständigt und sie auf Volumes in einem bestimmten Verzeichnis beschränkt halten?

Ich verwende zsh mit zim, was im Allgemeinen ausgezeichnet ist. Idealerweise würde ich die Tab-Vervollständigung von umount so einrichten, dass nur Elemente in vorgeschlagen werden /run/media/$USER. Im folgenden Beispiel handelt es sich um ein einzelnes Volume mit dem Namen 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                                            

Es gibt dort eine Menge Sachen, die ich niemals per Tab vervollständigt haben möchte. Ich möchte alle diese Vorschläge entfernen und die Tab-Vervollständigung nur für den absoluten Pfad belassen /run/media/sparhawk/L_drive.

FWIW zim hat folgendesInsektbei denen der relative Pfad nach der Eingabe eines Buchstabens nicht gefunden wird.

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

aber vorausgesetzt, dass ich alle anderen Vorschläge entfernen kann und nur den absoluten Pfad belasse /run/media/$USER/*, ist dieser Fehler hinfällig.

Antwort1

Du kannst den ... benutzenignored-patternsStilum einige Vervollständigungen auszuschließen.

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

Mit den Standardeinstellungen können Sie weiterhin eine Vervollständigung für ignorierte Muster erhalten, wenn kein nicht ignorierter Kandidat vorhanden ist.

(Diese Antwort gilt für einfaches zsh unter Verwendung des compinitVervollständigungssystems. Es ist möglich, aber unwahrscheinlich, dass zim irgendwie dafür sorgt, dass es nicht funktioniert.)

verwandte Informationen