
BIM ist ein terminaler Texteditor mit Syntax -Hervorhebung.
Inspiriert von Vim (man könnte sagen, eine schlechte Nachahmung) und eine ähnliche modusbasierte Bearbeitung, wurde BIM ursprünglich für Toaruos geschrieben, wurde aber auch in Linux, Sortix, Freebsd und MacOS getestet.
BIM ist als eingeschlossener Texteditor in Toaruos gedacht, einem von Grund auf neu erstellten Hobby -Betriebssystem.
BIM zielt darauf ab, leicht und fixiert zu sein, ohne externe* Abhängigkeiten und bieten ein modernes Bearbeitungserlebnis in einem leichten, erweiterbaren Paket.
hjkl -Navigation.git diff -Status-Inline zusammen mit nicht geretteten Änderungen. BIM benötigt eine ausreichend unixartige C-Bibliothek und einen C99-Compiler mit bestimmten GNU-Erweiterungen (wie __attribute__((constructor)) ).
BIM 3 braucht auch Kuroko, das ähnliche Anforderungen hat. BIM ist typischerweise statisch mit dem Kuroko -Interpreter für Linux -Builds verbunden und dynamisch für Toaruos -Builds verknüpft.
BIM wurde erfolgreich für eine Reihe von Zielen gebaut, darunter verschiedene BSDs, Toaruos, Sortix und andere.
Installieren Sie zuerst 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'Dann bauen Sie BIM:
git clone https://github.com/klange/bim
cd bim
make && sudo make installInstallieren Sie dann die Beispielkonfiguration:
cp docs/example.bim3rc ~ /.bim3rc BIM wurde in einer Reihe von Terminals getestet, und obwohl es keine terminfo -Datenbanken verwendet, sollte die grundlegende Funktionalität in der überwiegenden Mehrheit der Remnant -Emulatoren und sogar der klassischen DEC -Hardware verfügbar sein.
Wenn das von Ihnen verwendete Terminal einige Macken enthält oder mit den Standardannahmen nicht gut gespielt wird, können Sie das Verhalten für Ihre Umgebung ändern.
Fähigkeitsfunktionen können entweder über den quirk -Befehl in einem BIMRC oder mit der Befehlszeilenoption -O mit "Macken" gesteuert werden.
Das Format des quirk -Befehls lautet quirk(envvar,teststr,'no...','can...',...) wobei ENVVAR der Name einer Umgebungsvariablen und teststr ist, die überprüft werden muss, ob ein Präfix der Umgebungsvariablen sein muss.
Beispielsweise deaktiviert quirk('TERM','xterm','nounicode') die Unicode-Ausgabe an allen Terminals, beginnend mit "Xterm" (einschließlich "Xterm-256Color").
Sie können auch Macken mit der $COLORTERM Umgebungsvariablen oder der Variablen $TERMINAL_EMULATOR von bestimmten IDES angeben.
Einige Beispiel -Quirk -Konfigurationen sind in DOCS/Beispiel.BIM3RC bereitgestellt und können ein guter Ausgangspunkt sein, wenn Sie Rendering -Probleme haben.
Die Unterstützung von Unicode/UTF-8 wird standardmäßig empfohlen und angenommen. Die nounicode Quirk-Option deaktiviert die Ausgabe von UTF-8-Zeichen und rendert sie stattdessen als CodePoint-Hinweise wie <U+1234> .
256-farbige und 24-Bit-Farbe werden standardmäßig ebenfalls angenommen, deaktivieren Sie sie mit der no256color bzw. no24bit -Macken.
Wenn Sie ein besonders niedriges Anschluss haben, wird die nobright Quirk auf Themen hinweisen, dass nur die unteren 8 Farben verwendet werden sollten.
Drei Bildlaufmodi werden unterstützt: Schichtscrollen, Einfügen/Löschen von Scrolling und Neufahrtscrollen.
Schichtscrollen ( ^[[1S / ^[[1T ) wird standardmäßig angenommen. Wenn Ihr Terminal ein Einfügen / Löschen von Scrolling unterstützt ( ^[[L / ^[[M ), aktivieren Sie die caninsert -Quirk.
Wenn keine Scrolling -Option verfügbar ist, ziehen Sie das noscroll -Quirk, um das Textfeld beim Scrollen neu zu zeichnen. Das wird wahrscheinlich langsam sein!
Mausunterstützung mit ^[[?1000h wird standardmäßig angenommen. Verwenden Sie die nomouse -Quirk, um es zu deaktivieren.
Wenn Ihr Terminal die SGR -Mausmodi ("1006") unterstützt, aktivieren Sie die cansgrmouse -Quirk. Die meisten Xterm-ähnlichen Terminals unterstützen dies und unterstützt die Klick auf Zellen in größeren Anschlussfenstern.
Es wird auch eine alternative Bildschirmunterstützung angenommen. Dies ist normalerweise in Ordnung, auch wenn Ihr Terminal es nicht unterstützt, aber wenn es Probleme verursacht, deaktiviert die noaltscreen -Quirk es.
Standard -Schlüsselbindungen finden Sie in docs/mappings.md.
Diese Auflistung kann mit bim --dump-mappings erzeugt werden.
Eine vollständige Auflistung der verfügbaren Befehle finden Sie in DOCs/Commands.md.
Diese Auflistung kann mit bim --dump-commands erzeugt werden.
Sie können BIM verwenden, um Dateien in Ihrem Terminal mit Syntax -Hervorhebung mit bim -c (keine Zeilennummern) und bim -C (mit Zeilennummern) anzuzeigen.

Sie können Text zum BIM zur Bearbeitung mit bim - übergeben. Beachten Sie, dass BIM vor dem Start auf das Datei am Ende wartet. Dies ist daher nicht für die Verwendung als Pager geeignet (Pager-Unterstützung ist geplant).
BIM kann auch verwendet werden, um HTML-Dokumente mit Syntax-Highlight-Quellcode mit bim --html zu generieren. Das konfigurierte Thema wird verwendet.
BIM enthält eine Handvoll Farbschemata für die Schnittstelle und die Syntax -Hervorhebung.
Ein einfaches 16-Farben-Thema. Kann für die Verwendung in Terminals mit oder ohne helle Farbunterstützung konfiguriert werden. Sieht ein bisschen wie IRSSI aus.

Ein originales 24-Bit-Farbthema mit rustikalen Braunen und gedämpften Pastellfarben.

Eine 256-Farben-Version von Sunsmoke zur Verwendung in Terminals, die keine 24-Bit-Farbe unterstützen.

Ein 256-Farben-Thema, das auf dem gleichnamigen Thema für VIM basiert.

Ein 24-Bit-Farbthema basiert auf der beliebten Farbpalette.

Ein 24-Bit-Farbthema basiert auf dem für Atom und Sublime mit niedrigem Kontrast Blues.

Basierend auf Selenized von Jan Warchoł

BIM importiert automatisch ~/.bim3rc beim Start.
Ein detailliertes BIMRC -Beispiel finden Sie unter DOCS/Beispiel.BIM3RC.
BIM -Skripte sind in Kuroko geschrieben.
Nicht alle Syntax -Highlighter sind vollständig oder unterstützen alle Merkmale ihrer jeweiligen Sprachen.
BIMs Kernfunktionalität lebt in bim.c
Syntax -Highlighter und Themen sind in Kuroko geschrieben und in den Verzeichnissen syntax und themes enthalten.
Bims regulärer Ausdrucksmotor habe ich mir zufällig gekocht. Seine Funktionalität ist etwas begrenzt und das Verhalten unterliegt der Veränderung.
entkommen.^ entspricht dem Beginn einer Zeile, $ , $ dem Ende.. entspricht jedem Charakter.[] Klammern können für alternative Übereinstimmungen verwendet werden.^ Als der erste Charakter negiert das Match.ab für einfache Bereiche.- in einen Klammerausdruck einzuschließen, legen Sie ihn vor einem anderen Charakter, aber nach einem ^ , wie [-_*] .^ in einen Klammerausdruck aufzunehmen. [^^] bedeutet "alles außer ^ ".] ] um in einen Klammerexpression einzubeziehen.t dargestellt werden. Verwenden Sie \ für einen buchstäblichen Backslash.. , [] und einzelne Zeichen können mit dem Folgen mit Backtracking kombiniert werden:? optional einmal übereinstimmt einmal.* entspricht einer beliebigen Anzahl von Vorschlägen.+ Übereinstimmung zumindest zumindest bei Vorkommnis.* und + sind standardmäßig gierig, aber können sie befolgt werden ? um sie nicht greedisch zu machen.() Klammern können auf der oberen Ebene für Erfassungsgruppen verwendet werden.Bei der Durchführung von Ersatz werden einige Fluchtsequenzen unterstützt:
t fügt ein Registerkartenzeichen ein. \ fügt einen buchstäblichen Rückgang ein.