
BIM是带有语法突出显示的终端文本编辑器。
受VIM的启发(一个人可能会说一个不良模仿),并且具有类似的基于模式的编辑,BIM最初是为Toaruos编写的,但也已在Linux,Sortix,FreeBSD和MacOS中进行了测试。
BIM旨在作为Toaruos中随附的文本编辑器,这是一种从头开始构建的爱好操作系统。
BIM的目标是轻巧且没有外部*依赖项,并在轻巧,可扩展的包装中提供现代化的编辑体验。
hjkl导航。git diff状态在线,以及未保存的更改。BIM需要一个足够的类似Unix的C库和一个具有某些GNU扩展的C99编译器(例如__attribute__((constructor)) ))。
BIM 3还需要具有相似要求的Kuroko。 BIM通常与linux构建的kuroko解释器静态链接,并动态链接到toaruos构建。
BIM已成功地针对许多目标,包括各种BSD,Toaruos,Sortix等。
首先,安装kuroko:
git clone https://github.com/kuroko-lang/kuroko
cd kuroko
make && sudo make install # You can obtain deb packages, or build one with 'fpm' with 'make deb'然后构建BIM:
git clone https://github.com/klange/bim
cd bim
make && sudo make install然后安装示例配置:
cp docs/example.bim3rc ~ /.bim3rcBIM已在许多终端中进行了测试,尽管它不使用terminfo数据库,但绝大多数残留的仿真器甚至经典的DEC硬件都应该提供基本功能。
如果您使用的终端有一些怪癖或与默认假设相处不佳,则可以修改行为以适合您的环境。
可以通过BIMRC中的quirk命令或-O命令行选项来控制功能功能,要么通过“怪异”来控制。
quirk命令的格式是quirk(envvar,teststr,'no...','can...',...) ,其中ENVVAR是环境变量的名称,而teststr是一个需要检查的字符串,必须是环境变量的前缀。
例如, quirk('TERM','xterm','nounicode')将禁用以“ xterm”(包括“ xterm-256color”)开始的所有终端上的Unicode输出。
您还可以指定具有$COLORTERM环境变量的怪癖,或某些IDE设置的$TERMINAL_EMULATOR变量。
文档/示例中提供了一些示例怪异配置。
默认情况下,建议并假定Unicode/UTF-8支持。 nounicode Quirk选项将禁用UTF-8字符的输出,并将其渲染为codepoint提示,例如<U+1234> 。
默认情况下还假定了256颜色和24位颜色,分别用no256color和no24bit怪异禁用它们。
如果您有一个特别低色的终端,那么nobright Quirk将暗示主题只能使用较低的8种颜色。
支持三种滚动模式:换档滚动,插入/删除滚动和redraw滚动。
默认情况下假定偏移滚动( ^[[1S / ^[[1T )。如果您的终端支持插入 /删除滚动( ^[[L / ^[[M ),请启用caninsert Quirk。
如果两者都不可用,请在滚动时使用noscroll Quirk重新绘制文本字段。这可能会很慢!
默认情况下,假定鼠标支持^[[?1000h 。使用nomouse Quirk禁用它。
如果您的终端支持SGR鼠标模式(“ 1006”),请启用cansgrmouse怪异。大多数类似Xterm的终端都支持这一点,它将为较大终端窗口中的单元单击提供支持。
还假定替代屏幕支持。即使您的终端不支持它,这通常很好,但是如果它引起问题,则noaltscreen怪异会将其禁用。
默认的键键可以在doc/mappings.md中找到。
可以使用bim --dump-mappings生成此列表。
可用命令的完整列表可以在doc/commands.md中找到。
可以使用bim --dump-commands生成此列表。
您可以使用BIM使用bim -c (无行号)和bim -C (具有行号)的语法突出显示在终端中显示文件。

您可以将文本输送到BIM进行编辑,并使用bim -进行编辑。请注意,BIM将在启动之前等待文件结束,因此不适合用作打印机(计划了Pager支持)。
BIM也可以用bim --html使用语法高光源代码生成HTML文档;将使用配置的主题。
BIM包含少数界面和语法突出显示的配色方案。
一个普通的16色主题。可以配置以在有或没有明亮颜色支持的终端上使用。看起来有点像Irssi。

原始的24位颜色主题,带有质朴的棕色和柔和的柔和颜色。

256颜色的Sunsmoke版本可用于不支持24位颜色的终端。

一个基于VIM同名主题的256色主题。

一个基于流行的调色板的24位颜色主题。

一个基于原子和崇高的24位颜色主题,具有较低的对比度蓝调。

基于JanWarchoł

BIM将在启动时自动导入~/.bim3rc 。
详细的BIMRC示例可在doc/example.bim3rc上找到。
BIM脚本是用Kuroko编写的。
并非所有语法荧光笔都是完整的或支持各自语言的所有功能。
BIM的核心功能生活在bim.c
语法荧光笔和主题是用黑族编写的,并在syntax和themes目录中找到。
BIM的正则表达引擎是我随意烹饪的。它的功能在某种程度上有限,行为可能会发生变化。
逃脱。^匹配线路的开始, $匹配结束。.匹配任何角色。[]括号可用于替代匹配。^当第一个角色否定了比赛。ab进行简单的范围。-在括号表达式中,将其放在否定^之后,例如[-_*]之后。^ ,请在第一个位置使用任何位置。 [^^]意思是“除了^ ”。] ,请使用] 。t 。使用\进行字面的后斜线。. , [] ,单个字符可以与以下内容结合在一起,并进行回溯:?可选匹配一次。*匹配任何数量的事件。+至少在发生时匹配。*和+默认情况下是贪婪的,但是可以跟随吗?使它们成为非怪兽。()可以在捕获组的顶层使用括号。执行替换时,支持一些逃生序列:
t插入一个标签字符。 \插入字面的后斜线。