Home

Awesome

bat translate-svg

「 一个cat(1)克隆,搭配语法高亮和Git集成。 」

中文 | english


更新 ✅

<!-- doc-templite START generated --> <!-- repo = 'sharkdp/bat' --> <!-- commit = '84734eac9d19f90f942e587e7ec7d3aad4cda2c2' --> <!-- time = '2018 8.30' -->
翻译的原文与日期最新更新更多
commit⏰ 2018 8.30last中文翻译
<!-- doc-templite END generated -->

贡献

欢迎 👏 勘误/校对/更新贡献 😊 具体贡献请看

生活

If help, buy me coffee —— 营养跟不上了,给我来瓶营养快线吧! 💰


<p align="center"> <img src="doc/logo-header.svg" alt="bat - a cat clone with wings"><br> <a href="https://travis-ci.org/sharkdp/bat"><img src="https://travis-ci.org/sharkdp/bat.svg?branch=master" alt="Build Status"></a> <img src="https://img.shields.io/crates/l/bat.svg" alt="license"> <a href="https://crates.io/crates/bat"><img src="https://img.shields.io/crates/v/bat.svg?colorB=319e8c" alt="Version info"></a><br> 一个 <i>cat(1)</i> 克隆与语法高亮和Git集成。. </p>

目录

<!-- START doctoc generated TOC please keep comment here to allow auto update --> <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --> <!-- END doctoc generated TOC please keep comment here to allow auto update -->

语法高亮显示

bat支持大量编程和mark**语言的语法高亮显示:

Syntax highlighting example

Git集成

batgit沟通,显示关于修改的索引 (参见左侧栏) :

Git integration example

自动分页

如果输出对于一个屏幕来说太大,bat可以less控制自己的输出管道,.

文件串联

哦..你也可以用它来串联文件 :wink: . 每当bat检测到非交互式终端,它将回退到打印普通文件内容.

如何使用

在终端上显示单个文件

> bat README.md

一次显示多个文件

> bat src/*.rs

从stdin读取,指定明确语言

> yaml2json .travis.yml | json_pp | bat -l json
> curl -s https://raw.githubusercontent.com/sharkdp/bat/master/src/main.rs | bat -l rs

作为cat的替代品:

bat > note.md  # 快速 创建一个新文件

bat header.md content.md footer.md > document.md

bat -n main.rs  # 展示行数 (only)

bat f - g  # 先输出 'f', 之后是 stdin, 之后是 'g'.

安装

Ubuntu

一些和其他基于Debian的Linux发行版.

releases页面,下载最新的.deb包裹,并通过以下方式安装:

sudo dpkg -i bat_0.6.0_amd64.deb  # adapt version number and architecture

Arch Linux

你可以安装bat,官方来源:

pacman -S bat

Void Linux

你可以通过xbps-install安装bat:

xbps-install -S bat

FreeBSD

您可以用pkg安装预编译的bat:

pkg install bat

或者在FreeBSD上,自己构建它:

cd /usr/ports/textproc/bat
make install

macOS

你可以安装bat,通过brew:

brew install bat

二进制文件

releases页面,其中预建版本的bat,有许多不同的架构, 要看清楚啦.

源项目

如果你想建立bat的源代码,您需要Rust 1.26或更高版本. 然后你可以使用cargo建立一切:

cargo install bat

在macOS上,您可能必须安装cmake (brew install cmake) 以便构建一些依赖项.

定制

高亮主题

使用bat --list-themes获取语​​法高亮显示的所有可用主题的列表. 选择TwoDark主题,运行bat--theme=TwoDark选项,或设置BAT_THEME环境变量为TwoDark. 在你的shell启动文件中使用export BAT_THEME="TwoDark",使更改永久化.

输出风格

你可以使用--style这个外观的选项,控制bat输出. 您可以使用--style=numbers,changes例如,仅显示Git更改和行号 ,但没有网格和文件头.

添加新语法/语言定义

bat使用优秀的语法高亮的库syntect. syntect可以阅读任何Sublime Text的.sublime-syntax文件和主题. 要添加新语法定义,请执行以下操作.

使用语法定义文件创建一个文件夹:

BAT_CONFIG_DIR="$(bat cache --config-dir)"

mkdir -p "$BAT_CONFIG_DIR/syntaxes"
cd "$BAT_CONFIG_DIR/syntaxes"

# 把 '.sublime-syntax' 语言定义文件 放到
# 这个syntaxes目录 (or 它的 子目录), 例如:
git clone https://github.com/tellnobody1/sublime-purescript-syntax

现在使用以下命令将这些文件解析为二进制缓存:

bat cache --init

最后,使用bat --list-languages检查新语言是否可用.

如果您想要返回默认设置,请使用:

bat cache --clear

添加新主题

这与我们添加新语法定义的方式非常相似.

首先,使用新语法高亮显示主题创建一个文件夹:

BAT_CONFIG_DIR="$(bat cache --config-dir)"

mkdir -p "$BAT_CONFIG_DIR/themes"
cd "$BAT_CONFIG_DIR/themes"

# 下载一个主题是 '.tmTheme' 格式, for example:
git clone https://github.com/greggb/sublime-snazzy

# 更新缓存
bat cache --init

最后,使用bat --list-themes检查新主题是否可用.

使用不同的页面方式

bat使用在PAGER环境变量中,指定的页面方式. 如果未设置此变量,less就是默认使用的. 如果要使用其他页面方式,可以修改PAGER变量或设置BAT_PAGER环境变量,以覆盖在PAGER中指定的内容. 如果要将命令行参数传递给页面方式,则需要创建一个 小的shell脚本 作为包装器,例如:

#!/bin/bash

less --tabs 4 -RF "$@"

故障排除

终端和颜色

bat控制终端还是没有真彩色支持. 但是,语法高亮主题中的颜色未针对8位颜色进行优化,因此强烈建议您使用具有24位真彩色支持的终端 (terminator,konsole,iTerm2,...) . 看看本文了解更多详情和完整的支持truecolor的终端列表.

确保你的truecolor终端,设置了COLORTERM变量到truecolor或者24bit. 除此以外,bat将无法确定是否支持24位转义序列 (并回退到8位颜色) .

开发

# Recursive clone to retrieve all submodules
git clone --recursive https://github.com/sharkdp/bat

# Build (debug version)
cd bat
cargo build

# Run unit tests and integration tests
cargo test

# Install (release version)
cargo install

# 构建 bat 二进制文件, 若修改了的语法和主题
bash assets/create.sh
cargo install -f

项目目标和替代方案

bat试图实现以下目标:

如果你正在寻找类似的程序,有很多选择. 看这个文件进行比较.