更新升级 专属应用 系统故障 硬件故障 电脑汽车 鸿蒙刷机 鸿蒙开发Linux教程 鸿蒙开发Linux命令
当前位置:HMXT之家 > 鸿蒙开发Linux命令 > 安装配置和使用zoxide:Linux/macOS的智能cd命令

安装配置和使用zoxide:Linux/macOS的智能cd命令

更新时间:2023-02-08 10:52:51浏览次数:843+次

本文介绍如何安装配置和使用zoxide的方法,它属于Linux/macOS的智能cd命令。经过实验,在Linux/macOS之间导航时,使用zoxide确实很有帮助,这是一个shell插件,可以帮助提高在shell工作时的生产力,zoxide插件是由z和z.lua启发的常见cd命令的替代品,它通过使用排名算法跟踪频繁访问的目录,以导航到最佳匹配,从而简化了任务,只需几次按键,就可以导航到所需的目录。

安装zoxide、安装fzf,及在shell中加入zoxide

一、安装zoxide

Zoxide可在多个平台上工作,可按如下方式安装。

1、在Linux上安装zoxide

Zoxide很容易在Linux系统上安装,因为它在许多发行版的默认包存储库中都可用。

使用以下命令在Linux发行版上安装zoxide:

##在Debian/Ubuntu上

sudo apt install zoxide

##CentOS 8/Rocky Linux 8/Alma Linux 8上

sudo dnf copr enable atim/zoxide

sudo dnf install zoxide

##基于Arch Linux的系统

sudo yay -Sy zoxide-bin

##在Fedora上

sudo dnf install zoxide

##在Alpine Linux上

sudo apk add zoxide

##在Manjaro上

sudo pacman -S zoxide

您也可以使用下面的脚本在系统上安装zoxide:

curl -sS https://webinstall.dev/zoxide | bash

导出路径:

export PATH="/home/$USER/.local/bin:$PATH"

2、在macOS上安装zoxide

在macOS上,可以使用以下命令安装zoxide:

##HomeBrew

brew install zoxide

##MacPorts

port install zoxide

##conda-forge

conda install -c conda-forge zoxide

对于Linux和macOS系统,可以使用以下命令从crates存储库安装zoxide:

cargo install zoxide --locked

按照以下步骤验证安装:

$ zoxide -V

zoxide v0.7.9

二、安装fzf

zoxide使用fzf(命令行模糊查找器)来提供交互式shell,可以按如下方式安装。

1、在Linux上

fzf在许多Linux发行版的默认软件包存储库中可用:

##在Debian/Ubuntu上

sudo apt-get install fzf

##在Fedora上

sudo dnf install fzf

##在Arch Linux上

sudo pacman -S fzf

##在openSUSE上

sudo zypper install fzf

或者,从git repo安装fzf,如下所示:

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf

~/.fzf/install

source ~/.bashrc

2、在macOS上

使用HomeBrew安装fzf,如下所示:

$ brew install fzf

# To install useful key bindings and fuzzy completion:

$(brew --prefix)/opt/fzf/install

三、在shell中加入zoxide

为了能够使用zoxide,您需要将其添加到shell中,如下所示。

1、适用于Bash/Zsh

使用您喜爱的编辑器打开bash文件:

$ vim ~/.bashrc

##或

$ vim ~/.zshrc

在打开的文件中,添加以下行:

eval "$(zoxide init bash)"

保存文件并获取配置文件

source ~/.bashrc

##或 

source ~/.zshrc

2、适用于Fish

打开文件:

vim ~/.config/fish/config.fish

现在将下面的行添加到其中:

zoxide init fish | source

3、适用于Xonsh

打开以下文件进行编辑:

vim ~/.xonshrc

将下面的行添加到其中:

execx($(zoxide init xonsh), 'exec', __xonsh__.ctx, filename='zoxide')

4、适用于Nushell

通过在Nushell中执行命令查找配置文件:

config path

将以下行添加到其中:

startup = ["zoxide init nushell --hook prompt | save ~/.zoxide.nu", "source ~/.zoxide.nu"]

配置zoxide

在zoxide中有几种配置。在执行zoxide init之前,正常设置zoxide的环境变量。这些环境变量设置如下:

_ZO_DATA_DIR:用于指定存储数据库的目录。默认目录如下:

Linux/BSD:$XDG_DATA_HOME或$HOME/.local/share

macOS:$HOME/Library/Application Support

_ZO_ECHO:当设置为1时,用于在导航到匹配的目录之前打印匹配的目录。

_ZO_EXCLUDE_DIRS:用于包括数据库中的指定目录。默认设置为“$HOME”。分隔符(:)可用于例如$HOME:$HOME/private/*。

_ZO_MAXAGE:配置老化算法,该算法限制数据库中的最大条目数。

_ZO_RESOLVE_SYMLINKS:设置为1时,z将在将目录添加到数据库之前解析符号链接。

_ZO_FZF_OPTS:用于设置交互选择期间要执行的自定义FZF选项。

在调用zoxide init时,可以对zoxide进行其他配置,例如:

–cmd:这用于更改已定义别名(z和Zi)的前缀,例如-cmd j会将别名更改为(j,ji)。

–hook <HOOK>:这定义了zoxide增加目录分数的频率。以下参数可以与hook命令一起使用:

none–永远不会

prompt–提示每个shell

pwd–每当目录更改时

–no-aliases:用于定义无别名(z,zi),这些函数将作为__zoxide_z和__zoxide_zi提供。

使用Zoxide

Zoxide的工作方式与cd命令类似,但现在有更多附加功能。使用默认的z别名,使用语法导航到目录:

z foo

例如:

z /home/thor/Downloads/

样本输出:

\

要退出到上一个目录,请使用以下命令:

z -

您也可以使用以下命令向上cd一级:

z ..

由于两个目录共享一些相似的名称(foo),您可以使用语法启动交互式shell进行选择:

zi foo

例如,在这里,我有两个目录/home/thor/Downloads和/home/thor/new/Downloads,我已经导航到这两个文件夹,现在我将启动交互式shell进行选择,如下所示:

zi Downloads

样本输出:

\

您还可以使用以下语法启动交互式shell:

z foo<SPACE>+<TAB>

在这里,您将运行以下命令:

z Downloads

然后按空格+TAB键查看输出:

\

如果您有多个同名(foo)的路径,Zoxide将记住它们,您可以使用提供的名称列表中的排名导航到它们。

您可以使用以下命令导航到与名称(foo)匹配的排名最高的目录:

z foo

例如,导航到/home/thor/Downloads/目录,该目录在此处排名最高,使用命令:

z Downloads

样本输出:

\

您还可以使用两个参数导航到排名最高的目录,以便更好地匹配,例如new/Downloads,如下所示:

z new Downloads

样本输出:

\

现在,您可以使用zoxide导航到所需的目录,并且它会记住所有目录,使导航变得如此简单,字符串更短。

另外,强调一下。zoxide有几个集成,默认情况下支持zsh-autocomplete。您可以按如下方式安装和使用它们,以Ranger为例:

这是一个文件管理器集成,可以通过运行命令在通常访问的目录之间跳转:

z <partial-name>

他的安装方式如下:

sudo git clone https://github.com/jchook/ranger-zoxide.git ~/.config/ranger/plugins/zoxide

例如,使用下面的部分命令导航到Downloads目录,然后按Enter键:

\

现在使用ranger在目录之间快速导航。当前zoxide有许多第三方集成,如vim、xplr、xxh、emacs。

结论

按照以上方法在Linux/macOS上安装zoxide并使用zoxide。在安装配置完成后,它将是一个更智能的cd命令,并将其用于简单的cd命令。