mle は、C で書かれた小型で柔軟なターミナルベースのテキスト エディターです。
Linux、Windows (Cygwin または WSL)、FreeBSD、macOS などで動作します。
$ sudo apt install git build-essential # install git, make, gcc, libc-dev
$
$ git clone --recursive https://github.com/adsr/mle.git
$ cd mle
$ make mle_vendor=1
完全に静的なバイナリをビルドするには、 make mle_vendor=1 mle_static=1
を試してください。
プレーンなmake
を実行して、 vendor/
代わりにシステム ライブラリにリンクすることもできます。これには次のパッケージをインストールする必要があることに注意してください。
uthash-dev
liblua5.4-dev
libpcre2-dev
/usr/local/bin
にインストールするには:
$ make install
カスタム ディレクトリにインストールするには、 prefix
を指定します。例:
$ make install prefix=/usr # /usr/bin/mle
mle は、システムのパッケージ マネージャー経由でインストールできる場合があります。
# apt install mle # Ubuntu and Debian-based distros
# dnf install mle # CentOS, RHEL, Fedora-based distros
# pkg install mle # FreeBSD
# yay -S mle # Arch (via AUR)
# snap install mle # all major Linux distros
# nix-env -i mle # NixOS (via nixpkgs)
# apk add mle # Alpine
# xbps-install mle # Void
# brew install mle # macOS (Homebrew)
# port install mle # macOS (MacPorts)
# setup-x86.exe -q -P mle # Cygwin
$ mle # Open blank buffer
$ mle one.c # Edit one.c
$ mle one.c:100 # Edit one.c at line 100
$ mle one.c two.c # Edit one.c and two.c
$ mle -h # Show command line help
デフォルトのキーバインディングは直感的です。通常どおりテキストを入力し、方向キーを使用して移動し、 Ctrl-S
を使用して保存し、 Ctrl-O
を使用して開き、 Ctrl-X
使用して終了します。
F2
を押すと完全なヘルプが表示されます。
mle はコマンド ライン オプションを使用してカスタマイズされます。 mle -h
実行して、すべての cli オプションを表示します。
デフォルトのオプションを設定するには、 ~/.mlerc
(または/etc/mlerc
) という名前の rc ファイルを作成します。 rc ファイルの内容は、改行で区切られた任意の数の cli オプションです。セミコロンで始まる行はコメントとして解釈されます。
~/.mlerc
が実行可能である場合、mle はそれを実行し、結果の stdout を上記のように解釈します。たとえば、実行可能~/.mlerc
bash(1) スクリプトの次のスニペットを考えてみましょう。
# Define 'test' kmap
echo '-Ktest,,1'
# M-q: replace grep with git grep if `.git` exists
if [ -d ".git" ]; then
echo '-kcmd_grep,M-q,git grep --color=never -P -i -I -n %s 2>/dev/null'
fi
# Set default kmap
echo '-n test'
現在の作業ディレクトリに.git
が存在する場合、これにより、組み込みの grep コマンドがgit grep
でオーバーライドされます。
次のプログラムは、 mle の特定の機能がPATH
に存在する場合に有効化または拡張します。
任意のシェル コマンドはcmd_shell
(デフォルトではMe
) 経由で実行することもできます。テキストが選択されている場合は、コマンドの標準入力に送信されます。結果の標準出力はすべてテキスト バッファーに挿入されます。
mle は、エディターを通常のコマンド ライン ツールとして使用する場合に役立つ、非対話型編集のサポートを提供します。ヘッドレス モードでは、mle は stdin をバッファに読み取り、指定されている場合は起動マクロを適用し、バッファの内容を stdout に書き込みます。例えば:
$ echo -n hello | mle -M 'test C-e space w o r l d enter' -p test
hello world
stdin がパイプの場合、mle は自動的にヘッドレス モードになります。ヘッドレス モードは、 -H
オプションを使用して明示的に有効または無効にすることができます。
stdin がパイプで、 -H0
によってヘッドレス モードが無効になっている場合、mle は stdin を新しいバッファに読み取り、対話モードで通常どおり実行します。
mle は、Lua プログラミング言語を介して拡張できます。スクリプトは、 -x
cli オプションを介してロードされます。スクリプトによって登録されたコマンドは、 -k
使用して通常どおりキーにマップできます。簡単な例については、 uscript.lua
参照してください。
Wren スクリプトをサポートするwren
ブランチもあります。その仕事は一時停止中です。
mle は次のライブラリを広範囲に利用します。