#directory #cd #zsh #symlink #teleport

app teleport-dir

简单的 Rust 命令,用于导航到符号链接文件的原始目录。

1 个不稳定版本

0.1.0 2022年4月11日

#6#teleport

MIT 许可证

7KB
108

Teleport Dir

简单的 Rust 命令,用于导航到符号链接文件的原始目录。

入门

目前此包仅支持 zsh Shell 集成。

安装

步骤 1:从 cargo.io 安装包

使用 cargo 安装 Rust 包。

cargo install teleport-dir

步骤 2:添加到您的 ZSH 配置文件

将以下代码添加到您的 .zshrc 文件中,或添加到您的函数搜索路径中的另一个文件 ($fpath)。

eval "$(teleport-dir init)"

这将添加 td 函数。您也可以通过传递 --cmd 标志来给函数起任何其他名称。

以下是一个示例,其中函数将以 symdir 的形式可用。

eval "$(teleport-dir init --symdir)"

用法

例如,假设您使用 laravel/valetbrew 管理多个 PHP 版本,并且需要位于当前链接的 PHP 版本的目录中。

您可以通过(例如)执行以下命令来实现。

cd $(readlink -f /usr/local/bin/php)/../

这可能会有些繁琐,或者可能难以记住,因此您可以使用

td /usr/local/bin/php 

该命令检查路径是否为符号链接,解析原始路径,如果该原始路径是文件,则 cd 到文件的目录。如果路径已经是目录,则直接 cd 到该目录。

例如,当您使用 HomeBrew 链接 php@8.0 时,以下所有命令都将等同于 cd /usr/local/Cellar/php@8.0/8.0.17/bin/

td /usr/local/bin/php

td /usr/local/Cellar/[email protected]/8.0.17/bin/php 

td /usr/local/Cellar/[email protected]/8.0.17/bin/

致谢

这个项目主要是我在尝试学习 Rust 时的一个练习,我从我使用的或做类似事情的其他 crate 中学到了很多。当试图解决无法从 Rust 命令更改主 Shell 中的目录的问题时,我从查看 zoxide 中获得了很多(或大多数)想法。

许可证

此作曲家包是一个开源软件,遵循MIT许可证授权。

依赖项

约4.5MB
约92K SLoC