Kilua هو محرر نصوص صغيرة ، قابلة للتمديد ، و Lua.

استند المشروع في الأصل إلى الحد الأدنى لمحرر كيلو الذي كتبه antirez في الأصل ، وتم تقديمه هنا على مدونته ، ولكن الآن لا يشارك أي رمز مع هذا المشروع ، فقط الأصول.
كتب كيلوا ستيف كيمب ويتميز بالعديد من التحديثات والإضافات مقارنة بالمشروع الأصلي:
Mx function() .lua-lpeg . إطلاق kilua يعمل كما تتوقع:
$ kilua [options] [file1] [file2] ... [fileN]
بمجرد إطلاق مفاتيح الأسهم ، ستنقلك حولها ، والمفاتيح الرئيسية التي يجب تعلمها هي:
Ctrl-x Ctrl-o Open an existing file.
Ctrl-x Ctrl-f Open an existing file.
Ctrl-x Ctrl-s Save the current file.
Ctrl-x Ctrl-c Quit.
Ctrl-x c Create a new buffer
Ctrl-x n Move to the next buffer.
Ctrl-x p Move to the previous buffer.
Ctrl-x b Select buffer from a list
M-x Evaluate lua at the prompt.
Ctrl-s Regular expression search.
يتم التعرف على خيارات سطر الأوامر التالية وفهمها:
--config file--dump-config--eval--syntax-path--versionيجب أن يكون التثبيت مستقيمًا إلى الأمام ، لإنشاء تشغيل الكود:
make
بمجرد بنائها ، يمكنك تشغيل الثنائي بطريقة محمولة ، مثل ذلك:
./kilua --syntax-path ./syntax [options] [file1] [file2] .. [fileN]
مطلوب استخدام- --syntax-path لتحميل ملفات بناء الجملة ، ولكن يمكنك إزالة الخيار إذا قمت بنسخ محتويات دليل ./syntax/ إلى إما:
/etc/kilua/syntax/~/.kilua/syntax/إذا لم تحدد موقع المكتبات المرتفعة للبناء ، أو لم تقم بتثبيتها ، فسيكون لديك دعم صفر عالية الإضاءة.
هذه نتيجة لوضع رمز الإضاءة المرتفع في المكتبات الخارجية: إذا لم تتمكن من تحميل تلك المكتبات ، فلن تكون الوظائف متاحة.
نحن نبني مع LUA 5.2 بشكل افتراضي ، ولكن إذا قمت بتحرير src/Makefile فيجب أن تكون قادرًا أيضًا على البناء بنجاح مع LUA 5.1.
عند بدء التشغيل ، تتم قراءة ملفات التكوين التالية إذا كانت موجودة:
~/.kilua/init.lua ../.kilua/$hostname.lua .*Messages* لمعرفة أي شيء تم العثور عليه ، إن وجد. إذا لم تتم قراءة أي ملف ، فسيتم تنفيذ النسخة المدمجة من kilua.lua ، والتي تم إنشاؤها في وقت الإنشاء ، مما يضمن وجود الحد الأدنى للوظائف. (أي إذا قمت بتحميل ملفات التكوين الصفرية ، فلن يكون هناك أي إعداد مفاتيح حتى لا تتمكن من التنقل أو التحرير!)
من المفترض أن تقوم بتحرير ملف بدء التشغيل المقدم ، لتغيير الروابط لتناسب احتياجاتك ، إضافة وظائف عبر Primitives Lua الموردة ، ثم نسخها إلى ~/.kilua/init.lua (ربما تمديد ذلك بملف لكل مضيف أيضًا).
بدون أي تغييرات ، ستحصل على محرر وظيفي يتبع تفضيلاتي الخاصة.
سيتم استقبال عمليات السحب التي تنفذ وظائف مفيدة بالشكر ، حتى لو لمجرد إضافة مرتفعة للبناء للبناء للغات الإضافية.
في المستقبل ، قد يتم تنفيذ المزيد من عمليات الاسترجاعات ، والتي هي وظائف تستدعي C-Core في نقاط مختلفة.
في الوقت الحالي ، توجد عمليات الاسترجاعات التالية ويتم استدعاءها عبر c-core:
get_status_bar()on_complete(str)on_idle()on_key(key)on_loaded(filename)on_save(filename)on_saved(filename) يسمح kilua بفتح ملفات متعددة ، من خلال استخدام المخازن المؤقتة. إذا تم إطلاق kilua دون أي معلمات اسم الملف ، فسيكون هناك مخزن المؤقتان:
*Messages*Ctrl-x Ctrl-s ، أو Mx save("name") ، لحفظه. وإلا سيكون هناك مخزن مؤقت لكل ملف سمي على سطر الأوامر ، وكذلك المخزن المؤقت *Messages* . (يمكنك قتل *Messages* المخزن المؤقت إذا كنت ترغب في ذلك ، ولكن من المفيد أن يكون هناك حول.)
إن bindings المفاتيح الافتراضية للعمل مع المخازن المؤقتة هي:
| فعل | ملزم |
|---|---|
| إنشاء مخزن مؤقت جديد. | Ctrl-x c |
| اقتل المخزن المؤقت الحالي. | Ctrl-x k |
| اقتل المخزن المؤقت الحالي ، بالقوة. | Ctrl-x K |
| حدد المخزن المؤقت التالي. | Ctrl-x n أو M-right |
| حدد المخزن المؤقت السابق. | Ctrl-x p أو M-left |
| اختر المخزن المؤقت ، عبر القائمة. | Ctrl-x b أو Ctrl-x B |
تجدر الإشارة إلى أنه يمكنك بسهولة إنشاء المخازن المؤقتة بشكل ديناميكي ، عبر LUA ، على سبيل المثال ، يمكن استدعاء الوظيفة التالية بواسطة Mx uptime() ، ويفعل ما تتوقعه:
*uptime* ./usr/bin/uptime في المخزن المؤقت.عينة الجهوزية:
-- Run `uptime`, and show the result in a dedicated buffer.
function uptime()
local result = buffer( "*uptime*" )
if ( result == -1 ) then create_buffer("*uptime*") end
-- move to end of file.
eof()
insert(cmd_output("uptime"))
end
يمكنك تسجيل موقعك (أي "Mark") في مفتاح مسمى ، ثم قفز إليه لاحقًا ، تمامًا كما في vi .
لتسجيل الموضع الحالي ، استخدم Mm ، واضغط على المفتاح الذي ترغب في استخدامه. للعودة إليها ، استخدم Mb XX حيث كان XX هو المفتاح الذي اخترته. (تسجل العلامات المخزن المؤقت ، وكذلك الموضع الحالي المؤشر.)
يحتوي شريط الحالة ، الذي يظهر كخط ما قبل الأخير في الشاشة ، على اسم الملف/المخزن المؤقت الحالي ، وكذلك موضع المؤشر ، إلخ.
يتم إنشاء محتويات شريط الحالة عبر LUA ، لذلك من السهل التعديل. تظهر الشاشة الافتراضية:
"${buffer}/${buffers} - ${file} ${mode} ${modified} #BLANK# Col:${x} Row:${y} [${point}] ${time}"
يتم توسيع القيم داخل " ${...} " عبر البدائل ويتم توفير ما يلي بشكل افتراضي:
| اسم | معنى |
|---|---|
${buffers} | عدد المخازن المؤقتة المفتوحة. |
${buffer} | عدد المخزن المؤقت الحالي. |
${date} | التاريخ الحالي. |
${file} | اسم الملف/المخزن المؤقت. |
${mode} | وضع بناء الجملة المرتفع قيد الاستخدام ، إن وجد. |
${modified} | سلسلة تقارير ما إذا تم تعديل المخزن المؤقت. |
${point} | الشخصية تحت هذه النقطة. |
${time} | الوقت الحالي. |
${words} | عدد الكلمات في المخزن المؤقت. |
${x} | الإحداثي X من المؤشر. |
${y} | الإحداثي y من المؤشر. |
ستكون عمليات السحب التي تضيف المزيد من الخيارات هنا موضع ترحيب كبير.
تتم معالجة تسليط الضوء على بناء الجملة عبر مكتبة lua-lpeg ، وبالتالي إذا لم يتم تثبيته ، فلن يكون متاحًا.
يحتوي كل مخزن مؤقت على وضع مرتبط بتصنيع بناء الجملة ، وهو عبارة عن سلسلة مثل "C" أو "Markdown" أو "Lua". يقوم ملف التكوين الافتراضي بتعيين الوضع بناءً على لاحقة الملف الذي تقوم بتحريره.
إذا كنت ترغب في تغيير الوضع بشكل تفاعلي إلى لوا ، على سبيل المثال ، ثم قم بتشغيله:
M-x syntax("lua")
يتطلب تنفيذ تسليط الضوء على بناء الجملة تحميل المكتبة. على سبيل المثال ، يتطلب تمييز بناء الجملة لـ LUA أن يتم تحميل المكتبة lua.lua - يتم البحث عن أوضاع بناء الجملة في هذه المواقع:
/etc/kilua/syntax~/.kilua/syntax--syntax-path .التنفيذ بسيط جدا:
update_colours بتعيين لون كل حرف في المخزن المؤقت. لتجنب التأخير عند إدخال النص ، يتم تحديث العرض في الخلفية ، عبر رد الاتصال on_idle() . هذه الوظيفة تفعل الشيء الواضح:
text() .update_colours() . كمثال ملموس ، إذا كان المخزن المؤقت يحتوي على السلسلة "Steve Kemp" ، فيجب أن تحتوي المكالمة على update_colours :
`RED RED RED RED RED WHITE GREEN GREEN GREEN GREEN`
هذا من شأنه أن يؤدي إلى عرض "ستيف" باللون الأحمر ، و "كيمب" باللون الأخضر.
حاليًا ندرج ارتفاع الضوء على:
Makefile s.ستكون عمليات السحب التي تضيف المزيد من أوضاع بناء الجملة موضع ترحيب كبير.
https://news.ycombinator.com/item؟id=12137698
لا توجد خطط مستقبلية واضحة ، ولكن قد يتم وضع تقارير الأخطاء إذا كان لديك ميزة تقترحها (أو خطأ للإبلاغ)!
شيء واحد قد يكون مفيدًا هو الانقسام المقسم ، لعرض ملفين جنبًا إلى جنب ، أو واحد فوق الآخر. لم يتم التخطيط لهذا بعد ، لكنني أعتقد أنه يمكن القيام به بشكل نظيف بشكل معقول.
ستيف - https://steve.kemp.fi/