2021-05-12 14:32:11
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
命令支援大多數程式設計和標示語言的語法高亮syntax highlighting。比如,下面這個例子。我將使用 cat
和 bat
命令來展示 reverse.py
的內容。
你注意到區別了嗎? cat
命令以純文字格式顯示檔案的內容,而 bat
命令顯示了語法高亮和整齊的文字對齊格式。更好了不是嗎?
如果你只想顯示行號(而沒有表格)使用 -n
標記。
$ bat -n reverse.py
另一個 bat
命令中值得注意的特性是它支援自動分頁automatic paging。 它的意思是當檔案的輸出對於螢幕來說太大的時候,bat
命令自動將自己的輸出內容傳輸到 less
命令中,所以你可以一頁一頁的檢視輸出內容。
讓我給你看一個例子,使用 cat
命令檢視跨多個頁面的檔案的內容時,提示符會快速跳至檔案的最後一頁,你看不到內容的開頭和中間部分。
看一下下面的輸出:
正如你所看到的,cat
命令顯示了文章的最後一頁。
所以你也許需要去將使用 cat
命令的輸出傳輸到 less
命令中去從開頭一頁一頁的檢視內容。
$ cat reverse.py |less
現在你可以使用確認鍵去一頁一頁的檢視輸出。然而當你使用 bat
命令時這些都是不必要的。bat
命令將自動傳輸跨越多個頁面的檔案的輸出。
$ bat reverse.py
現在按下確認鍵去往下一頁。
bat
命令也支援 Git 整合GIT integration,這樣您就可以輕鬆檢視/編輯 Git 儲存庫中的檔案。 它與 Git 連線可以顯示關於索引的修改。(看左欄)
客製化 Bat
如果你不喜歡預設主題,你也可以修改它。Bat 同樣有修改它的選項。
若要顯示可用主題,只需執行:
$ bat --list-themes
1337
DarkNeon
Default
GitHub
MonokaiExtended
MonokaiExtendedBright
MonokaiExtendedLight
MonokaiExtendedOrigin
TwoDark
要使用其他主題,例如 TwoDark,請執行:
$ bat --theme=TwoDarkfile.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
相關文章