An open API service indexing awesome lists of open source software.

https://github.com/chinanf-boy/bat-zh

🇨🇳翻译: <bat> 一个`cat(1)`克隆与语法高亮和Git集成 ❤️ 校对 ✅
https://github.com/chinanf-boy/bat-zh

cat docs git rust zh

Last synced: about 1 year ago
JSON representation

🇨🇳翻译: <bat> 一个`cat(1)`克隆与语法高亮和Git集成 ❤️ 校对 ✅

Awesome Lists containing this project

README

          

# bat [![translate-svg]][translate-list]

[translate-svg]: http://llever.com/translate.svg
[translate-list]: https://github.com/chinanf-boy/chinese-translate-list

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

[中文](./readme.md) | [english](https://github.com/sharkdp/bat)

---

## 更新 ✅

翻译的原文 | 与日期 | 最新更新 | 更多
---|---|---|---
[commit] | ⏰ 2018 8.30 | ![last] | [中文翻译][translate-list]

[last]: https://img.shields.io/github/last-commit/sharkdp/bat.svg
[commit]: https://github.com/sharkdp/bat/tree/84734eac9d19f90f942e587e7ec7d3aad4cda2c2

- [bat 中的语法高亮显示说明](assets/readme.md)

### 贡献

欢迎 👏 勘误/校对/更新贡献 😊 [具体贡献请看](https://github.com/chinanf-boy/chinese-translate-list#贡献)

## 生活

[If help, **buy** me coffee —— 营养跟不上了,给我来瓶营养快线吧! 💰](https://github.com/chinanf-boy/live-need-money)

---


bat - a cat clone with wings

Build Status
license
Version info

一个 cat(1) 克隆与语法高亮和Git集成。.

### 目录

- [语法高亮显示](#%E8%AF%AD%E6%B3%95%E9%AB%98%E4%BA%AE%E6%98%BE%E7%A4%BA)
- [Git集成](#git%E9%9B%86%E6%88%90)
- [自动分页](#%E8%87%AA%E5%8A%A8%E5%88%86%E9%A1%B5)
- [文件串联](#%E6%96%87%E4%BB%B6%E4%B8%B2%E8%81%94)
- [如何使用](#%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8)
- [安装](#%E5%AE%89%E8%A3%85)
- [Ubuntu](#ubuntu)
- [Arch Linux](#arch-linux)
- [Void Linux](#void-linux)
- [FreeBSD](#freebsd)
- [macOS](#macos)
- [二进制文件](#%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6)
- [源项目](#%E6%BA%90%E9%A1%B9%E7%9B%AE)
- [定制](#%E5%AE%9A%E5%88%B6)
- [高亮主题](#%E9%AB%98%E4%BA%AE%E4%B8%BB%E9%A2%98)
- [输出风格](#%E8%BE%93%E5%87%BA%E9%A3%8E%E6%A0%BC)
- [添加新语法/语言定义](#%E6%B7%BB%E5%8A%A0%E6%96%B0%E8%AF%AD%E6%B3%95%E8%AF%AD%E8%A8%80%E5%AE%9A%E4%B9%89)
- [添加新主题](#%E6%B7%BB%E5%8A%A0%E6%96%B0%E4%B8%BB%E9%A2%98)
- [使用不同的页面方式](#%E4%BD%BF%E7%94%A8%E4%B8%8D%E5%90%8C%E7%9A%84%E9%A1%B5%E9%9D%A2%E6%96%B9%E5%BC%8F)
- [故障排除](#%E6%95%85%E9%9A%9C%E6%8E%92%E9%99%A4)
- [终端和颜色](#%E7%BB%88%E7%AB%AF%E5%92%8C%E9%A2%9C%E8%89%B2)
- [开发](#%E5%BC%80%E5%8F%91)
- [项目目标和替代方案](#%E9%A1%B9%E7%9B%AE%E7%9B%AE%E6%A0%87%E5%92%8C%E6%9B%BF%E4%BB%A3%E6%96%B9%E6%A1%88)

### 语法高亮显示

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

![Syntax highlighting example](https://imgur.com/rGsdnDe.png)

### Git集成

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

![Git integration example](https://i.imgur.com/2lSW4RE.png)

### 自动分页

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

### 文件串联

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

## 如何使用

在终端上显示单个文件

```bash
> bat README.md
```

一次显示多个文件

```bash
> bat src/*.rs
```

从stdin读取,指定明确语言

```bash
> yaml2json .travis.yml | json_pp | bat -l json
```

```bash
> curl -s https://raw.githubusercontent.com/sharkdp/bat/master/src/main.rs | bat -l rs
```

作为`cat`的替代品:

```bash
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页面](https://github.com/sharkdp/bat/releases),下载最新的`.deb`包裹,并通过以下方式安装:

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

### Arch Linux

你可以安装[该`bat`包](https://www.archlinux.org/packages/community/x86_64/bat/),官方来源:

```bash
pacman -S bat
```

### Void Linux

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

xbps-install -S bat

### FreeBSD

您可以用pkg安装预编译的[`bat`包](https://www.freshports.org/textproc/bat):

```bash
pkg install bat
```

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

```bash
cd /usr/ports/textproc/bat
make install
```

### macOS

你可以安装`bat`,通过[brew](http://braumeister.org/formula/bat):

```bash
brew install bat
```

### 二进制文件

看[releases页面](https://github.com/sharkdp/bat/releases),其中预建版本的`bat`,有许多不同的架构, 要看清楚啦.

### 源项目

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

```bash
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`](https://github.com/trishume/syntect/). `syntect`可以阅读任何[Sublime Text的`.sublime-syntax`文件](https://www.sublimetext.com/docs/3/syntax.html)和主题. 要添加新语法定义,请执行以下操作.

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

```bash
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
```

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

```bash
bat cache --init
```

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

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

```bash
bat cache --clear
```

### 添加新主题

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

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

```bash
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脚本 作为包装器,例如:

```bash
#!/bin/bash

less --tabs 4 -RF "$@"
```

## 故障排除

### 终端和颜色

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

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

## 开发

```bash
# 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`试图实现以下目标:

- 提供美观,高级的语法高亮
- 与Git集成以显示文件修改
- 是 (POSIX)`cat` 的直接替代品
- 提供用户友好的命令行界面

如果你正在寻找类似的程序,有很多选择. 看[这个文件](doc/alternatives.zh.md)进行比较.