mle es un editor de texto pequeño y flexible basado en terminal escrito en C.
Se ejecuta en Linux, Windows (Cygwin o WSL), FreeBSD, macOS y más.
$ 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
Para construir un binario completamente estático, intente make mle_vendor=1 mle_static=1
.
También puede ejecutar make
simple para vincular las bibliotecas del sistema en lugar de vendor/
. Tenga en cuenta que esto requiere que se instalen los siguientes paquetes:
uthash-dev
liblua5.4-dev
libpcre2-dev
Para instalar en /usr/local/bin
:
$ make install
Para instalar en un directorio personalizado, proporcione prefix
, por ejemplo:
$ make install prefix=/usr # /usr/bin/mle
mle puede estar disponible para instalar a través del administrador de paquetes de su sistema.
# 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
Las combinaciones de teclas predeterminadas son intuitivas. Ingrese texto normalmente, use las teclas direccionales para moverse, use Ctrl-S
para guardar, Ctrl-O
para abrir, Ctrl-X
para salir.
Presione F2
para obtener ayuda completa.
mle se personaliza mediante opciones de línea de comando. Ejecute mle -h
para ver todas las opciones de cli.
Para configurar las opciones predeterminadas, cree un archivo rc llamado ~/.mlerc
(o /etc/mlerc
). El contenido del archivo rc son cualquier número de opciones cli separadas por nuevas líneas. Las líneas que comienzan con punto y coma se interpretan como comentarios.
Si ~/.mlerc
es ejecutable, mle lo ejecuta e interpreta la salida estándar resultante como se describe anteriormente. Por ejemplo, considere el siguiente fragmento de un script ~/.mlerc
bash(1) ejecutable:
# 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'
Esto anula el comando grep integrado con git grep
si .git
existe en el directorio de trabajo actual.
Los siguientes programas habilitarán o mejorarán ciertas características de mle si existen en PATH
.
Los comandos de shell arbitrarios también se pueden ejecutar a través de cmd_shell
( Me
por defecto). Si se selecciona algún texto, se envía a la entrada estándar del comando. Cualquier salida estándar resultante se inserta en el búfer de texto.
mle proporciona soporte para la edición no interactiva, lo que puede resultar útil para utilizar el editor como una herramienta de línea de comandos normal. En modo sin cabeza, mle lee la entrada estándar en un búfer, aplica una macro de inicio si se especifica y luego escribe el contenido del búfer en la salida estándar. Por ejemplo:
$ echo -n hello | mle -M 'test C-e space w o r l d enter' -p test
hello world
Si stdin es una tubería, mle entra automáticamente en modo sin cabeza. El modo sin cabeza se puede habilitar o deshabilitar explícitamente con la opción -H
.
Si stdin es una tubería y el modo sin cabeza está deshabilitado mediante -H0
, mle lee stdin en un nuevo búfer y luego se ejecuta normalmente en modo interactivo.
mle es extensible a través del lenguaje de programación Lua. Los scripts se cargan mediante la opción -x
cli. Los comandos registrados por scripts se pueden asignar a claves como de costumbre mediante -k
. Consulte uscript.lua
para ver un ejemplo sencillo.
También hay una rama wren
con soporte para secuencias de comandos Wren. Ese trabajo está en pausa.
mle hace un uso extensivo de las siguientes bibliotecas.