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/