当前位置: 欣欣网 > 码农

使用 Rust 重写 cat 命令,让你的命令行查看文件如同有翅膀!

2024-03-20码农

开发者们都知道 cat 命令在查看文件内容时的重要性,但你是否想过让它变得更智能、更漂亮?今天就为大家介绍一个用 Rust 实现的开源项目 bat bat cat 的基础上进行了功能强化,它不仅包含了语法高亮,还集成了 Git 功能,并增加了自动分页等特性。接下来,我们将详细介绍如何使用 bat 以及其配置和自定义等方面的内容。

核心功能

  • 语法高亮 :支持多种编程和标记语言;

  • 与 Git 集成 :可以显示文件相对于 Git 索引的修改;

  • 自动分页 :输出内容多时会自动使用分页器;

  • 非交互式终端下的文件连接 :即使设置了分页器, bat 也能连接文件;

  • 显示不可打印的字符 :通过 -A/ --show-all 选项可显示和高亮非打印字符。

  • 如何使用

    # 在终端显示单个文件
    bat README.md
    # 同时展示多个文件
    bat src/*.rs
    # 从 stdin 读取并自动判断语法(通过首行如 #!/bin/sh)
    curl -s https://sh.rustup.rs | bat
    # 从 stdin 读取,并显式指定语言
    yaml2json .travis.yml | json_pp | bat -l json
    # 高亮显示非打印字符
    bat -A /etc/hosts
    # 作为 cat 的替代
    bat > note.md
    bat header.md content.md footer.md > document.md
    bat -n main.rs # 只显示行号
    bat f - g # 输出 'f', 然后是 stdin,然后是 'g'.



    与其他工具的集成

    bat 还支持与工具如 find fd fzf ripgrep tail -f 等的集成,更棒的是 bat 可以与 git show git diff 相结合来显示代码更改的旧版本或周围行,且有适当的语法高亮。

    安装说明

  • 对于 Ubuntu/Debian

  • sudo apt install bat

    安装后,可能需要设置一个 bat -> batcat 的链接或别名,避免与其他包的命名冲突。

  • 使用预构建的二进制文件 :可以访问 Release 页面下载适合你系统的预构建版本。

  • 通过源码安装 :需要 Rust 1.70.0 或更高版本,可以用以下命令安装:

  • cargo install --locked bat

    自定义与配置

    bat 允许使用者通过配置文件进行自定义,包括但不限于更换高亮主题、添加新的语法定义或主题、改变输出风格等。

    下面是一个配置文件的例子:

    # 设置主题为 "TwoDark"
    --theme="TwoDark"
    # 显示行号、Git 修改和文件头(但不显示网格)
    -->"numbers,changes,header"

    对于 bat 的更高级自定义和详尽的安装、配置方法,请查看项目的 README.md

    结语

    作为一个舒适高效的命令行工具, bat 不但使得在查看文件内容时拥有了更加友好的用户界面和视觉体验,还提供了丰富的自定义和集成选项,为开发者的日常工作带来了极大的便利。而且,作为一个 Rust 语言项目,它也展现了 Rust 在系统工具开发领域的强大潜力和效率。是否已经想尝试用上这个有翅膀的 cat 了呢?别犹豫,赶快体验一下 bat 带来的飞一般的感觉吧。

    文章精选

    「Rust

    关注公众号并回复 「bat」 立即获取项目地址。