iT邦幫忙

2021 iThome 鐵人賽

DAY 11
0
Modern Web

尋覓網站開發的神兵利器系列 第 11

10 - BAT - 使用高亮預覽文件

  • 分享至 

  • twitterImage
  •  

cat 指令可以預覽文件的內容,是個簡單好用的指令,但是它不會對不同的檔案類型提供語法高亮的預覽,因此看起來會有點吃力。

專為開發而生的預覽指令 BAT

BAT 是個 cat 指令的加強版,它特別針對開發者的需求,導入了包含語法高亮、整合 Git 等功能,使開發者可以更輕鬆、方便地預覽程式碼。

安裝 BAT

使用 Homebrew 安裝 BAT :

brew install bat

安裝完成後,可以使用 bat 指令叫用。

使用 BAT

batcat 的使用方式類似,在參數中輸入想要預覽的檔案路徑,就可以觀看預覽。

bat .editorconfig

https://ithelp.ithome.com.tw/upload/images/20210926/20107789WY88h0zOtL.png

這個例子我們可以看到語法的高亮顯示,並且在左邊有以符號表示 Git 狀態的標示。

如果加上 -A 參數,我們可以看到平常不會顯示的字元,例如空白或換行。

bat -A .editorconfig

https://ithelp.ithome.com.tw/upload/images/20210926/20107789Xu4lQcJtXN.png

如果想要同時預覽多個檔案,可以使用 glob 來替換指定的檔案路徑。

bat days/**/*.md

上例會將所有在 days 目錄下,不管階層地輸出預覽所有的 .md 檔案內容。

除了從檔案讀取內容外, bat 也提供 stdin 的輸入。

curl -s https://raw.githubusercontent.com/sharkdp/bat/master/CONTRIBUTING.md | bat

bat 會自動判斷內容的類型(只會以第一行判斷,例如 #!/bin/sh ),並提供相關的語法高亮,也可以使用 -l 指定格式。

curl -s https://raw.githubusercontent.com/sharkdp/bat/master/CONTRIBUTING.md | bat -l md

整合其他的工具

bat 可以與許多不同的工具整合,這裡介紹幾個常用的工具。

fd

請確認已經安裝 fd

fd 指令可以使用 -X (或 --exec-batch )提供搜尋結果的預覽功能:

fd -H -e js -X bat

上例會產生所有 js 檔案的預覽。

ripgrep

請確認已經安裝 ripgrep

使用 batgrep 可以為 ripgrep 所搜尋的結果帶來更好的預覽效果。

在使用前須要先安裝 bat-extras ,這個工具提供許多工具與 BAT 的整合使用。

brew install eth-p/software/bat-extras

安裝完成後,我們就可以使用 batgrep 指令叫用 ripgrep 找尋結果並使用 bat 顯示預覽。

batgrep foo days/

https://ithelp.ithome.com.tw/upload/images/20210926/20107789rj7zz0N3Km.png

本文重點整理

  • cat 提供的檔案預覽功能,對於開發來說,較為簡單。
  • bat 提供語法高亮與 Git 整合的預覽功能,對於開發者較為合適。
  • bat -A 會顯示隱藏的字元,例如空白或換行。
  • 除了檔案內容外, bat 還提供 stdin 的輸入方式。
  • 使用 bat -l 可以指定語言高亮的目標。
  • bat 可以與其他工具整合。
    • fdbat 可以使用 -X 參數結合,讓我們可以預覽搜尋結果的檔案內容。
    • ripgrepbat 可以藉由 batgrep 工具整合,讓搜尋結果使用 bat 預覽。

參考資料


上一篇
09 - ripgrep - 快速查找檔案內容
下一篇
11 - exa - 總覽目錄的工具
系列文
尋覓網站開發的神兵利器40
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
ckp6250
iT邦好手 1 級 ‧ 2021-10-18 11:39:54

才走1/3,腳就麻了,
當一名工程師真的不容易啊,
工具這麼多,指令那麼繁雜,歹賺啊!

我要不要改行去賣芋仔冰?

我要留言

立即登入留言