
BIM เป็นตัวแก้ไขข้อความเทอร์มินัลที่มีการไฮไลต์ไวยากรณ์
แรงบันดาลใจจาก VIM (หนึ่งอาจบอกว่าการเลียนแบบที่ไม่ดี) และมีการแก้ไขตามโหมดที่คล้ายกัน BIM ถูกเขียนขึ้นสำหรับ Toaruos แต่ก็มีการทดสอบใน Linux, Sortix, FreeBSD และ MacOS
BIM มีจุดประสงค์เพื่อเป็นตัวแก้ไขข้อความที่รวมอยู่ใน Toaruos ซึ่งเป็นระบบปฏิบัติการงานอดิเรกที่สร้างขึ้นตั้งแต่เริ่มต้น
BIM ตั้งเป้าหมายที่จะมีน้ำหนักเบาและมีคุณสมบัติโดยไม่มีการพึ่งพาภายนอก* ให้ประสบการณ์การแก้ไขที่ทันสมัยในแพ็คเกจที่มีน้ำหนักเบาและขยายได้
hjkl แบบดั้งเดิมgit diff In-Line พร้อมกับการเปลี่ยนแปลงที่ไม่ได้บันทึก BIM ต้องการไลบรารี C unix ที่เพียงพอและคอมไพเลอร์ C99 ที่มีส่วนขยาย GNU บางอย่าง (เช่น __attribute__((constructor)) )
BIM 3 ยังต้องการ Kuroko ซึ่งมีข้อกำหนดที่คล้ายกัน โดยทั่วไปแล้ว BIM จะเชื่อมโยงกับล่าม Kuroko สำหรับการสร้าง Linux และเชื่อมโยงแบบไดนามิกสำหรับการสร้าง Toaruos
BIM ถูกสร้างขึ้นอย่างประสบความสำเร็จสำหรับเป้าหมายจำนวนมากรวมถึง BSDs, Toaruos, Sortix และอื่น ๆ
ก่อนอื่นติดตั้ง Kuroko:
git clone https://github.com/kuroko-lang/kuroko
cd kuroko
make && sudo make install # You can obtain deb packages, or build one with 'fpm' with 'make deb'จากนั้นสร้าง bim:
git clone https://github.com/klange/bim
cd bim
make && sudo make installจากนั้นติดตั้งตัวอย่างการกำหนดค่า:
cp docs/example.bim3rc ~ /.bim3rc BIM ได้รับการทดสอบในเทอร์มินัลจำนวนมากและในขณะที่ไม่ได้ใช้ฐานข้อมูล terminfo ฟังก์ชันพื้นฐานควรมีอยู่ในอีมูเลเตอร์ที่เหลืออยู่ส่วนใหญ่และแม้แต่ฮาร์ดแวร์ DEC แบบคลาสสิก
หากเทอร์มินัลที่คุณใช้มีนิสัยใจคอบางอย่างหรือเล่นได้ไม่ดีกับสมมติฐานเริ่มต้นคุณสามารถปรับเปลี่ยนพฤติกรรมให้เหมาะกับสภาพแวดล้อมของคุณ
คุณสมบัติความสามารถสามารถควบคุมได้ด้วย "quirks" ไม่ว่าจะผ่านคำสั่ง quirk ใน BIMRC หรือกับตัวเลือกบรรทัดคำสั่ง -O
รูปแบบของคำสั่ง quirk คือ quirk(envvar,teststr,'no...','can...',...) โดยที่ ENVVAR เป็นชื่อของตัวแปรสภาพแวดล้อมและ teststr เป็นสตริงที่จะตรวจสอบว่าจะต้องเป็นคำนำหน้าของตัวแปรสภาพแวดล้อม
ตัวอย่างเช่น quirk('TERM','xterm','nounicode') จะปิดการใช้งาน unicode output ในเทอร์มินัลทั้งหมดที่เริ่มต้นด้วย "xterm" (รวมถึง "xterm-256Color")
นอกจากนี้คุณยังสามารถระบุนิสัยใจคอด้วยตัวแปรสภาพแวดล้อม $COLORTERM หรือตัวแปร $TERMINAL_EMULATOR ที่กำหนดโดย IDE บางตัว
ตัวอย่างบางส่วนการกำหนดค่า Quirk มีให้ใน docs/example.bim3rc และอาจเป็นจุดเริ่มต้นที่ดีหากคุณประสบปัญหาการเรนเดอร์
แนะนำให้สนับสนุน Unicode/UTF-8 และสันนิษฐานว่าเป็นค่าเริ่มต้น ตัวเลือก nounicode Quirk จะปิดการใช้งานเอาต์พุตของอักขระ UTF-8 และแสดงผลเป็นคำแนะนำ codepoint เช่น <U+1234> แทน
สี 256 สีและ 24 บิตจะถูกสันนิษฐานโดยค่าเริ่มต้นปิดการใช้งานด้วย no256color และ no24bit Quirks ตามลำดับ
หากคุณมีเทอร์มินัลสีต่ำโดยเฉพาะ nobright Quirk จะบอกใบ้ถึงธีมที่ควรใช้เฉพาะ 8 สีที่ต่ำกว่าเท่านั้น
รองรับโหมดการเลื่อนสามโหมด: การเลื่อนเลื่อน, แทรก/ลบการเลื่อนและการเลื่อนใหม่
เลื่อนเลื่อน ( ^[[1S / ^[[1T ) จะถูกสันนิษฐานโดยค่าเริ่มต้น หากเทอร์มินัลของคุณรองรับการเลื่อน / ลบการเลื่อน ( ^[[L / ^[[M ) ให้เปิดใช้งาน caninsert Quirk
หากไม่มีตัวเลือกการเลื่อนให้ใช้ quirk noscroll เพื่อวาดฟิลด์ข้อความเมื่อเลื่อน นี่อาจจะช้า!
การสนับสนุนเมาส์ด้วย ^[[?1000h ถือว่าเป็นค่าเริ่มต้น ใช้การเล่นโวหาร nomouse เพื่อปิดการใช้งาน
หากเทอร์มินัลของคุณรองรับโหมดเมาส์ SGR ("1006") ให้เปิดใช้งาน cansgrmouse Quirk เทอร์มินัลที่มีลักษณะคล้าย XTERM ส่วนใหญ่รองรับสิ่งนี้และจะให้การสนับสนุนสำหรับการคลิกที่เซลล์ในหน้าต่างเทอร์มินัลขนาดใหญ่
การสนับสนุนหน้าจอสำรองก็สันนิษฐาน โดยปกติแล้วจะดีแม้ว่าเทอร์มินัลของคุณจะไม่รองรับ แต่ถ้ามันทำให้เกิดปัญหา quirk noaltscreen จะปิดการใช้งาน
KeyBindings เริ่มต้นสามารถพบได้ใน docs/mappings.md
รายชื่อนี้สามารถสร้างขึ้นได้ด้วย bim --dump-mappings
รายชื่อคำสั่งที่มีอยู่ทั้งหมดสามารถพบได้ใน docs/commands.md
รายชื่อนี้สามารถสร้างขึ้นได้ด้วย bim --dump-commands
คุณสามารถใช้ BIM เพื่อแสดงไฟล์ในเทอร์มินัลของคุณด้วยการเน้นไวยากรณ์ด้วย bim -c (ไม่มีหมายเลขบรรทัด) และ bim -C (พร้อมหมายเลขบรรทัด)

คุณสามารถส่งข้อความไปยัง BIM เพื่อแก้ไขด้วย bim - โปรดทราบว่า BIM จะรอการสิ้นสุดของไฟล์ก่อนที่จะเปิดตัวดังนั้นจึงไม่เหมาะสำหรับใช้เป็นเพจเจอร์ (วางแผนการสนับสนุนเพจเจอร์)
BIM ยังสามารถใช้ในการสร้างเอกสาร HTML ด้วยซอร์สโค้ดที่มีไวยากรณ์สูงด้วย bim --html ; ชุดรูปแบบที่กำหนดค่าจะถูกใช้
BIM มีโทนสีจำนวนหนึ่งสำหรับอินเทอร์เฟซและการไฮไลต์ไวยากรณ์
ธีม 16 สีธรรมดา สามารถกำหนดค่าสำหรับใช้กับเทอร์มินัลที่มีหรือไม่มีการรองรับสีสดใส ดูเหมือน IRSSI

ชุดรูปแบบสี 24 บิตดั้งเดิมที่มีสีน้ำตาลแบบชนบทและสีพาสเทลที่อ่อนลง

Sunsmoke รุ่น 256 สีสำหรับใช้ในเทอร์มินัลที่ไม่รองรับสี 24 บิต

ธีม 256 สีตามธีมของชื่อเดียวกันสำหรับ VIM

ชุดรูปแบบสี 24 บิตตามจานสียอดนิยม

ชุดรูปแบบสี 24 บิตตามหนึ่งสำหรับอะตอมและประเสริฐซึ่งมีบลูส์คอนทราสต์ต่ำ

ขึ้นอยู่กับ Selenized โดย Jan Warchoł

BIM จะนำเข้าโดยอัตโนมัติ ~/.bim3rc ในการเริ่มต้น
ตัวอย่าง BIMRC โดยละเอียดมีอยู่ที่ docs/example.bim3rc
สคริปต์ BIM เขียนใน Kuroko
ไฮไลต์ไวยากรณ์ทั้งหมดไม่สมบูรณ์หรือรองรับคุณสมบัติทั้งหมดของภาษาที่เกี่ยวข้อง
ฟังก์ชั่นหลักของ BIM อาศัยอยู่ใน bim.c
ปากกาเน้นข้อความไวยากรณ์และธีมถูกเขียนใน Kuroko และพบในไดเรกทอรี syntax และ themes
เอ็นจิ้นการแสดงออกปกติของ BIM เป็นสิ่งที่ฉันปรุงอย่างส่งเดช ฟังก์ชั่นของมันค่อนข้าง จำกัด และพฤติกรรมอาจมีการเปลี่ยนแปลง
^ ตรงกับจุดเริ่มต้นของบรรทัด $ ตรงกับจุดสิ้นสุด. ตรงกับตัวละครใด ๆ[] วงเล็บสามารถใช้สำหรับการแข่งขันทางเลือก^ เป็นตัวละครตัวแรกที่คัดค้านการแข่งขันab สำหรับช่วงง่ายๆ- ในการแสดงออกของตัวยึดให้วางไว้ก่อนที่ตัวละครอื่น ๆ แต่หลังจากการคัดค้าน ^ เช่น [-_*]^ ในนิพจน์วงเล็บให้ใช้ตำแหน่งใด ๆ หลังจากครั้งแรก [^^] หมายถึง "อะไรก็ได้ยกเว้น ^ "] ในนิพจน์วงเล็บให้ใช้ ]t ใช้ \ สำหรับ backslash ตัวอักษร. , [] และอักขระเดี่ยวอาจรวมกับสิ่งต่อไปนี้ด้วยการย้อนรอย:? เลือกจับคู่หนึ่งครั้ง* ตรงกับจำนวนของการเกิดขึ้น+ จับคู่อย่างน้อยในการเกิดขึ้น* และ + โลภโดยค่าเริ่มต้น แต่สามารถติดตามได้หรือ ? เพื่อให้พวกเขาไม่ใช่เทพ() วงเล็บสามารถใช้ในระดับบนสุดสำหรับกลุ่มจับภาพเมื่อทำการแทนที่ลำดับการหลบหนีบางอย่างจะได้รับการสนับสนุน:
t แทรกอักขระแท็บ \ แทรกแบ็กสแลชตัวอักษร