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
這將使用git grep
覆蓋內建 grep 指令。
以下程式將啟用或增強 mle 的某些功能(如果它們存在於PATH
中)。
任意 shell 指令也可以透過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 廣泛使用以下函式庫。