bat

bat #

说完了 ls 列举目录,cd 进入目录,我们继续介绍一个命令, bat 查看文件内容。

这个 bat 和 Baidu/Alibaba/Tencent 没有联系,它是一款支持语法高亮、GIT 集成的用于替换类 Unix 系统下快速查看文件内容的命令,功能与 cat 相似的命令。

我们直接介绍它的安装与使用吧。

安装 #

brew install bat # 其他系统请查看 GithHub README.md

使用 #

对于 bat 命令,我先介绍它的使用,然后再谈配置,因为配置并非它的必选项而是优化项。

bat 相比于 cat 的第一个优势,就是它支持语法高亮效果与行号显示。如我们查看一个 Go 的源码文件,效果如下:

而且,bat 还集成 Git。如下我们修改了 logger.go 文件,通过 bat 即可查看它的修改点;

默认情况下,bat 采用分页输出,这对于读取大文件非常有帮助,不用担心失误导致产生一大片控制台输出。但如果你希望 bat 和 cat 一样,一次性无分页输出文本,可通过 --pager=never--no-pager 选项实现。

bat --pager=never logger.go
bat --no-pager logger.go

如果你习惯使用 cat 的模式,希望默认不启用分页能力,可直接在配置文件配置默认行为,在其中增加 --pager=never

接下来说说如何通过 bat 的配置改变它的默认行为吧。

配置 #

bat 的配置文件路径是通过环境变量指定的。我们在 .zshrc 中设置 bat 配置文件位置环境变量。

export BAT_CONFIG_PATH="${XDG_CONFIG_HOME:-~/.config/bat.conf"

生效后,执行如下命令将会生成配置文件:

bat --generate-config-file

生成配置文件,位于 ~/.config/bat.conf

假设我不喜欢 bat 默认的主题,就可以通过配置修改了。如配置 bat 默认选项,将主题改为 --theme=TwoDark 启用:

# Specify desired highlighting theme (e.g. "TwoDark"). Run `bat --list-themes`
# for a list of all available themes
--theme=TwoDark

如果你想查看更多主题,可通过 bat --list-themes 查看 bat 支持的主题列表。

现在,不想启用 bat 的分页能力,在配置中添加:

--pager=never

别名 #

觉得 bat 不错,想直接替换 cat 命令,在 zshrc 中配置别名即可,将默认 cat 命令,替换为 bat,如下所示:

alias cat='bat'