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 在 命令行工具 中
每月下载量 243
25KB
479 行
shmarks - 处理目录书签的快速、简单、健壮且方便的方式
安装
-
安装二进制文件
> cargo +nightly install shmarks --locked
-
在您的 .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" 用于解决可能不存在的相对路径
灵感来自
依赖项
~5–17MB
~170K SLoC