Bat:一種具有語法高亮和 Git 整合的 Cat 類命令

Sk發表於2018-09-29

在類 UNIX 系統中,我們使用 cat 命令去列印和連線檔案。使用 cat 命令,我們能將檔案目錄列印到到標準輸出,合成幾個檔案為一個目標檔案,還有追加幾個檔案到目標檔案中。今天,我偶然發現一個具有相似作用的命令叫做 “Bat” ,它是 cat 命令的一個克隆版,具有一些例如語法高亮、 Git 整合和自動分頁等非常酷的特性。在這個簡略指南中,我們將講述如何在 Linux 中安裝和使用 bat 命令。

安裝

Bat 可以在 Arch Linux 的預設軟體源中獲取。 所以你可以使用 pacman 命令在任何基於 arch 的系統上來安裝它。

$ sudo pacman -S bat

在 Debian、Ubuntu、Linux Mint 等系統中,從其釋出頁面下載 .deb 檔案,然後用下面的命令來安裝。

$ sudo apt install gdebi
$ sudo gdebi bat_0.5.0_amd64.deb

對於其他系統,你也許需要從軟體源編譯並安裝。確保你已經安裝了 Rust 1.26 或者更高版本。

然後執行以下命令來安裝 Bat:

$ cargo install bat

或者,你可以從 Linuxbrew 軟體包管理中來安裝它。

$ brew install bat

bat 命令的使用

bat 命令的使用與 cat 命令的使用非常相似。

使用 bat 命令建立一個新的檔案:

$ bat > file.txt

使用 bat 命令來檢視檔案內容,只需要:

$ bat file.txt

你能同時檢視多個檔案:

$ bat file1.txt file2.txt

將多個檔案的內容合併至一個單獨檔案中:

$ bat file1.txt file2.txt file3.txt > document.txt

就像我之前提到的那樣,除了瀏覽和編輯檔案以外,bat 命令有一些非常酷的特性。

bat 命令支援大多數程式設計和標記語言的語法高亮syntax highlighting。比如,下面這個例子。我將使用 catbat 命令來展示 reverse.py 的內容。

你注意到區別了嗎? cat 命令以純文字格式顯示檔案的內容,而 bat 命令顯示了語法高亮和整齊的文字對齊格式。更好了不是嗎?

如果你只想顯示行號(而沒有表格)使用 -n 標記。

$ bat -n reverse.py

另一個 bat 命令中值得注意的特性是它支援自動分頁automatic paging。 它的意思是當檔案的輸出對於螢幕來說太大的時候,bat 命令自動將自己的輸出內容傳輸到 less 命令中,所以你可以一頁一頁的檢視輸出內容。

讓我給你看一個例子,使用 cat 命令檢視跨多個頁面的檔案的內容時,提示符會快速跳至檔案的最後一頁,你看不到內容的開頭和中間部分。

看一下下面的輸出:

正如你所看到的,cat 命令顯示了文章的最後一頁。

所以你也許需要去將使用 cat 命令的輸出傳輸到 less 命令中去從開頭一頁一頁的檢視內容。

$ cat reverse.py | less

現在你可以使用Enter鍵去一頁一頁的檢視輸出。然而當你使用 bat 命令時這些都是不必要的。bat 命令將自動傳輸跨越多個頁面的檔案的輸出。

$ bat reverse.py

現在按下Enter鍵去往下一頁。

bat 命令也支援 Git 整合GIT integration,這樣您就可以輕鬆檢視/編輯 Git 儲存庫中的檔案。 它與 Git 連線可以顯示關於索引的修改。(看左欄)

定製 Bat

如果你不喜歡預設主題,你也可以修改它。Bat 同樣有修改它的選項。

若要顯示可用主題,只需執行:

$ bat --list-themes
1337
DarkNeon
Default
GitHub
Monokai Extended
Monokai Extended Bright
Monokai Extended Light
Monokai Extended Origin
TwoDark

要使用其他主題,例如 TwoDark,請執行:

$ bat --theme=TwoDark file.txt

如果你想永久改變主題,在你的 shells 啟動檔案中加入 export BAT_THEME="TwoDark"

bat 還可以選擇修改輸出的外觀。使用 --style 選項來修改輸出外觀。僅顯示 Git 的更改和行號但不顯示網格和檔案頭,請使用 --style=numbers,changes

更多詳細資訊,請參閱 Bat 專案的 GitHub 庫(連結在文末)。

最好,這就是目前的全部內容了。希望這篇文章會幫到你。更多精彩文章即將到來,敬請關注!

乾杯!


via: https://www.ostechnix.com/bat-a-cat-clone-with-syntax-highlighting-and-git-integration/

作者:SK 選題:lujun9972 譯者:z52527 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

相關文章