Awesome
bat
「 一个cat(1)
克隆,搭配语法高亮和Git集成。 」
更新 ✅
<!-- doc-templite START generated --> <!-- repo = 'sharkdp/bat' --> <!-- commit = '84734eac9d19f90f942e587e7ec7d3aad4cda2c2' --> <!-- time = '2018 8.30' -->翻译的原文 | 与日期 | 最新更新 | 更多 |
---|---|---|---|
commit | ⏰ 2018 8.30 | 中文翻译 |
贡献
欢迎 👏 勘误/校对/更新贡献 😊 具体贡献请看
生活
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**
语言的语法高亮显示:
Git集成
bat
与git
沟通,显示关于修改的索引 (参见左侧栏) :
自动分页
如果输出对于一个屏幕来说太大,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
试图实现以下目标:
- 提供美观,高级的语法高亮
- 与Git集成以显示文件修改
- 是 (POSIX)
cat
的直接替代品 - 提供用户友好的命令行界面
如果你正在寻找类似的程序,有很多选择. 看这个文件进行比较.