當前位置: 妍妍網 > 碼農

使用 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」 立即獲取計畫地址。