Kilua是一個小的,可擴展的且由LUA驅動的文本編輯器。

該項目最初是基於最初由@antirez撰寫的最低千千編輯器,並在此處介紹了他的博客,但現在與該項目(Ancestry)沒有任何代碼。
Kilua是由史蒂夫·肯普(Steve Kemp)撰寫的,與原始項目相比,具有許多更新和補充:
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的嵌入式副本,以確保存在最小功能。 (即,如果加載零配置文件,則不會有任何鍵框設置,因此您既不能導航也不能編輯!)
假定您將編輯提供的啟動文件,更改綁定以適合您的需求,通過提供的LUA原始添加功能,然後將功能複製到~/.kilua/init.lua中(也許也可以使用每個主機文件擴展該功能)。
沒有任何更改,您會得到一個遵循我的特定偏好的功能編輯器。
即使只是為了添加其他語言的語法高光,也要感謝實現有用功能的PALP-REQUESTS 。
將來可能會實現更多的回調,這是C核調用各個點的函數。
目前,存在以下回調,並通過C核調用:
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*緩衝區,但這是一件方便的事情。)
使用緩衝區的默認鍵結合是:
| 行動 | 結合 |
|---|---|
| 創建一個新的緩衝區。 | 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
您可以在命名鍵中記錄您的位置(即“標記”),然後像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”之類的字符串。默認配置文件根據您要編輯的文件的後綴設置模式。
例如,如果您希望將模式與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`
這將導致“史蒂夫”以紅色顯示,而“ kemp”以綠色顯示。
目前,我們包括語法高光。
Makefile s。添加更多語法模式的抽拉要求是最歡迎的。
https://news.ycombinator.com/item?id=12137698
沒有明顯的未來計劃,但是如果您有要建議的功能(或報告錯誤),則可能會進行錯誤報告!
可能有用的一件事是拆分播放,可以並排查看兩個文件,或另一個文件。這尚未計劃,但我認為可以合理地完成。
史蒂夫-https://steve.kemp.fi/