Bat:一種具有語法高亮和 Git 集成的 Cat 類命令
在類 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
命令支持大多數編程和標記語言的 語法高亮 。比如,下面這個例子。我將使用 cat
和 bat
命令來展示 reverse.py
的內容。
你注意到區別了嗎? cat
命令以純文本格式顯示文件的內容,而 bat
命令顯示了語法高亮和整齊的文本對齊格式。更好了不是嗎?
如果你只想顯示行號(而沒有表格)使用 -n
標記。
$ bat -n reverse.py
另一個 bat
命令中值得注意的特性是它支持 自動分頁 。 它的意思是當文件的輸出對於屏幕來說太大的時候,bat
命令自動將自己的輸出內容傳輸到 less
命令中,所以你可以一頁一頁的查看輸出內容。
讓我給你看一個例子,使用 cat
命令查看跨多個頁面的文件的內容時,提示符會快速跳至文件的最後一頁,你看不到內容的開頭和中間部分。
看一下下面的輸出:
正如你所看到的,cat
命令顯示了文章的最後一頁。
所以你也許需要去將使用 cat
命令的輸出傳輸到 less
命令中去從開頭一頁一頁的查看內容。
$ cat reverse.py | less
現在你可以使用回車鍵去一頁一頁的查看輸出。然而當你使用 bat
命令時這些都是不必要的。bat
命令將自動傳輸跨越多個頁面的文件的輸出。
$ bat reverse.py
現在按下回車鍵去往下一頁。
bat
命令也支持 Git 集成 ,這樣您就可以輕鬆查看/編輯 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
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive