10 个版本
0.2.3 | 2021年12月2日 |
---|---|
0.2.1 | 2020年11月22日 |
0.1.6 | 2020年10月24日 |
0.1.5 | 2020年9月28日 |
#671 in 文件系统
每月 42 次下载
130KB
3.5K 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
入门
第 1 步:安装 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
。
第 2 步:将 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
)提供了一种像使用formarks
(一个zsh
插件)一样使用rualdi
的方法,允许您使用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
Crate 文档
依赖项
~6–18MB
~180K SLoC