Kilo - 1000行以下のコードで実装された超コンパクトなテキストエディタ

シェアする

S 2016 07 11 23 56 56

世の中の開発者が最終的に自分の手で実装してみたいソフトウェアの一つにテキストエディタが挙げられるかもしれません。本日紹介する「Kilo」はそんな夢に向かって踏み出すためのきっかけになるかもしれないコンパクトなテキストエディタの実装です。

Kiroはライブラリに依存せず(cursesでさえ)、標準のVT100エスケープシーケンスだけを使って作られたシンプルなテキストエディタで、唯一のソースコードkilo.cの行数は1000行以下というコンパクトさを誇っています。

int main(int argc, char **argv) {
    if (argc != 2) {
        fprintf(stderr,"Usage: kilo \n");
        exit(1);
    }

    initEditor();
    editorSelectSyntaxHighlight(argv[1]);
    editorOpen(argv[1]);
    enableRawMode(STDIN_FILENO);
    editorSetStatusMessage(
        "HELP: Ctrl-S = save | Ctrl-Q = quit | Ctrl-F = find");
    while(1) {
        editorRefreshScreen();
        editorProcessKeypress(STDIN_FILENO);
    }
    return 0;
}

▲kilo.cのmain関数。

Kiroの使用方法

Kiloのバイナリは配布されていません。試してみるにはソースコードをcloneしてmakeする必要があります。実行ファイルがビルドできたら「./kilo ファイル名」でテキストファイルの編集を始めることができます。

git clone https://github.com/antirez/kilo.git
cd kilo.git
make
./kilo README.md

矢印キーでのナビゲートや文字入力のほか、以下のコマンドが実行可能です。

  • CTRL-S: 保存
  • CTRL-Q: 終了
  • CTRL-F: 検索

Japanese

残念ながら日本語を入力するとカーソル位置がずれてしまいました。とはいえ基本的なエディタの構造を学びたい方にとっては参考となりそうです。UTF-8対応のための修正を行ってみるのも興味深いかもしれません。

KiroはSalvatore Sanfilippo氏によって開発されているソフトウェアで2条項BSDライセンスが採用されています。

スポンサーリンク
レクタングル(大)広告
レクタングル(大)広告

シェアする

フォローする