#shortcut #hop #cd #navigate #cli

bin+lib bunnyhop

小巧的命令行工具,帮助您在shell中快速跳转

1个不稳定版本

0.2.0 2023年2月11日

#4 in #hop

MIT 许可证

28KB
568

跳转

这是什么?

我有一个名为 short 的 bash/zsh/nushell 函数,它可以让用户轻松跳转到预定义的目录。

基本的 zsh 函数定义如下

short() {
    if [[ "$1" == "add" ]]; then
        if [ ! -f  ~/.config/.shorts/${2} ]; then
            echo "[cmd] \`short ${2}\` -> ${PWD}"
            ln -sf ./ ~/.config/.shorts/${2}
        fi
    else
        cd ~/.config/.shorts/${1}
    fi
}

nushell 版本如下

def-env short [p1: string, p2: string = ""] {
    let loc = if $p1 == "add" {
        let loc = $"~/.config/.shorts/($p2)"
        if not ($loc | path exists) {
            echo $"[cmd] `short ($p2)` -> ($env.PWD)"
            ln -s $env.PWD $loc
        }
        $loc
    } else {
        $"~/.config/.shorts/($p1)"
    }

    cd $loc
}

然而,由于这些是针对我使用的各种shell(个人使用 nushell,工作使用 bash 和 zsh)的独立脚本,每次我想添加新功能时,都需要更新相同的脚本三次,这让我感到非常烦恼。hop 应该能够复制 short 的行为,但在单一语言中实现,因此可以在不同的shell之间轻松更新。

安装方法

简单地将此存储库克隆,然后从根存储库目录运行 make

当前安装脚本适用于大多数系统上的大多数shell,需要系统安装 python3

要从 bash 类型的 shell 安装,请使用

git clone https://github.com/gnoat/hop.github
cd hop
make install

要从 nushell 安装,请使用

git clone https://github.com/gnoat/hop.github
cd hop
make all

注意:如果在 macOS 上安装并使用 make unix 选项,请确保您使用的是 gnu-sed,而不是苹果那糟糕的混合版本。

当前构建支持三种不同的shell:nushell、zsh 和 bash/dash/任何使用 ~/.bashrc 的东西。

使用方法

对于一般使用帮助

hp help # show basic commands

hp version # show version

要添加名为 example 的快捷方式到您的目录

hp add example

要将快捷方式添加到当前目录,并使用当前目录的高级名称作为快捷方式名称

hp add

要添加可以打开在集编辑器中的文件的快捷方式

hp add init.vim # will create a shortcut to init.vim named `init.vim`

hp add init.vim vi # will create a shortcut to init.vim named `vi`

要删除名为 example 的快捷方式

hp rm example # can be used from any location

hp rm # can be used within the "example" directory

hp remove example # long form of rm command

要跳转到名为 example 的目录

hp example

要列出所有已保存的快捷方式

hp ls # shortened form
hp list # long form

依赖关系

~5–15MB
~192K SLoC