Kiluaは、小さく、拡張可能で、Luaを搭載したテキストエディターです。

このプロジェクトは、もともと@Antirezによって書かれた最小限のキロ編集者に基づいており、ここで彼のブログで紹介されていましたが、現在はそのプロジェクトとコードを共有していません。
KiluaはSteve Kempによって書かれており、元のプロジェクトと比較して多くの更新と追加を特徴としています。
Mx function()を介してそれらを呼び出すことができます。lua-lpegライブラリを介した構文ハイライトの追加。 kiluaを起動すると、予想どおりに機能します。
$ kilua [options] [file1] [file2] ... [fileN]
起動すると、矢印キーが動き回り、学習する主なキーバインディングは次のとおりです。
Ctrl-x Ctrl-o Open an existing file.
Ctrl-x Ctrl-f Open an existing file.
Ctrl-x Ctrl-s Save the current file.
Ctrl-x Ctrl-c Quit.
Ctrl-x c Create a new buffer
Ctrl-x n Move to the next buffer.
Ctrl-x p Move to the previous buffer.
Ctrl-x b Select buffer from a list
M-x Evaluate lua at the prompt.
Ctrl-s Regular expression search.
次のコマンドラインオプションが認識され、理解されています。
--config file--dump-config--eval--syntax-path--versionインストールは、コードの実行を構築するために、すぐに使用する必要があります。
make
構築されたら、バイナリをポータブルで実行できます。
./kilua --syntax-path ./syntax [options] [file1] [file2] .. [fileN]
--syntax-pathの使用法は構文ファイルをロードするために必要ですが、。 ./syntax/ディレクトリの内容を次のいずれかにコピーすると、オプションを削除できます。
/etc/kilua/syntax/~/.kilua/syntax/Syntax-Highlightingライブラリの場所を指定しない場合、またはそれらをインストールしない場合は、SynTax-Highlightingサポートがゼロになります。
これは、Syntax-Highlightingコードを外部ライブラリに配置する結果です。これらのライブラリをロードできない場合、機能は利用できません。
デフォルトではLUA 5.2でビルドしますが、 src/Makefileを編集する場合は、LUA 5.1で正常にビルドできるはずです。
起動時には、存在する場合は次の構成ファイルが読まれます。
~/.kilua/init.lua 。./.kilua/$hostname.lua 。*Messages*バッファーを使用して、どちらが見つかったかを確認できます。どちらのファイルも読み取られていない場合、ビルド時に生成されたkilua.luaの埋め込みコピーが実行され、最小機能が存在するようになります。 (つまり、ゼロ構成ファイルをロードした場合、Keybindingsのセットアップはありませんので、ナビゲートも編集もできません!)
付属のスタートアップファイルを編集し、ニーズに合わせてバインディングを変更し、提供されたLUAプリミティブを介して機能を追加してから、 ~/.kilua/init.luaにコピーします(おそらくそれをホストごとのファイルで拡張します)。
変更がなければ、私の特定の好みに従う機能エディターを取得します。
追加の言語にSyntax-Highlightingを追加する場合でも、有用な機能を実装するPull-Requestsは感謝して受信されます。
将来、より多くのコールバックが実装される可能性があります。これは、さまざまなポイントでのCコア呼び出しを機能させます。
現在、次のコールバックが存在し、Cコアを介して呼び出されます。
get_status_bar()on_complete(str)on_idle()on_key(key)on_loaded(filename)on_save(filename)on_saved(filename)kilua使用すると、バッファーを使用して複数のファイルを開くことができます。 kiluaがファイル名のパラメーターなしで起動された場合、2つのバッファーがあります。
*Messages*Ctrl-x Ctrl-sまたはMx save("name")を使用して保存します。それ以外の場合は、コマンドラインに名前が付けられた各ファイルに1つのバッファーと、 *Messages*バッファーが1つあります。 (必要に応じて*Messages*バッファーを殺すことができますが、周りに持っているのは便利なことです。)
バッファーを使用するためのデフォルトのキーバインディングは次のとおりです。
| アクション | バインディング |
|---|---|
| 新しいバッファを作成します。 | Ctrl-x c |
| 現在のバッファを殺します。 | Ctrl-x k |
| 現在のバッファーを強制的に殺します。 | Ctrl-x K |
| 次のバッファを選択します。 | Ctrl-x nまたはM-right |
| 前のバッファを選択します。 | Ctrl-x pまたはM-left |
| メニューからバッファを選択します。 | Ctrl-x bまたはCtrl-x B |
たとえば、LUAを介してバッファを簡単に動的に作成できることは注目に値します。たとえば、次の関数はMx uptime()で呼び出して、期待していることを行うことができます。
*uptime*という名前のバッファを選択します。/usr/bin/uptimeの出力をバッファーに挿入します。アップタイムサンプル:
-- Run `uptime`, and show the result in a dedicated buffer.
function uptime()
local result = buffer( "*uptime*" )
if ( result == -1 ) then create_buffer("*uptime*") end
-- move to end of file.
eof()
insert(cmd_output("uptime"))
end
名前付きキーに位置(つまり「マーク」)を記録し、 viのように後でジャンプすることができます。
現在の位置を記録するには、 Mmを使用し、使用するキーを押します。それに戻るには、 Mb XXを使用して、XXが選択したキーでした。 (マークはバッファと現在のカーソルポジションを記録します。)
ディスプレイの最後から2番目のラインとして表示されるステータスバーには、現在のファイル/バッファーの名前、カーソル位置などが含まれています。
ステータスバーの内容はLUAを介して生成されるため、変更するのは簡単です。デフォルトの表示には、次のように表示されます。
"${buffer}/${buffers} - ${file} ${mode} ${modified} #BLANK# Col:${x} Row:${y} [${point}] ${time}"
「 ${...} 」内の値は置換を介して拡張され、デフォルトで以下が提供されます。
| 名前 | 意味 |
|---|---|
${buffers} | オープンバッファーのカウント。 |
${buffer} | 現在のバッファーの数。 |
${date} | 現在の日付。 |
${file} | ファイル/バッファの名前。 |
${mode} | 使用中の構文ハイライトモード(ある場合)。 |
${modified} | バッファが変更されているかどうかを報告する文字列。 |
${point} | ポイントの下のキャラクター。 |
${time} | 現在の時刻。 |
${words} | バッファ内の単語の数。 |
${x} | カーソルのX座標。 |
${y} | カーソルのy座標。 |
ここにさらにオプションを追加するプルレクエストは大歓迎です。
構文ハイライトはlua-lpegライブラリを介して処理されるため、それがインストールされていない場合は利用できません。
各バッファには、「C」、「マークダウン」、「LUA」などの文字列である関連する構文ハイライトモードがあります。デフォルトの構成ファイルは、編集しているファイルの接尾辞に基づいてモードを設定します。
たとえば、モードをインタラクティブにLUAに変更したい場合は、実行してください。
M-x syntax("lua")
構文強調表示の実装には、ライブラリのロードが必要です。たとえば、LUAの構文強調表示では、ライブラリlua.luaがロードされる必要があります - 構文モードはこれらの場所で探しています。
/etc/kilua/syntax~/.kilua/syntax--syntax-pathコマンドラインオプションを介して指定されたパス。実装は非常に簡単です:
update_colours 、バッファ内の各文字の色を設定できます。テキストを挿入するときに遅延を回避するために、 on_idle()コールバックを介して、レンダリングがバックグラウンドで更新されます。この関数は明らかなことをします:
text()を介して、バッファの現在の内容を取得します。update_colours()を介してこれらの色を設定します。具体的な例として、バッファに文字列「Steve Kemp」が含まれている場合、 update_coloursへの呼び出しには以下が含まれている必要があります。
`RED RED RED RED RED WHITE GREEN GREEN GREEN GREEN`
その結果、「スティーブ」が赤で表示され、「ケンプ」がグリーンに表示されます。
現在、以下のSyntax-Highlightingを含めます。
Makefile s。より多くの構文モードを追加するプルレクエストは大歓迎です。
https://news.ycombinator.com/item?id=12137698
明らかな将来の計画はありませんが、提案する機能(または報告するバグ)がある場合は、バグレポートが作成される場合があります。
有用かもしれないことの1つは、2つのファイルを並べて表示するか、1つ以上のファイルを表示するための分割ディスプレイです。これはまだ計画されていませんが、合理的にきれいに行うことができると思います。
スティーブ-https://steve.kemp.fi/