bat 终端上netdom怎么支持_bat 一只会飞的猫

今天开始新建了一个叫 commandlinefu 的子目录(或者叫分类), 专门分享命令行相关的东西。

5秒钟版本

这次要跟大家分享的是一个叫bathttps://github.com/sharkdp/bat的命令工具。

这个工具bat主要采用Rust编写, 它可以说是Linux里cat(猫)的克隆和增强版(加上了翅膀 = bat)。

安装方法 https://github.com/sharkdp/bat#installation

#Fedora
sudo dnf install bat

# Windows
# Windows没有 choco的可以直接去 https://github.com/sharkdp/bat/releases 下载 bat-*-x86_64-pc-windows-msvc.zip
choco install bat

# Mac
brew install bat

如果你不想看文章内容,只看这里就是,添加以下配置到.zshrc(或.bashrc):

#bat https://github.com/sharkdp/bat
export BAT_STYLE=plain
export BAT_THEME="TwoDark"
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
export MANROFFOPT="-c"

好了,到此,本文的5秒钟版本就已经结束了。

关于名称

bat(中文可以译为“蝙蝠”),因为它功能跟cat类似,但是在cat的基本上有增强功能,所以就取名bat吧(b在c前面), 而cat可以翻译成猫的意思。
作者原文是“A cat(1) clone with wings. ”, 即带翅膀的克隆猫。
需要注意的是,cat的本意取不是取自猫,而是单词concatenate的缩写,而concatenate一般是“连接”的意思。

比如很多年前电脑书上流传的隐藏zip文件到图片里面, 这算是一种文件连接的操作:

cat mypic.jpg files.zip > amazing.jpg

主要亮点

1. 语法高亮

作为程序员,大部分时候其实cat的文件都源码和配置文件, 这个时候bat用处可大了。
其高亮功能主要是使用了syntect这个crate, 值得庆幸的是,syntect并没有自己发明轮子,
而是复用了Sublime Text的语法高亮定义. 好处显而易见,
可以兼容现有的ST高亮主题,或者稍做转换就可以拿来用。

如果你想查看下bat支持哪些主题,也很简单,直接执行bat --list-themes 即可,自带高亮效果显示,如下图:

a7f18c60f8479db31ce0bde01dbdc2d1.png

bat-list-themes-cmd-2020-05-14-23-48-52.png

一些配色展示:

0d95911bbfcf9b5801fad8db68f8ec16.png

bat-syntax-hi-3-2020-05-14-23-45-37.png

在它支持的配色里面(没有老灯最喜欢的Gruvbox),老灯比较喜欢TwoDark这个配色. 比较方便的是,bat支持使用环境变量来配置一些东西,比如老灯在~/.zshrc中是这样配置的:

export BAT_STYLE=plain
export BAT_THEME="TwoDark"

使用 plain 主要是避免bat在每列前面输出tab,因为默认是这样的:

aed03b39ef07dee64cc3c37fcaef7b97.png

bat-default-style-2020-05-15-00-12-53.png

老灯比较喜欢plain,简洁一些:

47fec27b654f6f9310e81a3c707b8736.png

bat-style-plain-2020-05-15-00-13-23.png

2. Git集成

如果你需要查看git修改内容,则 BAT_STYLE 配置至少要包含 changes:

29a4b6bc74cfb04c5d02e851c23fb11f.png

bat-style-changes-2020-05-15-00-15-38.png

3. 显示非打印字符

c0936422762da8f80e0934d5e36efb78.png

bat-show-non-printable-2020-05-15-00-18-35.png

4. 自动paging

这个分页我觉得还是不翻译好,所以就用了paging
如果是cat, 它会直接输出文件的所有输出,这个对于脚本来说无疑是必要的功能。
但是如果是人在终端查看一些东西呢?我们其实一次只能看一屏。所以,bat它会自动分页。
当计算到内容大于一屏时,它就会通过管道调用less来显示了.

如果要自定义pager, 可以这样:

export BAT_PAGER="less -RFX"

5. 跟其它工具集成

当然,bat 也能像 cat 一样连接文件。

Oh.. you can also use it to concatenate files wink. Whenever bat detects a non-interactive terminal (i.e. when you pipe into another process or into a file), bat will act as a drop-in replacement for cat and fall back to printing the plain file contents.

这里要说一下, 官方说可以用作Git的diff工具,这里老灯倾向于推荐diffr而不是使用这个cat的替代品。
毕竟术业有专攻。

man

bat可以作为man的pager,然后将man高亮显示:

export MANPAGER="sh -c 'col -bx | bat -l man -p'"
export MANROFFOPT="-c"

为什么要设置了MANROFFOPT="-c"?如果遇到显示问题,比如像这样配色显示有问题,且多出了很多1m0m之类的乱码:

5e828d4c6bc92e239d52dafb7bc06b24.png

bat-as-man-pager-problem-2020-05-15-01-02-21.png

加上MANROFFOPT="-c"就没问题了:

ad8b38bec5360f2a1745a6bc20d367e3.png

bat-as-man-pager-2020-05-15-01-00-39.png

这个man有了bat之后,真是炫。

其它的集成,老灯表示用处不是很大,感兴趣的可以自行去官网查看https://github.com/sharkdp/bat#integration-with-other-tools

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值