我正在寻找zsh
将磁盘标签扩展到挂载点的功能:
示例:我的磁盘DISK-LABEL1
上安装有标签/run/media/god/DISK-LABEL1
。
是否有一个插件可以将输入 Like: 扩展 cat //DISK-LA<Tab>
为cat /run/media/god/DISK-LABEL1
?
”//“被选择作为触发这种类型的自动完成的示例......
答案1
如果你真的想触发完成//
,我想你必须修改_path_files
。我不推荐它。
或者也许可以通过定义file-patterns
风格,但我不知道如何。
如果您god
为 指定一个目录/run/media/god
,那么您可以使用~god
来引用该目录。无论您是否使用完成,这都有效。这/run/media/god
会产生如~god
您的提示中所示的副作用。
hash -d god=/run/media/god
答案2
一种方法是定义一个函数来执行您等待的操作:
mountbylabel () {
mount /run/media/god/$1
}
并将其放入您的.zshrc
.然后,为其创建一个完成函数:
#compdef mountbylabel
compadd "${(@f)$(ls /run/media/god)}"
_mountbylabel
并将其放入fpath 内某个名为的文件中。我将所有完成功能文件存储在其中~/.zsh/completions/
并具有
fpath=(~/.zsh/completions $fpath)
在我的.zshrc
。