BAT,一个带有语法突出显示的CAT(1)克隆,Git集成是用Rust编写的

2020-10-22 09:35:54

BAT与GIT通信以显示对索引的修改(请参见左侧栏):

如果输出对于一个屏幕来说太大,BAT可以将自己的输出通过管道传输到寻呼机(例如更少)。

哦.。您还可以使用它来连接文件😉。每当BAT检测到非交互式终端时(即,当您通过管道将另一个处理器连接到文件中时),BAT将充当cat的替代,并回退到打印纯文件内容。

从stdin读取,自动确定语法(请注意,仅当可以从文件的第一行确定语法时,突出显示才起作用,通常通过#!/bin/sh这样的分隔符)。

Bat>;note.md#快速创建新文件bat header.md content.md footer.md>;document ent.mdbat-n main.rs#show line number(仅限)bat f-g#output';f';f';,stdin,';g';。

您可以使用find的-exec选项通过BAT预览所有搜索结果:

如果您碰巧使用了fd,则可以使用-X/--exec-Batch选项执行相同的操作:

可以将BAT与Tail-f结合使用,以使用语法突出显示功能持续监视给定的文件。

请注意,我们必须关闭分页才能正常工作。我们还显式地指定了语法(-l log),因为在这种情况下不能自动检测到它。

您可以结合使用BAT和git show来查看给定文件的较旧版本,并使用适当的语法突出显示:

请注意,当前不支持在Diffs中突出显示语法。如果你在找这个的话,可以去德尔塔航空公司看看。

BAT输出中的行号和Git修改标记会使复制文件内容变得困难。为了防止出现这种情况,您可以使用-p/--Plain选项调用BAT,或者只需将输出通过管道传输到xClip:

BAT将检测到输出被重定向,并打印纯文件内容。

通过设置MANPAGER环境变量,BAT可以用作MAN的彩色寻呼机:

如果您更喜欢将其捆绑到一个新命令中,您也可以使用蝙蝠侠。

请注意,手册页语法是在此存储库中开发的,仍然需要进行一些工作。

PrettyBAT脚本是一个包装器,它将格式化代码并使用BAT打印它。

BAT正在经历Ubuntu和Debian软件包的发布过程,并且从Eoan19.10开始可用于Ubuntu。在Debian BAT上,目前只在不稳定的SID&34;分支上可用。

如果您以这种方式安装BAT,请注意,可执行文件可能会安装为BATCAT而不是BAT(由于另一个软件包的名称冲突)。您可以设置BAT->;BATCAT符号链接或别名,以防止可能因此而出现的任何问题,并与其他发行版保持一致:

如果该软件包尚未升级到您的Ubuntu/Debian安装,或者您想要最新版本的BAT,请从发布页面下载最新的.deb软件包,并通过以下方式进行安装:

您可以从官方来源安装BAT包,前提是您启用了相应的存储库:

在Windows上安装BAT有几个选项。安装BAT后,请查看在Windows上使用BAT一节。

请查看针对许多不同架构的BAT预构建版本的发布页面。静态链接二进制文件也可用:查找文件名中包含MUSL的归档文件。

如果你想从源代码构建BAT,你需要Rust1.40或更高版本。然后,您可以使用货物来建造一切:

请注意,手册页或shell完成文件等附加文件不能以这种方式安装。它们将由货物生成,并且应该在货物目标文件夹(在Build下)中可用。

使用BAT--LIST-Themes获取所有可用于语法突出显示的主题的列表。要选择TwoDark主题,请使用--heme=TwoDark选项调用BAT,或将BAT_THEME环境变量设置为TwoDark。在shell的启动文件中使用EXPORT BAT_THEME=#34;TwoDark&34;使更改成为永久性的。或者,使用BATS配置文件。

如果要预览自定义文件上的不同主题,可以使用以下命令(为此需要使用fzf):

默认情况下,BAT在深色背景上看起来很不错。但是,如果您的终端使用浅色背景,某些主题(如GitHub或OneHalfLight)将更适合您。您也可以按照下面的添加新主题一节使用自定义主题。

ANSI-DUCK在任何有深色背景的终端上看起来都很不错。它使用3位颜色:黑色、红色、绿色、黄色、蓝色、洋红色、青色和白色。

Base16是为base16终端主题设计的。它使用4位颜色(3位颜色加上明亮的变体),符合base16样式指南。

Base16-256是为base16-shell设计的,它用16到21的8位颜色取代了某些明亮的颜色。不要仅仅因为您有256色终端但没有使用base16-shell就使用它。

当您更改终端主题时,屏幕上已有的BAT输出将更新以匹配。

您可以使用--style选项来控制BATS输出的外观。例如,您可以使用--style=Numbers,Changes来仅显示Git更改和行号,而不显示网格和文件头。设置BAT_STYLE环境变量以使这些更改永久化,或使用BATS配置文件。

如果您发现某个特定语法在BAT中不可用,您可以按照以下说明轻松地将新语法添加到当前的BAT安装中。

BAT使用出色的syntectlibrary进行语法突出显示。Syntect可以读取任何SUBLIME文本。SUBLIME-语法文件和主题。

查找Sublime语法包的一个很好的资源是包控制。找到asynTax后,请执行以下操作:

Mkdir-p&34;$(BAT--CONFIG-DIR)/SYNTAIES";CD";$(BAT--CONFIG-DIR)/SYNTAIES";#PUT NEW';.SUHUIME-SYNTAX';Language Definition Files#放在此文件夹(或其子目录)中,例如:GIT克隆https://github.com/tellnobody1/sublime-purescript-syntax。

如果您认为默认情况下应该在BAT中包含特定语法,请在阅读策略和说明后考虑打开语法请求票证:打开语法请求。

Mkdir-p";$(BAT--CONFIG-DIR)/Themes";cd";$(BAT--CONFIG-DIR)/Themes";#下载';.tmTheme&#格式的主题,例如:git克隆https://github.com/greggb/sublime-snazzy#更新二进制缓存--内部版本。

您可以使用--map-syntax命令行选项添加新的(或更改现有的)文件名模式。该选项采用以下形式的参数:模式:语法,其中模式是与文件名和绝对文件路径匹配的全局模式。语法部分是支持的语言的全名(使用bat--list-languages进行概述)。

注意:您可能希望将此选项用作BATS配置文件中的一个条目,而不是在命令行上传递它(见下文)。

示例:要对文件扩展名为.conf的所有文件使用";INI&34;语法突出显示,请使用。

示例:要使用";Git Ignore";语法打开所有名为.Ignore(完全匹配)的文件,请使用:

示例:要使用";Apache Conf";语法打开/etc/apache2的子文件夹中的所有.conf文件,请使用(此映射已内置):

BAT使用在PAGER环境变量中指定的PAGER。如果未设置此变量,则默认情况下使用LESS。如果要使用不同的分页程序,可以修改PAGER变量或设置BAT_PAGER环境变量以覆盖在PAGER中指定的内容。

如果要将命令行参数传递给分页程序,也可以通过PAGER/BAT_PAGER变量设置它们:

除了使用环境变量,您还可以使用BATS配置文件来配置分页程序(--pager选项)。

注意:默认情况下,如果寻呼机设置为LESS(并且未指定命令行选项),则BAT将向寻呼机传递以下命令行选项:-R/--raw-control-chars、-F/--QUIT-IF-ONE-SCREEN和-X/--no-init。最后一个选项(-X)仅用于530之前的较低版本。

要正确解释ANSI颜色,需要使用-R选项。第二个选项(-F)指示less在输出大小小于终端的垂直大小时立即退出。这对于小文件很方便,因为您不必按Q键退出分页程序。需要第三个选项(-X)来修复LESS旧版本中--Quit-if-one-creen功能的错误。不幸的是,它还在更少的时间内打破了对鼠标滚轮的支持。

如果您想要在旧版本的Less上启用鼠标滚轮滚动,您可以传递Just-R(在上面的示例中,这将禁用单屏退出功能)。对于低于530或更新的版本,它应该可以开箱即用。

BAT可以自行将制表符扩展到4个空格,而不依赖于寻呼机。要更改这一点,只需在--tabs参数中添加您想要显示的空格数量。

注意:不会考虑为分页程序定义制表位(通过BAT的--pager参数,或者通过LESS环境变量来减少),因为分页程序已经得到扩展的空格,而不是制表符。添加此行为是为了避免侧栏导致的缩进问题。使用--tabs=0调用bat将覆盖它,并让页签被寻呼机使用。

如果您使用MacOS中的暗模式功能,您可能希望配置BAT以使用基于操作系统主题的不同主题。以下代码段在暗模式下使用默认主题,在亮模式下使用GitHub主题。

BAT也可以使用配置文件进行自定义。文件的位置取决于您的操作系统。若要获取系统的默认路径,请调用。

或者,您可以使用BAT_CONFIG_PATH环境变量将BAT指向配置文件的非默认位置:

配置文件是命令行参数的简单列表。使用bat--help查看可能选项和值的完整列表。此外,您还可以通过在行前加上#字符来添加注释。

#将主题设置为";TwoDark";--TwoDark";#显示行号、Git修改和文件头(但不显示网格)--style=";Numbers,Changes,Header";#在终端上使用斜体文本(不是所有终端都支持)--italic-text=Always#对.ino文件使用C++语法--map-synch";*.ino:C++";

Windows只包含一个非常有限的更多形式的寻呼机。您可以从Windows二进制文件的主页或通过Chocolatey以较低的价格下载。要使用它,请将二进制文件放在PATH中的目录中,或者定义一个环境变量。巧克力包安装的自动化程度较低。

从v1511开始,Windows 10本机支持conhost.exe(命令提示符)和PowerShell中的颜色,以及更新版本的bash中的颜色。在早期版本的Windows上,您可以使用Cmder,它包括ConEmu。

注意:Less的Git和MSYS版本无法正确解释Windows上的颜色。如果没有安装任何其他寻呼机,可以通过传递--paging=Never或将BAT_PAGER设置为空字符串来完全禁用分页。

Windows上的BAT本身不支持Cygwin的Unix样式路径(/cygdrive/*)。将绝对cygwin路径作为参数传递时,BAT将遇到以下错误:系统找不到指定的路径。(操作系统错误3)。

这可以通过创建包装器或向.bash_profile文件添加以下函数来解决:

BAT(){LOCAL INDEX LOCAL ARGS=(";$@&34;)用于$(seq 0${#args[@]})中的索引;执行案例";${args[index]}";in-*)继续;;*)[-e";${args[index]}";]&;&;args[index]=";$(cygpath-windows";${args[index]}";)";esac完成命令BAT";${args[@]}";}。

无论是否支持真彩色,BAT都可以处理终端。但是,大多数语法突出显示主题中的颜色没有针对8位颜色进行优化。因此,强烈建议您使用支持24位真彩色的终端(Terminator、Konsole、iTerm2等),或使用为受限颜色集设计的基本8位主题之一。有关更多详细信息和支持真彩色的终端的完整列表,请参阅本文。

确保您的truecolor终端将COLORTERM变量设置为truecolor或24bit。否则,BAT将无法确定是否支持24位转义序列(并回退到8位颜色)。

请尝试不同的主题(有关列表,请参阅BAT--LIST-Themes)。OneHalfDark和OneHalfLight主题提供更亮的网格和线条颜色。

BAT本身支持UTF-8和UTF-16。对于每一种其他文件编码,您可能需要首先转换为UTF-8,因为编码通常不能被自动检测到。您可以iconv这样做。例如:如果您有一个拉丁文-1(ISO-8859-1)编码的PHP文件,您可以调用:

注意:如果BAT无法自动检测到语法,则可能必须使用-l/--language选项。

#递归克隆以检索所有子模块git克隆--递归https://github.com/sharkdp/bat#build(调试版本)cd batCargo build--bins#运行单元测试和集成测试scargo test#Install(Release Version)Cargo Install--PATH。--LOCKED#使用修改后的语法和主题构建一个BAT二进制文件/create.sh货物安装--路径。--锁定--力。

如果你在寻找类似的课程,有很多选择。请参阅本文档进行比较。

BAT可以根据麻省理工学院许可或Apache许可2.0的条款提供,由您选择。