joshuto:一款用 Rust 编写的终端文件管理器
joshuto 是一个类似于 ranger 的终端文件管理器,它使用 Rust 语言编写,带来了高效和安全的操作体验。以下是对 joshuto 的详细介绍和使用指南。
依赖条件
要使用 joshuto,您需要确保系统上已安装以下软件:
cargo 版本 >= 1.55 rustc 版本 >= 1.55 可选:xsel/xclip/wl-clipboard(用于剪贴板支持) 可选:fzf 可选:zoxide
具体依赖详情,请参阅项目的 Cargo.toml[1] 文件。
构建与安装
joshuto 支持多种安装方式,包括单个用户安装、系统范围安装以及从预编译的二进制文件安装。
单个用户安装
使用 cargo 进行安装:
cargo install --path=. --force
或者从 git 仓库安装:
cargo install --git https://github.com/kamiyaa/joshuto.git --force
系统范围安装
进行系统范围安装,可以使用以下命令:
cargo install --path=. --force --root=/usr/local
从预编译的二进制文件安装
如果您不想自己编译,可以从 joshuto 的 GitHub 仓库下载预编译的二进制文件进行安装:
bash <(curl -s https://raw.githubusercontent.com/kamiyaa/joshuto/master/utils/install.sh)
您还可以自定义安装路径或安装特定版本的 joshuto。
包管理器支持
joshuto 也在多个 Linux 发行版的包管理器中可用,例如 Fedora 的 COPR、Arch 的 AUR、Gentoo 的 gentoo-zh 等。具体安装命令可以在项目的 GitHub 页面找到。
使用方法
joshuto 提供了丰富的键盘快捷键来帮助用户高效地管理文件和目录。以下是一些基本操作的快捷键:
导航:
上移: arrow_up
或k
下移: arrow_down
或j
打开文件或目录: arrow_right
或l
返回上级目录: arrow_left
或h
标签管理:
打开新标签: ctrl+t
关闭当前标签: W
或ctrl+w
文件操作:
重命名文件: a
(追加)或A
(预置)删除文件: delete
或d d
复制文件: y y
粘贴文件: p p
杂项:
切换显示隐藏文件: z h
重新加载目录列表: R
配置
joshuto 支持用户自定义配置,包括键位绑定、文件类型关联、主题颜色等。您可以通过修改配置文件 joshuto.toml
、keymap.toml
、mimetype.toml
和 theme.toml
来实现个性化设置。
深入细节,不 需要的可以忽略
构建
~$ cargo build
安装
单个用户
~$ cargo install --path=. --force
使用 cargo 的单个用户
~$ cargo install --git https://github.com/kamiyaa/joshuto.git --force
系统范围
~# cargo install --path=. --force --root=/usr/local # /usr 也可以使用
从预编译的二进制文件
依赖项:
curl openssl
最新版本
使用默认安装路径 ($HOME/.local/bin/) 安装最新版本。
~$ bash <(curl -s https://raw.githubusercontent.com/kamiyaa/joshuto/master/utils/install.sh)
自定义安装路径
通过设置 INSTALL_PREFIX 变量,允许您将 Joshuto 安装到自定义目录。
~$ INSTALL_PREFIX="$HOME" bash <(curl -s https://raw.githubusercontent.com/kamiyaa/joshuto/master/utils/install.sh)
系统范围
~# INSTALL_PREFIX="/usr/local/bin" bash <(curl -s https://raw.githubusercontent.com/kamiyaa/joshuto/master/utils/install.sh)
特定版本
通过所需的版本号安装 Joshuto 的特定发布版本。
~$ RELEASE_VER='v0.9.4' bash <(curl -s https://raw.githubusercontent.com/kamiyaa/joshuto/master/utils/install.sh)
打包状态
Fedora (COPR[2])
sudo dnf copr enable atim/joshuto -y
sudo dnf install joshuto
Arch (AUR[3])
发布版[4]
[yay/paru] -S joshuto
从源代码构建[5]
[yay/paru] -S joshuto-git
Arch (archlinuxcn[6])
稳定版本 (x86_64)[7] 稳定版本 (aarch64)[8]
[yay/paru] -S joshuto
最新的 git 版本 (x86_64)[9] 最新的 git 版本 (aarch64)[10]
[yay/paru] -S joshuto-git
Gentoo (gentoo-zh[11])
sudo eselect repository enable gentoo-zh
sudo emerge -av app-misc/joshuto
NixOS
以下是在 nixos 配置中使用它的示例
{
description = "我的配置";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
joshuto.url = "github:kamiyaa/joshuto";
};
outputs = { nixpkgs, joshuto, ... }:
{
nixosConfigurations = {
hostname = nixpkgs.lib.nixosSystem
{
system = "x86_64-linux";
modules = [
{
nixpkgs.overlays = [ joshuto.overlays.default ];
environment.systemPackages = with pkgs;[
joshuto
];
}
];
};
};
};
}
临时运行,未安装在系统上
nix run github:kamiyaa/joshuto
MacOS (MacPorts[12])
sudo port install joshuto
MacOS/Linux Homebrew[13]
brew install joshuto
使用方法
~ $ joshuto
导航
上移: arrow_up
或k
下移: arrow_down
或j
移动到父目录: arrow_left
或h
打开文件或目录: arrow_right
或l
到顶部: home
或g g
到底部: end
或G
向上翻页: page_up
或ctrl+u
向下翻页: page_down
或ctrl+d
标签管理
打开新标签: ctrl+t
以当前目录打开新标签: T
关闭当前标签: W
或ctrl+w
切换到下一个标签: \t
切换到上一个标签: backtab
文件操作
重命名文件: a
追加或A
预置删除文件: delete
或d d
剪切文件: d d
复制文件: y y
粘贴文件: p p
覆盖粘贴文件: p o
符号链接文件: p l
用于绝对路径,p L
用于相对路径
杂项
切换隐藏文件: z h
重新加载目录列表: R
更改目录: c d
显示任务: w
设置模式: =
进入命令模式: :
查看 docs#quit[14] 了解如何退出到当前目录以及其他用法
配置
查看 docs[15] 了解详细信息,config[16] 查看示例
joshuto.toml[17]
通用配置
keymap.toml[18]
用于键位绑定
mimetype.toml[19]
用于用应用程序打开文件
theme.toml[20]
颜色自定义
bookmarks.toml[21]
书签
贡献
查看 docs[22]
错误/功能请求
请创建一个问题 :)
特性
标签 开发图标 通过 fzf[23] 进行模糊搜索 Ctrl/Shift/Alt 支持 批量重命名 文件预览 查看 图片预览[24] 了解更多详情 退出到当前目录 异步文件 I/O(剪切/复制/粘贴) 自定义颜色/主题 行号 跳转到编号 文件选择器 垃圾箱支持
待办事项
[x] 内置命令行 大部分工作 当前实现有点粗糙 [ ] 标签自动完成(进行中)
Cargo.toml: https://github.com/kamiyaa/joshuto/blob/main/Cargo.toml
[2]COPR: https://copr.fedorainfracloud.org/coprs/atim/joshuto/
[3]AUR: https://aur.archlinux.org
[4]发布版: https://aur.archlinux.org/packages/joshuto
[5]从源代码构建: https://aur.archlinux.org/packages/joshuto-git
[6]archlinuxcn: https://github.com/archlinuxcn/repo/
[7]稳定版本 (x86_64): https://github.com/archlinuxcn/repo/tree/master/archlinuxcn/joshuto
[8]稳定版本 (aarch64): https://github.com/archlinuxcn/repo/tree/master/alarmcn/joshuto
[9]最新的 git 版本 (x86_64): https://github.com/archlinuxcn/repo/tree/master/archlinuxcn/joshuto-git
[10]最新的 git 版本 (aarch64): https://github.com/archlinuxcn/repo/tree/master/alarmcn/joshuto-git
[11]gentoo-zh: https://github.com/microcai/gentoo-zh/tree/master/app-misc/joshuto
[12]MacPorts: https://ports.macports.org/port/joshuto/details/
[13]Homebrew: https://brew.sh/
[14]docs#quit: /docs/configuration/keymap.toml.md#quit-quit-joshuto
[15]docs: /docs
[16]config: /config
[17]joshuto.toml: /config/joshuto.toml
[18]keymap.toml: /config/keymap.toml
[19]mimetype.toml: /config/mimetype.toml
[20]theme.toml: /config/theme.toml
[21]bookmarks.toml: /config/bookmarks.toml
[22]docs: /docs
[23]fzf: https://github.com/junegunn/fzf
[24]图片预览: /docs/image_previews