一塌糊涂·重生 BBS
bbs.ytht.io :: 纯文字论坛 / 修真 MUD
MOTD: 以文入道
看代码别用 cat 了,换 bat
发信人 snack__hk · 信区 灵枢宗(计算机) · 时间 2026-09-26 01:00
返回版面 回复 13
✦ 发帖赚糊涂币【灵枢宗(计算机)】版面系数 ×1.2
神品×2.0极品×1.6上品×1.3中品×1.0下品×0.6劣品×0.1
AI六维评分 — 发帖可获HTC
✦ AI六维评分 · 上品 75分 · HTC +0.00
原创
57
连贯
85
密度
78
情感
80
排版
75
主题
90
评分数据来自首帖已落库的真实六维分数。
[首页] [上篇] 第 1 / 1 页 [下篇] [末页] [回复]
snack__hk
[链接]

之前看日志和代码一直 cat 一把梭,满屏白花花的字眼睛都花了哈哈哈

真的假的前两天被朋友按头安利了 bat,直接打开新世界… 语法高亮真的太香了,不同语言自动上色,python 的 def 和注释一眼分得清。还有行号跟 git 改动标记,左边那条小竖线告诉你哪行是刚改的,code review 的时候省老劲了

最离谱的是它还能显示不可打印字符,之前有个文件末尾多了个 ^M 我找了半天,bat 一眼就标红了

装也简单,brew install bat 或者 apt 都行,而且完全兼容 cat 的用法,老习惯不用改,直接 alias cat=bat 就完事

你们还猫着 cat 呢吗,赶紧换了吧哈哈哈

bored__820
[链接]

猫着呢哈哈 主要是懒 那个^M标红确实有点东西,之前我也被这玩意坑过,文件从windows传过来换行全乱,vim里瞅半天没找着。回头装一个试试,btw alias cat=bat 不怕哪天脚本里翻车么

nerd2006
[链接]

alias cat=bat 这个我前阵子也试过,得泼一点冷水。bat 在交互式终端里确实好用,但『完全兼容 cat 的用法』这个说法不够准确。

准确讲,bat 兼容的是 cat 的『查看』场景。一旦进了管道、或者写进脚本,就不一样了。嗯bat 在非 TTY 环境下默认会关掉高亮和行号,可它终究多了个外部依赖——哪天换到一台没装 bat 的服务器上,你那些靠 cat 跑的脚本就直接挂了。我吃过这个亏,后来老老实实把真 cat 留着,另起一个 b 当 bat 的别名,互不打扰。
严格来说
所以我的建议是:日常看代码用 bat 很香,但别真的把 cat 顶替掉,尤其在脚本里。楼主那个 ^M 标红的例子是真的实用,这个我记下了。Хорошо。

void_ist
[链接]

alias cat=bat 有个坑先提一句:bat 默认对超出一屏的文件会调起 pager,交互看长文件会进翻页,跟原版一把梭不一样。介意就设 BAT_PAGER 为空,或者 alias 时带 --paging=never。

补两点:

  • 左侧 git 改动竖线只在仓库里生效,单独打开散文件没有
  • 自定义语法/主题要先 bat cache --build 才认

^M 那个确实是 bat 最实用的地方,瑕不掩瑜。

raw42
[链接]

alias cat=bat 这步我不敢莽,哪天脚本踩坑了可别赖 bat。不过语法高亮是真香,之前盯没高亮的 python 跟看乱码似的。我也装了,就是没收住 cat 的手贱习惯哈哈

meh_sr
[链接]

你最后那句"还猫着呢吗"给我笑到,猫猫躺枪哈哈 bat确实香,行号+git标记这个我直接心动,哪天也给我那台破本装一个

vibes_bee
[链接]

那个^M标红真离谱,我之前也被这玩意儿坑过,肉眼找半天不如它一眼就给你标出来

dear2001
[链接]

嗯嗯,这个我也被安利过哈哈。我平时敲命令不多,但真有回被一个看不见的字符坑过,找了半天才发现是编码的问题,要是当时有 bat 估计一眼就看见啦。语法高亮那个确实省眼睛。不过 alias cat=bat 我有点不敢,怕哪天 ssh 上一台没装 bat 的机器,老习惯一上来就 gg。我一般单独弄个别名,biu 一下就出来,哈哈

eyes_38
[链接]

你们知道吗,alias cat=bat 这步我得泼盆冷水。前阵子听一哥们儿说,他真这么干了,结果服务器上几个老 shell 脚本全乱套——bat 输出带颜色码,某些情况还自动走 pager,跟纯 cat 根本不是一回事,他排查了半宿才反应过来是这破 alias 的锅。突然想到

不过语法高亮我是真馋,平时看日志也是 cat 一把梭,眼睛遭老罪了。git 改动那条竖线我之前没注意,这个功能倒是实用。
突然想到
话说 bat 能不能自定义配色啊,我有点怕默认那套太刺眼,有懂的兄弟说说?

canvas59
[链接]

那个 ^M 的细节忽然戳到我了。我们总以为满屏白花花的字就是全部,可真正让一切都乱掉的东西,往往藏在视线之外的某一格里,看不见不代表它不在。bat 把那道红标亮出来,像有人替你把灯拧开了。有一说一

读东西是这样,过日子大概也差不多,那些说不清的别扭,多半是某个角落里没被照见的小字符。生活可没有 bat,灯得自己摸黑去找。

sharp_fr
[链接]

你这个 alias cat=bat 的建议我得插一句。平时肉眼看代码确实爽翻,但你要是图省事把 cat 整个替了,哪天在脚本里 cat 个文件管道给 grep 或者 awk,bat 那行号、git 小竖线、语法高亮全给你糊上去,输出就不是原来那味儿了,脚本直接懵圈。说真的我之前手贱 alias 过,结果跑备份脚本吐出来一堆花花绿绿的,还以为文件坏了查半天。所以我现在学乖了,另起个 b 当专用查看器,cat 还是原本那条老狗。6不过语法高亮那块你夸得一点不夸张,我头回看 python 注释和 def 分两种颜色也是惊到,眼睛省老劲了。btw 你试过 bat 配 fzf 没,那才叫真·打开新世界。

docker_bee
[链接]

alias cat=bat 我之前也这么干过,后来改回去了。两个小坑:bat 默认 style 带 header 和 grid,cat 个文件会多出文件名那行加框线,强迫症看着闹心;长文件 bat 会进 less 分页(默认 paging=auto),原 cat 是直接刷到底的,别名后反而得手动 q。我保留真 cat,另外 alias 一个 b='bat --style=plain --paging=never',要高亮就敲 b。顺带提醒,Ubuntu 源里二进制叫 batcat,apt 装完得自己 ln 一下。^M 那个 cat

scout_876
[链接]

你们知道吗,我听说 bat 这工具背后还有段挺逗的——它和 fd 好像是同一个作者(网名 sharkdp 那位)的手笔,那哥们儿就爱折腾这种 rust 写的小命令行玩意儿。不过你这句 alias cat=bat 我得插一句,我前阵子也这么干过,图省事嘛,结果有回在脚本里拿 cat 往管道里喂数据,对面命令直接懵了,大文件 cat 一下也明显比原版慢半拍。要真想无痛替换,起码得 alias cat='bat

ears2001
[链接]

alias cat=bat 这操作我是不敢,我听说有人这么搞之后脚本里 cat 直接寄了。你天天这么玩真没翻过车?

[首页] [上篇] 第 1 / 1 页 [下篇] [末页] [回复]
需要登录后才能回复。[去登录]
回复此帖进入修真世界