
BIMは、構文の強調表示を備えた端末テキストエディターです。
VIM(悪い模倣と言うかもしれません)に触発され、同様のモードベースの編集を特徴とするBIMは、もともとToaruosのために書かれていましたが、Linux、Sortix、FreeBSD、およびMacOSでもテストされています。
BIMは、Toaruosに含まれているテキストエディターとして意図されています。これは、ゼロから構築された趣味のオペレーティングシステムです。
BIMは、外部*依存関係なしで軽量で特徴的なものであることを目指しており、軽量で拡張可能なパッケージで最新の編集体験を提供します。
hjklナビゲーション。git diffステータスをインラインで示し、救済されていない変更を示します。BIMには、十分にUNIXのようなCライブラリと、特定のGNU拡張機能( __attribute__((constructor)) )など)を備えたC99コンパイラが必要です。
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コマンドラインオプションを使用して、「Quirks」で制御できます。
quirkコマンドの形式はquirk(envvar,teststr,'no...','can...',...)ですENVVAR環境変数の名前であり、 teststr環境変数のプレフィックスである必要がある文字列です。
たとえば、 quirk('TERM','xterm','nounicode') 「Xterm」(「Xterm-256Color」を含む)から始まるすべての端子のUnicode出力を無効にします。
また、 $COLORTERM Environment変数、または特定のIDESによって設定された$TERMINAL_EMULATOR変数を使用して、Quirksを指定することもできます。
いくつかの例のQuirk構成は、docs/example.bim3rcで提供されており、レンダリングの問題が発生している場合に開始するのに適した場所になる可能性があります。
Unicode/UTF-8サポートが推奨され、デフォルトで想定されます。 nounicode Quirkオプションは、UTF-8文字の出力を無効にし、代わりに<U+1234>のようなコードポイントのヒントとしてレンダリングします。
256色と24ビットの色もデフォルトで想定されており、それぞれno256colorおよびno24bit癖でそれらを無効にします。
特に低い色のターミナルがある場合、 nobright Quirkは、下部8色のみを使用する必要があることをテーマに示唆します。
3つのスクロールモードがサポートされています:シフトスクロール、挿入/削除スクロール、およびRedRawスクロール。
Shiftスクロール( ^[[1S / ^[[1T )がデフォルトで想定されます。端末が挿入 /削除スクロールをサポートしている場合( ^[[L / ^[[M ]、 caninsert quirkを有効にします。
どちらのスクロールオプションも使用できない場合は、 noscroll Quirkを使用して、スクロール時にテキストフィールドを再描画します。これはおそらく遅いでしょう!
^[[?1000hを使用したマウスのサポートは、デフォルトで想定されます。 nomouse癖を使用して無効にします。
端子がSGRマウスモード( "1006")をサポートしている場合は、 cansgrmouse Quirkを有効にします。ほとんどのXterm-Like端子はこれをサポートしており、より大きな端子ウィンドウでセルをクリックするのをサポートします。
代替画面サポートも想定されています。端末がそれをサポートしていなくても、これは通常問題ですが、それが問題を引き起こした場合、 noaltscreen Quirkはそれを無効にします。
デフォルトのkeybindingsは、docs/mappings.mdにあります。
このリストはbim --dump-mappingsで生成できます。
利用可能なコマンドの完全なリストは、docs/commands.mdに記載されています。
このリストはbim --dump-commandsで生成できます。
BIMを使用して、 bim -c (ライン番号なし)およびbim -C (行番号付き)で強調表示されている構文を使用して、端末にファイルを表示できます。

bim -で編集するために、テキストをBIMにパイプすることができます。 BIMは起動する前にファイルの終わりを待つため、これはポケットベルとしての使用には適していません(ページャーサポートが計画されています)。
BIMを使用してbim --html SynTax-Highlightedソースコードを使用してHTMLドキュメントを生成することもできます。構成されたテーマが使用されます。
BIMには、インターフェイスと構文の強調表示用のいくつかの配色が含まれています。
単純な16色のテーマ。明るい色のサポートの有無にかかわらず、ターミナルで使用するように構成できます。 Irssiのように見えます。

素朴な茶色と落ち着いたパステルカラーを備えたオリジナルの24ビット色のテーマ。

24ビットの色をサポートしていないターミナルで使用するためのSunmokeの256色のバージョン。

VIMの同じ名前のテーマに基づいた256色のテーマ。

人気のあるカラーパレットに基づいた24ビットカラーテーマ。

AtomとSublimeの1つに基づいた24ビットの色のテーマは、低コントラストブルーを特徴としています。

JanWarchołによってセレン化に基づいています

BIMは、起動時に~/.bim3rcを自動的にインポートします。
詳細なBIMRCの例は、docs/example.bim3rcで入手できます。
BIMスクリプトはKurokoで書かれています。
すべての構文蛍光物が完全であるわけではないか、それぞれの言語のすべての機能をサポートしているわけではありません。
BIMのコア機能はbim.cに住んでいます。
構文の蛍光ペンとテーマは黒子で書かれており、 syntaxとthemesディレクトリにあります。
Bimの正規表現エンジンは、私が偶然調理したものです。その機能はやや制限されており、動作は変化する可能性があります。
で逃げることができます。^行の開始と一致し、 $終了と一致します。.任意のキャラクターに一致します。[]ブラケットは、代替マッチに使用できます。^最初のキャラクターが試合を無効にすると。abを使用します。-ブラケット式に、 [-_*]などの否定^の後に他のキャラクターの前に配置します。^ブラケット式に含めるには、最初の位置の後に任意の位置を使用します。 [^^] 「 ^ 」を除く「何でも」を意味します。]ブラケット式で、 ]を使用します。tとして表される場合があります。文字通りのバックスラッシュには\使用します。. 、 [] 、および単一の文字を以下と組み合わせることができ、バックトラッキング:?オプションで一致します。*発生数の任意の数と一致します。+少なくともOccuranceで一致します。*そして+はデフォルトで貪欲ですが、それに続くことができますか?それらを非グリーディにするために。()括弧は、キャプチャグループの上部レベルで使用できます。交換を実行するとき、いくつかのエスケープシーケンスがサポートされています:
tタブ文字を挿入します。 \リテラルバックスラッシュを挿入します。