
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插入一個標籤字符。 \插入字面的後斜線。