4 个版本
0.1.5 | 2021 年 12 月 2 日 |
---|---|
0.1.4 | 2021 年 12 月 2 日 |
0.1.1 | 2020 年 11 月 22 日 |
0.1.0 | 2020 年 9 月 24 日 |
#1339 在 文件系统
每月 26 次下载
用于 rualdi
45KB
1K SLoC
Rualdi (Rust 别名目录)
待办事项
- 在添加彩色输出后修复/添加测试
- Bash 完成式
- 以不同的方式为
%HASH
映射着色 - 添加
bg
和TrueColor
支持 - 配置中颜色被清除
- 为
radf
函数设置颜色 - 在
radf
函数中使用%HASH
- 使用
fzf
:tokio
和async
目录
简介
Rualdi 允许您为目录创建别名,并封装了内置的 cd
命令以方便更改工作目录。您还可以添加指向别名的环境变量。您环境中所有源变量都以 RAD_
为前缀。
灵感来自 zoxide
代码。
示例
rada workdir # Add current directory with workdir as alias
rada www /var/www # Add /var/www directory with www as alias
rada stuff ~/stuff # Works with home tilde alias
radax workdir # Add current directory with workdir as alias
# and add environment variable named RAD_WORKDIR
# in current environment and in configuration file
radax workdir . wd # Add current directory with workdir as alias
# and add environment variable named RAD_WD
# in current environment and to the configuration file
radx workdir wd # Add environment variable named RAD_WD which points
# on alias workdir in current environment
# and to the configuration file
radx workdir # Add environment variable named RAD_WORKDIR
# which points on alias workdir in current environment
# and to the configuration file
radxn workdir wd # Add environment variable named RAD_WD which points
# on alias workdir in current environment
# without adding it to the configuration file
rad www/some-site # Perform cd in /var/www/some-site
rad - # Go back to previous directory by cd'ing to it
rad -4 # With zsh, this acts as a pushd wrapper
radr workdir # Remove workdir alias and environment variable associated if exists
radr www stuff # Works with multiple aliases at same time
radrx workdir # Remove environment variable which points on alias workdir
radl # List aliases and environment variables
radf # List directories with fzf and cd to selection
# There are several more options with this function explained below
入门指南
第一步:安装 rualdi
从 Cargo 仓库
cargo install rualdi -f
从源代码
cargo build --release
cp target/release/rualdi <path>
其中 <path>
是您存储二进制文件的路径。
在 Debian 上
从源代码
cargo install cargo-deb
cargo deb
sudo dpkg -i /target/debian/rualdi_<version>_<arch>.deb
从 .deb 预编译版本
您可以从 发布页面 下载预编译的 .deb
软件包并添加运行
sudo dpkg -i /target/debian/rualdi_<version>_<arch>.deb
其他(通过预编译的二进制文件)
或者,您也可以从 发布页面 下载预编译的二进制文件并将其添加到您的 PATH
。
第二步:将 rualdi
添加到您的 shell 中
目前只支持 bash
和 zsh
。
bash
将以下行添加到您的 ~/.bashrc
eval "$(rualdi init bash)"
zsh
将以下行添加到您的 ~/.zshrc
eval "$(rualdi init zsh)"
配置
init
标志
--cmd
:将rad
命令(以及相应的别名)改为其他命令。
环境变量
$_RAD_ALIASES_DIR
:rualdi
将存储别名配置文件的目录(默认:平台特定;有关更多信息,请参阅 [dirs-next
文档])$_RAD_NO_ECHO
:当设置为1
时,rad
在导航到之前不会打印匹配的目录$_RAD_RESOLVE_SYMLINKS
:当设置为1
时,rad
在打印匹配的目录之前将解析符号链接。
[colors]
部分
默认颜色如下,可以在 $_RAD_ALIASES_DIR/rualdi.toml
文件中找到。
[colors]
name = "bright yellow"
separator = "bright cyan"
path = "magenta"
可用的颜色有
red
,bright red
yellow
,bright yellow
green
,bright green
blue
,bright blue
cyan
,bright cyan
magenta
,bright magenta
white
,bright white
black
,bright black
[alias_map]
部分
有时路径可能会相当长,因此可以创建一个散列(实际上是一个 IndexMap
),将常见路径映射到如下
/Users/user/.config/zsh/zsh.d = %ZDOTDIR/zsh.d
可以在 rualdi.toml
中进行配置,并可以使用波浪号(~
)和环境变量。左侧是将用 %
前缀并显示的内容。
注意:建议从最具体的变量开始创建散列,再到最不具体的变量。
[alias_hash]
ZDOTDIR = "$ZDOTDIR"
XDG_CONFIG_HOME = "/Users/user/.config"
XDG_CACHE_HOME = "~/.cache"
XDG_DATA_HOME = "${HOME}/.local/share"
HOME = "$HOME"
已经有一些这些映射可以立即实施,并且可以使用三种中的任何一种来打开
[alias_hash]
use_default = "on"
use_default = "1" # Must be a string
use_default = "yes"
fzf
集成
要求:
fzf
命令 radf
(或 <your_cmd>f
)提供了一种使用 rualdi
的方法,类似于 formarks
(一个 zsh
插件),允许使用 fzf
显示目录别名,然后使用 cd
切换到选择。
无参数
# A query here is optional
radf <query>
pushd
包装器
# This can be any digit
radf -3
最近访问的目录
# A query here is optional
radf -d <query>
rad
包装器
# Will also go back to most recently visited directory
radf -
rad -
# If query is an exact match with an alias, then it's the same behavior as `rad`
radf <query>
完成式
目前,只有 zsh
自动补全可用。这在与 fzf-tab
结合使用时效果最佳,它会在使用 <TAB>
时通过 fzf
完成您的命令。
安装
此命令将补全打印到 stdout
,因此它可以重定向到文件并放置在您的 fpath
中。这些补全仅适用于实际的 rualdi
二进制文件,因此不会与设置了别名的功能一起工作,因为它们都是独立的函数。
要获取别名的补全,请将文件 completions/_rualdi_funcs
移动到您的 fpath
中。
rualdi completions shell zsh > _rualdi
额外
子命令别名
使用 rualdi
的另一种方法是将其本身设置为别名,并使用每个子命令的自身别名。
例如,在您的 .zshrc
或 .bashrc
中放置 alias r="rualdi"
。然后使用以下别名
r a # rualdi add
r ax # rualdi add-env
r i # rualdi init
r l # rualdi list
r la # rualdi list-alias
r lx # rualdi list-env
r r # rualdi remove
r rx # rualdi remove-env
r res # rualdi resolve
r resx # rualdi resolve-env
r comp # rualdi completions
Crates 文档
lib.rs
:
解析 TOML 格式的 rad 配置文件的模块
依赖项
~4–15MB
~154K SLoC