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 ทั้งหมด
หากต้องการตั้งค่าตัวเลือกเริ่มต้น ให้สร้างไฟล์ rc ชื่อ ~/.mlerc
(หรือ /etc/mlerc
) เนื้อหาของไฟล์ 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'
สิ่งนี้จะแทนที่คำสั่ง grep ในตัวด้วย git grep
หากมี .git
อยู่ในไดเร็กทอรีการทำงานปัจจุบัน
โปรแกรมต่อไปนี้จะเปิดใช้งานหรือปรับปรุงคุณสมบัติบางอย่างของ mle หากมีอยู่ใน PATH
คำสั่งเชลล์โดยพลการสามารถเรียกใช้ผ่าน cmd_shell
(โดยค่าเริ่มต้นเป็น Me
) หากเลือกข้อความใด ข้อความนั้นจะถูกส่งไปยัง stdin ของคำสั่ง stdout ผลลัพธ์ใดๆ จะถูกแทรกลงในบัฟเฟอร์ข้อความ
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 จะเข้าสู่โหมด headless โดยอัตโนมัติ โหมดโง่สามารถเปิดหรือปิดใช้งานได้อย่างชัดเจนด้วยตัวเลือก -H
หาก stdin เป็นไปป์และโหมด headless ถูกปิดใช้งานผ่าน -H0
, mle อ่าน stdin ในบัฟเฟอร์ใหม่ จากนั้นรันตามปกติในโหมดโต้ตอบ
mle สามารถขยายได้ผ่านภาษาโปรแกรม Lua สคริปต์ถูกโหลดผ่านตัวเลือก -x
cli คำสั่งที่ลงทะเบียนโดยสคริปต์สามารถแมปกับคีย์ได้ตามปกติผ่าน -k
ดู uscript.lua
สำหรับตัวอย่างง่ายๆ
นอกจากนี้ยังมีสาขา wren
ที่รองรับการเขียนสคริปต์นกกระจิบ งานนั้นอยู่ระหว่างการหยุดชั่วคราว
mle ใช้ไลบรารีต่อไปนี้อย่างกว้างขวาง