
Я использую 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 каким-то образом заставляет его не работать.)