#shell #cd #wd

应用 warp-dir

一个将从一个目录切换到另一个目录的 CLI 工具

1 个不稳定版本

0.1.0 2023 年 8 月 10 日

#31 in #cd

Apache-2.0 协议

18KB
327

Warp 目录

license Version info Build Status

一个类似 warp-dir 的工具,使用 Rust 编写。

这可以被视为一个用于最常使用的文件夹集的文件夹导航超级加速工具。如果你经常需要进入一些深度嵌套且路径前缀很长的文件夹,这将非常有用。

用法

/home/me/a/b/c/d/> wd add foo
/home/me> cd
/home/me> z foo
/home/me/a/b/c/d/> # Huzzah!
/home/me/a/b/c/d/> wd help

Usage: wd [OPTIONS] [target] [PATH] [COMMAND]

Commands:
  add     Adds the current working directory to your warp points
  remove  Removes the given warp point
  list    Print all stored warp points
  show    Show the path to given warp point (pwd)
  clean   Remove points warping to nonexistent directories
  shell   Subcommands for hooking into the shell
  help    Print this message or the help of the given subcommand(s)

Arguments:
  [target]
          Warps to the directory specified by the warp point

          Possible values:
          - foo:       /home/me/a/b/c/d

为什么?

为什么用 Rust 重写?

  • 为了好玩!
  • 我遇到了一些问题,它们会定期失败,直到打开一个新的 shell(可能是由于它是用 bash 编写的)才能正确加载/执行。
  • 额外的 shell 支持

差异

基本上,这个工具在大多数情况下应该像 warp-dir 一样作为一个即插即用的替代品。

截至写作时,大多数命令都已实现,尽管 CLI 选项不会完全相同。

值得注意的是,默认的配置查找位置不同!默认情况下,它将查找 $XDG_DATA_HOME/wd/config。这可以通过 $WD_CONFIG 环境变量进行配置,该环境变量也受到原始 warp-dir 项目的尊重。

Shell 支持

目前明确支持以下 shell: zshbashfish。已经建立了支持其他 shell 的框架,这应该使得支持可能需要 "$SHELL" 特定行为的其他常见 shell 变得容易。

更改 shell 的目录需要执行少量 shell 代码,因此安装二进制文件(以下建议)后,您需要将挂钩添加到您的 bashrc/zshrc/config.fish 等。

  • bash eval "$(wd --shell bash shell init)"
  • zsh eval "$(wd --shell zsh shell init)"
  • fish wd --shell fish shell init | source

根据与上述 shell 的相似程度,您可能可以使用上述 shell init 中的一个钩子,直到添加了显式支持。

自动补全

此外,您可以使用 wd shell completion 生成 CLI 自动补全,并将它们写入您 shell 的适当位置。

这将启用 warp 目录目标的自动补全!

安装

使用 Cargo

cargo install warp-dir

下载发行版

  • 发行版 下载预构建的二进制文件

依赖关系

~3–14MB
~120K SLoC