5 个版本

0.1.13 2024年3月21日
0.1.12 2024年3月17日
0.1.11 2024年1月25日
0.1.10 2024年1月25日
0.1.9 2023年12月31日

2788命令行工具

Download history 11/week @ 2024-04-01

每月下载量 243

GPL-3.0-only

25KB
479

shmarks - 处理目录书签的快速、简单、健壮且方便的方式

crates.io

创建、删除、查看您最喜欢的目录的排序(按目录路径的书签名称排序)书签

Example-Screenshot

安装

  1. 安装二进制文件

    > cargo +nightly install shmarks --locked
    
  2. 在您的 .zshrc 中添加以下代码(在其他shell中可能需要稍作修改)

    将此添加到您的插件目录可能是一个更干净的选择(在 .zshrc 中包含 source plugins_dir/shmarks.zsh

    export SHMARKS_LIST_PATH="$HOME/.local/share/shmarks.toml" # place where your shell bookmarks (shmarks) stored
    export SHMARKS_AUTO_SORT="d" # sort on adding new alias: a = by aliases, d = by directories, otherwise no sorting
    export SHMARKS_DEFAULT_ALIAS="dd" # default alias to jump into if no alias name was provided
    
    # Jump by alias
    f() {
        if [[ $# -eq 0 ]]; then
            # jump to default dir if no arguments provided
            cd "$(shmarks -a "$SHMARKS_DEFAULT_ALIAS")"
        else
            cd "$(shmarks -a "$@")"
        fi
    }
    
    # Might be interesting to you
    
    alias s='shmarks' # shortcut for 'shmarks' binary
    alias p='shmarks ls -d' # colored list print with directories
    alias se="$EDITOR "$SHMARKS_LIST_PATH"" # edit shmarks
    alias pf='shmarks ls -d | rg'  # find in print of directories
    
    # fzf jumper
    sf() {
        local choice="$(shmarks ls -dp | fzf)"
    
        if [ -n "$choice" ]; then
            local dir="$(echo "$choice" | awk '{print $2}')"
            cd "$dir"
        fi
    }
    
    # Autocompletion of alias
    _shmarks_compzsh() {
        reply=($(shmarks ls))
    }
    compctl -K _shmarks_compzsh f # change 'f' to alias set for jumping (6th line)
    

用法

> shmarks
Directory bookmarks for the shell.

Usage: shmarks [OPTIONS]
       shmarks <COMMAND>

Commands:
  new   Create new mark. Creates mark for current directory by default [aliases: n]
  rm    Remove mark. Removes mark of current dir if no args provided [aliases: r]
  ls    List all marks [aliases: l]
  sort  Sort shmarks file [aliases: s]
  help  Print this message or the help of the given subcommand(s)

Options:
  -a, --alias <ALIAS>  Alias of the directory to jump into
  -h, --help           Print help
  -V, --version        Print version

通过别名 'default' 跳转到默认目录

> f

通过别名跳转

> f myalias

在 $EDITOR 中编辑 marks 文件

> se

将当前目录 (pwd) 保存到 shmarks,如果设置了 $SHMARKS_AUTO_SORT,则对 shmarks 文件进行排序

> shmarks new myalias
> s n myalias

将指定的目录保存到 shmarks

> shmarks new myalias /my/dir

从 shmarks 中删除当前目录

> shmarks rm

根据其目录路径删除指定的别名

> shmarks rm -d /my/dir

根据其名称删除指定的别名

> shmarks rm -a myalias

像 plain GNU "ls" 实用程序一样列出所有保存的标记

> shmarks ls 

像 "/bin/ls -l" 一样按列列出所有保存的标记,显示并着色目录

> shmarks ls -d
> p

按目录排序 shmarks(字母顺序)

> shmarks sort -d

注意

  • 默认情况下,shmarks.toml 位于 $XDG_DATA_HOME 或 $HOME/.local/share。您可以使用 $SHMARKS_LIST_PATH 来覆盖它
  • 因为它需要 nightly Rust,因为 "std::path::absolute" 用于解决可能不存在的相对路径

灵感来自

  • huyng/bashmarks

依赖项

~5–17MB
~170K SLoC