Bat:一种具有语法高亮和 Git 集成的 Cat 类命令
创始人
2024-03-02 00:23:20
0

在类 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 。比如,下面这个例子。我将使用 catbat 命令来展示 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
Monokai Extended
Monokai Extended Bright
Monokai Extended Light
Monokai Extended Origin
TwoDark

要使用其他主题,例如 TwoDark,请运行:

$ bat --theme=TwoDark file.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

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

BAT集体布局高考AI报志...
导语: 2025年,全国高考人数1335万。 尽管小幅回落,但仍是...
2025-06-18 10:42:46
Applications ...
Abstract 分数阶微积分是一种抽象的概念,探索...
2025-06-01 19:47:01
使用SpringBoot+...
文章目录前言一、JWT是什么?二、使用步骤1.创建项...
2025-06-01 00:09:35
【JavaEE】Tomca...
目录 一、JDK的检查      二、下载并安装Tomcat 三、...
2025-05-31 20:47:20
【JavaEE】Tomca...
1.为什么手动搭建 手动搭建的原因是,servlet...
2025-05-30 12:39:40
mybatis-Plus解...
1.首先,创建一个StringBoot项目 2.导入...
2025-05-30 09:20:42

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...