joshuto:一款用 Rust 编写的终端文件管理器

文摘   2024-06-24 07:00   江苏  

joshuto:一款用 Rust 编写的终端文件管理器

joshuto 是一个类似于 ranger 的终端文件管理器,它使用 Rust 语言编写,带来了高效和安全的操作体验。以下是对 joshuto 的详细介绍和使用指南。

unsetunset依赖条件unsetunset

要使用 joshuto,您需要确保系统上已安装以下软件:

  • cargo 版本 >= 1.55
  • rustc 版本 >= 1.55
  • 可选:xsel/xclip/wl-clipboard(用于剪贴板支持)
  • 可选:fzf
  • 可选:zoxide

具体依赖详情,请参阅项目的 Cargo.toml[1] 文件。

unsetunset构建与安装unsetunset

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。

unsetunset包管理器支持unsetunset

joshuto 也在多个 Linux 发行版的包管理器中可用,例如 Fedora 的 COPR、Arch 的 AUR、Gentoo 的 gentoo-zh 等。具体安装命令可以在项目的 GitHub 页面找到。

unsetunset使用方法unsetunset

joshuto 提供了丰富的键盘快捷键来帮助用户高效地管理文件和目录。以下是一些基本操作的快捷键:

  • 导航:

    • 上移:arrow_upk
    • 下移:arrow_downj
    • 打开文件或目录:arrow_rightl
    • 返回上级目录:arrow_lefth
  • 标签管理:

    • 打开新标签:ctrl+t
    • 关闭当前标签:Wctrl+w
  • 文件操作:

    • 重命名文件:a(追加)或 A(预置)
    • 删除文件:deleted d
    • 复制文件:y y
    • 粘贴文件:p p
  • 杂项:

    • 切换显示隐藏文件:z h
    • 重新加载目录列表:R

unsetunset配置unsetunset

joshuto 支持用户自定义配置,包括键位绑定、文件类型关联、主题颜色等。您可以通过修改配置文件 joshuto.tomlkeymap.tomlmimetype.tomltheme.toml 来实现个性化设置。

unsetunset深入细节,不 需要的可以忽略unsetunset

unsetunset构建unsetunset

~$ cargo build

unsetunset安装unsetunset

单个用户

~$ 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

unsetunset使用方法unsetunset

~ $ joshuto

导航

  • 上移:arrow_upk
  • 下移:arrow_downj
  • 移动到父目录:arrow_lefth
  • 打开文件或目录:arrow_rightl
  • 到顶部:homeg g
  • 到底部:endG
  • 向上翻页:page_upctrl+u
  • 向下翻页:page_downctrl+d

标签管理

  • 打开新标签:ctrl+t
  • 以当前目录打开新标签:T
  • 关闭当前标签:Wctrl+w
  • 切换到下一个标签:\t
  • 切换到上一个标签:backtab

文件操作

  • 重命名文件:a 追加或 A 预置
  • 删除文件:deleted d
  • 剪切文件:d d
  • 复制文件:y y
  • 粘贴文件:p p
  • 覆盖粘贴文件:p o
  • 符号链接文件:p l 用于绝对路径,p L 用于相对路径

杂项

  • 切换隐藏文件:z h
  • 重新加载目录列表:R
  • 更改目录:c d
  • 显示任务:w
  • 设置模式:=
  • 进入命令模式::

查看 docs#quit[14] 了解如何退出到当前目录以及其他用法

unsetunset配置unsetunset

查看 docs[15] 了解详细信息,config[16] 查看示例

joshuto.toml[17]

  • 通用配置

keymap.toml[18]

  • 用于键位绑定

mimetype.toml[19]

  • 用于用应用程序打开文件

theme.toml[20]

  • 颜色自定义

bookmarks.toml[21]

  • 书签

unsetunset贡献unsetunset

查看 docs[22]

unsetunset错误/功能请求unsetunset

请创建一个问题 :)

unsetunset特性unsetunset

  • 标签
  • 开发图标
  • 通过 fzf[23] 进行模糊搜索
  • Ctrl/Shift/Alt 支持
  • 批量重命名
  • 文件预览
    • 查看 图片预览[24] 了解更多详情
  • 退出到当前目录
  • 异步文件 I/O(剪切/复制/粘贴)
  • 自定义颜色/主题
  • 行号
    • 跳转到编号
  • 文件选择器
  • 垃圾箱支持

unsetunset待办事项unsetunset

  • [x] 内置命令行
    • 大部分工作
    • 当前实现有点粗糙
    • [ ] 标签自动完成(进行中)
参考资料
[1]

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


编程悟道
自制软件研发、软件商店,全栈,ARTS 、架构,模型,原生系统,后端(Node、React)以及跨平台技术(Flutter、RN).vue.js react.js next.js express koa hapi uniapp Astro
 最新文章