
私は で zsh を使用していますzim
が、これは一般的に優れています。理想的には、 の umount のタブ補完で 内の項目のみを提案するようにしたいと思います/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/*"
デフォルト設定では、無視されない候補がない場合でも、無視されたパターンの補完を取得できます。
(この回答は、補完システムを使用する単純な zsh 用ですcompinit
。zim が何らかの理由で動作しなくなる可能性はありますが、その可能性は低いです。)