Kilua는 작고 확장 가능하며 LUA 구동 텍스트 편집기입니다.

이 프로젝트는 원래 @Antirez가 원래 작성한 최소 킬로 편집자를 기반으로했으며 그의 블로그에서 여기에 소개되었지만 이제는 그 프로젝트와 코드를 공유하지 않습니다.
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 의 내장 된 사본이 실행되어 최소 기능이 존재하도록합니다. (예 : 제로 구성 파일을로드하면 KeyBindings 설정이 없어서 탐색하거나 편집 할 수 없습니다!)
제공된 시작 파일을 편집하고, 필요에 맞게 바인딩을 변경하고, 제공된 LUA 프리미티브를 통해 기능을 추가 한 다음 ~/.kilua/init.lua 로 복사 할 것으로 가정합니다 (아마도 호스트 당 파일로 확장).
변경 없이는 내 특정 선호도를 따르는 기능 편집기가 나타납니다.
유용한 기능을 구현하는 Pull-Request는 추가 언어에 대한 구문 높이 조명을 추가하더라도 감사를 받아 수신됩니다.
앞으로 더 많은 콜백이 구현 될 수 있으며, 이는 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
이름이 지정된 키에 위치 (예 : "Mark")를 기록하고 나중에 vi 와 마찬가지로 점프 할 수 있습니다.
현재 위치를 기록하려면 Mm 사용하고 사용하려는 키를 누릅니다. IT로 돌아 가기 위해 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 좌표. |
여기에 더 많은 옵션을 추가하는 Pull-Request가 가장 환영받을 것입니다.
구문 강조 표시는 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`
이로 인해 "Steve"는 빨간색으로 표시되고 "Kemp"는 녹색으로 표시됩니다.
현재 우리는 구문 높이 조명을 포함합니다.
Makefile s.더 많은 구문 모드를 추가하는 풀 레퍼스트가 가장 환영합니다.
https://news.ycombinator.com/item?id=12137698
미래의 명백한 계획은 없지만 제안 할 기능이 있으면 버그 보고서를 작성할 수 있습니다 (또는보고 할 버그)!
유용 할 수있는 한 가지는 두 개의 파일을 나란히 보거나 다른 파일 위를 보는 분할 디스플레이입니다. 이것은 아직 계획되지 않았지만 합리적으로 깨끗하게 할 수 있다고 생각합니다.
스티브 - https://steve.kemp.fi/