自定义 ZSH 波浪号扩展
customizing ZSH tilde expansion
上下文
这涉及 ZSH 波浪号扩展(如 bash tilde expansion)。
示例:~http
扩展为 /srv/http
,这是(大致)在 /etc/passwd
中设置的用户 http
的家。
我想做什么
我想配置 ZSH 以获得我希望的任何文件名波浪线扩展。
我的 .zshrc
中的 设置 alias ~foo /foo/bar
与 类似。
我不想要的
我可以创建(作为 root)用户 foo
并将它的主页设置为 /foo/bar
但是因为 any 用户应该能够做到这一点,这样的解决方案是不可接受的。
另外,这与~
到$HOME
的完成无关。
其他
此 post 讨论 bash 波浪线扩展的性质:Meaning of tilde in Linux bash (not home directory).
感谢您的回答! ;-)
您可以使用其中一种(或两种)方式:
hash -d foo=/foo/bar
(hash
builtin command)
foo=/foo/bar/
现在,我们也可以使用 cd ~foo
将当前目录更改为 /foo/bar
。
它在 zsh 中被称为 “Static named directories”。
注意:当 CDABLE_VARS
shell option 处于活动状态时,如果目录(本例中为 /foo/bar
)存在,我们甚至可以在上面的示例中执行 cd foo
而不是 cd ~foo
.
上下文
这涉及 ZSH 波浪号扩展(如 bash tilde expansion)。
示例:~http
扩展为 /srv/http
,这是(大致)在 /etc/passwd
中设置的用户 http
的家。
我想做什么
我想配置 ZSH 以获得我希望的任何文件名波浪线扩展。
我的 .zshrc
中的 设置 alias ~foo /foo/bar
与 类似。
我不想要的
我可以创建(作为 root)用户 foo
并将它的主页设置为 /foo/bar
但是因为 any 用户应该能够做到这一点,这样的解决方案是不可接受的。
另外,这与~
到$HOME
的完成无关。
其他
此 post 讨论 bash 波浪线扩展的性质:Meaning of tilde in Linux bash (not home directory).
感谢您的回答! ;-)
您可以使用其中一种(或两种)方式:
hash -d foo=/foo/bar
(hash
builtin command)foo=/foo/bar/
现在,我们也可以使用 cd ~foo
将当前目录更改为 /foo/bar
。
它在 zsh 中被称为 “Static named directories”。
注意:当 CDABLE_VARS
shell option 处于活动状态时,如果目录(本例中为 /foo/bar
)存在,我们甚至可以在上面的示例中执行 cd foo
而不是 cd ~foo
.