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 广泛使用以下库。