Kilua adalah editor teks yang kecil, dapat diperluas, dan bertenaga Lua.

Proyek ini awalnya didasarkan pada editor kilo minimal yang awalnya ditulis oleh @antirez, dan diperkenalkan di sini di blognya, tetapi sekarang tidak berbagi kode dengan proyek itu, hanya keturunan.
Kilua ditulis oleh Steve Kemp dan menampilkan banyak pembaruan dan penambahan dibandingkan dengan proyek asli:
Mx function() .lua-lpeg . Meluncurkan kilua Works seperti yang Anda harapkan:
$ kilua [options] [file1] [file2] ... [fileN]
Setelah diluncurkan, tombol panah akan menggerakkan Anda, dan kunci kunci utama untuk dipelajari adalah:
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.
Opsi baris perintah berikut diakui dan dipahami:
--config file--dump-config--eval--syntax-path--versionInstalasi harus lurus ke depan, untuk membangun kode yang dijalankan:
make
Setelah dibangun, Anda dapat menjalankan biner dengan cara portabel, seperti itu:
./kilua --syntax-path ./syntax [options] [file1] [file2] .. [fileN]
Penggunaan- --syntax-path diperlukan untuk memuat file sintaks, tetapi Anda dapat menghapus opsi jika Anda menyalin konten ./syntax/ direktori ke baik:
/etc/kilua/syntax/~/.kilua/syntax/Jika Anda tidak menentukan lokasi perpustakaan sintaksis-highlight, atau Anda tidak menginstalnya maka Anda akan memiliki dukungan nol sintaksis-highlighting.
Ini adalah konsekuensi dari menempatkan kode sintaksis-highlight di perpustakaan eksternal: Jika Anda tidak dapat memuat pustaka tersebut maka fungsionalitasnya tidak akan tersedia.
Kami membangun dengan LUA 5.2 secara default, tetapi jika Anda mengedit src/Makefile Anda juga harus dapat membangun dengan sukses dengan LUA 5.1.
Pada startup file konfigurasi berikut dibaca jika ada:
~/.kilua/init.lua ../.kilua/$hostname.lua .*Messages* buffer untuk melihat mana yang ditemukan, jika ada. Jika tidak ada file yang dibaca maka salinan kilua.lua yang tertanam, yang dihasilkan pada waktu build, akan dieksekusi, yang memastikan bahwa fungsionalitas minimum ada. (yaitu jika Anda memuat file nol konfigurasi maka tidak akan ada pengaturan binding key sehingga Anda tidak dapat menavigasi atau mengedit!)
Diasumsikan Anda akan mengedit file startup yang disediakan, untuk mengubah binding yang sesuai dengan kebutuhan Anda, menambah fungsionalitas melalui primitif Lua yang disediakan, dan kemudian menyalin ke ~/.kilua/init.lua (mungkin memperluasnya dengan file per-host juga).
Tanpa perubahan apa pun, Anda akan mendapatkan editor fungsional yang mengikuti preferensi khusus saya.
Pull-Requests Menerapkan fungsionalitas yang bermanfaat akan diterima dengan terima kasih, bahkan jika hanya untuk menambahkan sintaks-highlighting untuk bahasa tambahan.
Di masa depan lebih banyak panggilan balik mungkin diimplementasikan, yang merupakan fungsi panggilan C-core di berbagai titik.
Saat ini panggilan balik berikut ada dan dipanggil melalui c-core:
get_status_bar()on_complete(str)on_idle()on_key(key)on_loaded(filename)on_save(filename)on_saved(filename) kilua memungkinkan beberapa file dibuka, melalui penggunaan buffer. Jika kilua diluncurkan tanpa parameter nama file akan ada dua buffer:
*Messages*Ctrl-x Ctrl-s , atau Mx save("name") , untuk menyimpannya. Kalau tidak, akan ada satu buffer untuk setiap file yang dinamai berdasarkan baris perintah, serta *Messages* buffer. (Anda dapat membunuh *Messages* buffer jika Anda mau, tetapi itu adalah hal yang berguna untuk dimiliki.)
Binding kunci default untuk bekerja dengan buffer adalah:
| Tindakan | Mengikat |
|---|---|
| Buat buffer baru. | Ctrl-x c |
| Bunuh buffer saat ini. | Ctrl-x k |
| Bunuh buffer saat ini, secara paksa. | Ctrl-x K |
| Pilih buffer berikutnya. | Ctrl-x n atau M-right |
| Pilih buffer sebelumnya. | Ctrl-x p atau M-left |
| Pilih buffer, melalui menu. | Ctrl-x b atau Ctrl-x B |
Perlu dicatat bahwa Anda dapat dengan mudah membuat buffer secara dinamis, melalui Lua, misalnya fungsi berikut dapat dipanggil oleh Mx uptime() , dan melakukan apa yang Anda harapkan:
*uptime* ./usr/bin/uptime ke dalam buffer.Sampel 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
Anda dapat merekam posisi Anda (yaitu "Mark") dalam kunci bernama, dan kemudian melompat ke sana, seperti di vi .
Untuk merekam posisi saat ini, gunakan Mm , dan tekan tombol yang ingin Anda gunakan. Untuk kembali ke sana gunakan Mb XX di mana XX adalah kunci yang Anda pilih. (Marks merekam buffer, serta posisi kursor saat ini.)
Status-bar, ditampilkan sebagai garis kedua dari belakang di layar, berisi nama file/buffer saat ini, serta posisi kursor, dll.
Isi status-bar dihasilkan melalui LUA, jadi mudah dimodifikasi. Tampilan Default menunjukkan:
"${buffer}/${buffers} - ${file} ${mode} ${modified} #BLANK# Col:${x} Row:${y} [${point}] ${time}"
Nilai di dalam " ${...} " diperluas melalui substitusi dan berikut ini disediakan secara default:
| Nama | Arti |
|---|---|
${buffers} | Hitungan buffer terbuka. |
${buffer} | Jumlah buffer saat ini. |
${date} | Tanggal saat ini. |
${file} | Nama file/buffer. |
${mode} | Mode sintaks-highlighting digunakan, jika ada. |
${modified} | String yang melaporkan apakah buffer dimodifikasi. |
${point} | Karakter di bawah titik. |
${time} | Waktu saat ini. |
${words} | Hitungan kata -kata dalam buffer. |
${x} | Koordinat X dari kursor. |
${y} | Koordinat Y dari kursor. |
Pull-Requests Menambahkan lebih banyak opsi di sini akan sangat disambut.
Sorot sintaks ditangani melalui perpustakaan lua-lpeg , dan jadi jika itu tidak diinstal itu tidak akan tersedia.
Setiap buffer memiliki mode highlighting sintaks yang terkait, yang merupakan string seperti "C", "Markdown", atau "Lua". File konfigurasi default menetapkan mode berdasarkan akhiran file yang Anda edit.
Jika Anda ingin mengubah mode secara interaktif ke LUA, misalnya, maka jalankan:
M-x syntax("lua")
Implementasi penyorotan sintaks membutuhkan pemuatan perpustakaan. Misalnya, penyorotan sintaks LUA mengharuskan perpustakaan lua.lua dimuat - mode sintaks dicari di lokasi ini:
/etc/kilua/syntax~/.kilua/syntax--syntax-path .Implementasinya cukup sederhana:
update_colours akan memungkinkan warna masing -masing karakter dalam buffer diatur. Untuk menghindari penundaan saat memasukkan teks, rendering diperbarui di latar belakang, melalui panggilan balik on_idle() . Fungsi ini melakukan hal yang jelas:
text() .update_colours() . Sebagai contoh konkret, jika buffer berisi string "Steve Kemp" maka panggilan ke update_colours harus berisi:
`RED RED RED RED RED WHITE GREEN GREEN GREEN GREEN`
Itu akan mengakibatkan "Steve" ditampilkan dengan warna merah, dan "Kemp" berwarna hijau.
Saat ini kami menyertakan sintaks-highlight untuk:
Makefile s.Pull-Requests Menambahkan lebih banyak mode sintaks akan sangat disambut.
https://news.ycombinator.com/item?id=12137698
Tidak ada rencana masa depan yang jelas, tetapi laporan bug dapat dibuat jika Anda memiliki fitur untuk disarankan (atau bug untuk melaporkan)!
Satu hal yang mungkin berguna adalah split-display, untuk melihat dua file berdampingan, atau satu di atas yang lain. Ini belum direncanakan, tetapi saya pikir itu bisa dilakukan dengan cukup bersih.
Steve - https://steve.kemp.fi/