x-cmd pkg | yazi - 超快终端文件管理器

news2024/9/17 7:49:00

目录

    • 简介
    • 快速入门
    • 功能特点
    • 竞品和相关项目
    • 进一步阅读

简介

yazi 是由 github.com/sxyazi 用 Rust 开发的终端文件管理器,支持预览文本文件、pdf 文件、图像、视频,内置代码高亮功能。在内部,它使用 Tokio 作为其异步运行时,以非阻塞(事件驱动)的方式处理任务,效率高响应快。

TIP:

Yazi 采用了特殊的 Unicode 符号来标识各种类型的文件,这需要终端使用的字体中包含正确的字形才能正常显示。

官方推荐使用 nerd-fonts 字体,你可以从 Nerd Fonts project 网站中获取它。

快速入门

  1. 启动 yazi

    eval "$(curl https://get.x-cmd.com)"    # 安装 x-cmd
    x env use yazi                          # 安装 yazi
    yazi                                    # 直接启动 yazi
    EDITOR='nvim' yazi                      # 设定 nvim 为 yazi 默认使用的文本编辑器并启动 yazi
    

    Tip:

    • Linux/macOS:需要使用 $EDITOR 指定 yazi 调用的文本编辑器。
    • Windows:没有 $EDITOR 的概念,用户需要根据需要修改文本打开器。
  2. 常用快捷键:

    • 目录导航:
      • j:向下移动光标
      • k:向上移动光标
      • h:返回上一级目录
      • l:进入选中目录
    • 处理文件:
      • d:删除选中文件
      • x:剪切选中文件
      • y:复制选中文件
      • p:粘贴文件
      • r:重命名文件
    • 其他:
      • .:显示隐藏文件
      • q:退出
      • ~:打开帮助
      • Z:使用 fzf 跳转到目录或显示文件(需要安装 fzf )
  3. yy shell 包装器,它能提供在退出 yazi 时更改当前工作目录的功能:

    yy() {
        local _yy_tmp=; local _yy_cwd=
        _yy_tmp="$(command mktemp -t "yazi-cwd.XXXXXX")"
        command yazi "$@" --cwd-file="$_yy_tmp"
    
        _yy_cwd="$(cat -- "$_yy_tmp")"
        command rm -f -- "$_yy_tmp"
    
        if [ -n "$_yy_cwd" ] && [ "$_yy_cwd" != "$PWD" ]; then
            command cd -- "$_yy_cwd"
        fi
    }
    yy    # 使用 yy 命令启动 yazi
    

4.使用案例:

在这里插入图片描述

功能特点

  1. 上手简单,使用体验极佳:采用更为现代化的 UI 界面,快捷键设计与 vim 类似,支持批量操作和鼠标滚动,与多个常用工具(如 fdrgfzf)集成,并且支持在 Windows、macOS、Linux 上使用。
  2. 全程异步化:所有的 I/O 操作和 CPU 密集型任务都以异步方式执行,CPU 任务分布在多个线程上,避免了阻塞和资源闲置。
  3. 优秀的异步任务调度和管理:能实时更新进度,支持任务取消,对不同任务能按优先级分配。
  4. 支持多种图像协议:适配多种终端和多路复用器(tmuxzellij),支持多种图像协议并与 Überzug++ 集成,尽可能覆盖所有终端。
  5. 内置代码高亮和图像解码:支持代码语法高亮。结合预加载机制,加速了图像和普通文件的预览加载速度。
  6. 并发式插件系统:支持使用 Lua 制作插件(UI插件、功能插件、自定义预览器和自定义预加载器)。

竞品和相关项目

  1. xplr: 使用 Rust 开发的 TUI 文件管理器。设计理念与 yazi 不同,它强调简洁和可扩展性,功能简单,适合在资源受限的环境中使用。
  2. nnn: 由 github.com/jarun 使用 C 语言开发的终端文件管理器,功能全面,采用 UI 界面更为简约。
  3. superfile: 使用 Go 开发的终端文件管理器,功能齐全,UI 界面非常精致且美观。
  4. broot: 使用 Rust 开发的终端文件管理器,采用树状视图探索文件层次结构、操作文件。
  5. ranger: 使用 Python 开发的终端文件管理器,具有 Vi 风格的键绑定和预览功能,UI 界面在风格上比较复古。
  6. x ls: 由 x-cmd 使用 Posix shell 和 awk 实现的模块,用于以交互式 TUI 的方式查看文件/文件夹的相关信息。

进一步阅读

  • yazi 源代码 - yazi 项目的源代码托管在 GitHub,你可以在这里找到最新版本的 yazi 和参与社区贡献。
  • yazi 官方文档 - 学习和使用 yazi 的官方网站,提供了 yazi 的文档、教程和社区资源。

更多内容请查阅 : pkg/yazi

转载请标明原文链接 :https://www.x-cmd.com/pkg/yazi


关注微信官方公众号 : oh my x

获取开源软件和 x-cmd 最新用法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1958813.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【百度超级智能体】零代码构建趣味语言游戏:秋日寻宝知识问答

前言 文心智能体平台AgentBuilder是由百度推出的一个创新平台,该平台基于其先进的文心大模型。这个平台旨在帮助开发者根据各自的专业领域和应用场景,以灵活多样的开发方法构建定制化的智能体(Agent)。通过简单易用的prompt编排功…

详解Qt 定时器QTimer

文章目录 前言QTimer 是什么什么时候使用 QTimer定时器时间到了调用什么函数 QTimer 的所有函数构造函数与析构函数QTimer(QObject *parent nullptr) 基本操作void start(int msec)void start()void stop()bool isActive() const 定时器属性void setInterval(int msec)int int…

瑞芯微平台RK3568系统开发(1)安卓环境搭建

1 开发环境搭建 注意: 重要!重要!重要!自己编译后的固件, 必须先确认io_domains(4.2章节)后,才可以下载到板子运行, 否则可能造成烧坏RK3568的情况。 1.1 更新系统 ~$ sudo apt-get update 1.2 安装依…

MATLAB多元函数梯度下降法找最小值-梯度演示-绘制梯度方向

如果海森矩阵在所有可能的参数值上都是正定的,则该函数是凸的;函数将呈现为光滑的碗状,使得训练过程相对简单。存在单 一的全局最小值,不会有局部最小值或鞍点。 沿着梯度方向,函数变化最快。 x,y点的更新…

LNMP动态网站环境部署

1、LINUX部署 stop firewallddisable selinux 2、Nginx部署 ​ vim /etc/yum.repos.d/nginx.repo [nginx-stable] namenginx stable repo baseurlhttp://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck1 enabled1 gpgkeyhttps://nginx.org/keys/nginx_signing.…

Java 多线程编程核心技术权威指南(电子版教程)

前言 Java多线程编程是现代软件开发中不可忽视的关键技术,它能有效利用多核处理器的计算能力,实现并发执行,提升系统性能和响应速度。本篇博客将带您深入了解Java线程的核心概念、高级用法以及并发编程中的常见问题与解决方案。无论您是Java…

前端web开发HTML+CSS3+移动web(0基础,超详细)——第1天

一、开发坏境的准备 1,在微软商店下载并安装VS Code 以及谷歌浏览器或者其他浏览器(我这里使用的是Microsoft Edge) 2,打开vs code ,在电脑桌面新建一个文件夹命名为code,将文件夹拖拽到vs code 中的右边…

《python语言程序设计》2018版第6章第19题几何问题点的位置,利用4.31显示如何测试一个点是在一条有向线的左、右还是刚好在线上

# 这个是4.31的代码,一个函数里包含了。在线上,在线左,在线右 def judgePoint(x0, y0, x1, y1, x2, y2):juMethod ((x1 - x0) * (y2 - y0)) - ((x2 - x0) * (y1 - y0))if juMethod > 0:print("p2 is on the left side of the line f…

MATLAB 共轭梯度法求解线性方程组(附代码)

共轭梯度法求解线性方程组 1. 引言 共轭梯度法(Conjugate Gradient Method)是一种用于求解大型稀疏对称正定线性方程组的迭代算法。该方法结合了梯度下降法和共轭方向的概念,以达到更快速的收敛。共轭梯度法 是介于最速下降法与牛顿法之间的…

Android 11(R) IPC Binder机制 初版

Android 系统分为三层。最上层是application应用层,第二层是framework层,第三层是native层 1.Android 中的应用层和系统服务层不在同一个进程,系统服务在单独的进程中。每个应用的进程都是zygote fork出来的。 2.Android中不同应用属于不同…

数据驱动未来:构建下一代湖仓一体电商数据分析平台,引领实时商业智能革命

1.1 项目背景 本项目是一个创新的湖仓一体实时电商数据分析平台,旨在为电商平台提供深度的数据洞察和业务分析。技术层面,项目涵盖了从基础架构搭建到大数据技术组件的集成,采用了湖仓一体的设计理念,实现了数据仓库与数据湖的有…

《程序猿入职必会(4) · Vue 完成 CURD 案例 》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

【优选算法】——leetcode——438.找到字符串中所有字母异位词

目录 1.题目 2.题目理解 3.算法原理 1.如何快速判断两个字符串是否是异位词 2.解决问题 暴力求解——>滑动窗口哈希表 滑动窗口 利用滑动窗口哈希表解决问题 优化:更新结果的判断条件 4.编程代码 C代码 1.频率统计 2. 双指针 C语言代码 1.字符频率…

传统CS网络的新生——基于2G网络的远程灌溉实现

概述:iphone 实现远程电话触发,实现灌溉绿植的一般方法 方法一: 远程电话触发,音频线左右声道会产生一个信号,可以在后端利用SR锁存器暂存信号,后级可以接相应的控制电路实现灌溉。 方法二: 同…

记录阮一峰grid教程笔记

前言 看了阮一峰的grid教程,做一个笔记,主要自己看,有理解错误的地方后续更正,有新的理解后续补充。教程链接如下: CSS Grid 网格布局教程 - 阮一峰的网络日志 grid主要分为容器属性和项目的属性,在行列布…

React 学习——Context机制层级组件通信

核心思路:(适用于所有层级,不仅仅是爷孙 父子) createContext方法创建一个上下文对象在顶层组件 通过Provider组件提供数据在底层组件,通过useContext钩子函数使用数据 import { createContext, useContext } from …

NSSRound#4 Team

[NSSRound#4 SWPU]1zweb 考察&#xff1a;phar的反序列化 1.打开环境&#xff0c;审计代码 1.非预期解 直接用file伪协议读取flag,或直接读取flag file:///flag /flag 2.正常解法 用读取文件读取index.php,upload.php的源码 index.php: <?php class LoveNss{publi…

Java面试八股之Spring DAO的作用

Spring DAO的作用 Spring DAO (Data Access Object) 是 Spring 框架的一个重要组成部分&#xff0c;它提供了一套用于简化数据访问操作的抽象层。Spring DAO 的核心目的是使开发人员能够更容易地处理数据访问相关的异常&#xff0c;并提供一致的异常处理机制&#xff0c;同时简…

翻译: 可视化深度学习神经网络一

这是一个随意书写的28*28像素、分辨率很低的数字 3 但你的大脑一看见就能轻松辨识出来 &#xff0c;我想要你好好欣赏这点 人脑能够毫无障碍地辨识是非常厉害的 我的意思是&#xff0c;这个、这个、还有这个&#xff0c;都能被识别为 3 即使前后图像的图形组成有很大差异 当你…

什么情况?我代码没了

前两天检视代码时&#xff0c;发现PR里面有两个提交的描述信息一模一样&#xff0c;于是我提出应该将这两个提交合并成一个&#xff0c;保持提交树的清晰。 1 先储存起来&#xff01; 而同事这时正在开发别的特性&#xff0c;工作区不是干净的&#xff0c;没法直接执行 git r…