mirror of
https://github.com/zyedidia/micro.git
synced 2026-03-16 22:07:09 +09:00
Update tutorial docs
This commit is contained in:
@@ -70,31 +70,40 @@ what actions are available, see the `keybindings` help topic (`> help keybinding
|
||||
|
||||
If you need more power than the json files provide, you can use the `init.lua`
|
||||
file. Create it in `~/.config/micro`. This file is a lua file that is run when
|
||||
micro starts and is essentially a one-file plugin.
|
||||
micro starts and is essentially a one-file plugin. The plugin name is `initlua`.
|
||||
|
||||
I'll show you how to use the `init.lua` file by giving an example of how to
|
||||
create a binding to `CtrlR` which will execute `go run` on the current file,
|
||||
This example will show you how to use the `init.lua` file by creating
|
||||
a binding to `CtrlR` which will execute the bash command `go run` on the current file,
|
||||
given that the current file is a Go file.
|
||||
|
||||
You can do that by putting the following in `init.lua`:
|
||||
|
||||
```lua
|
||||
function gorun()
|
||||
local buf = CurView().Buf -- The current buffer
|
||||
if buf:FileType() == "go" then
|
||||
HandleShellCommand("go run " .. buf.Path, true, true) -- the first true means don't run it in the background
|
||||
end
|
||||
local config = import("micro/config")
|
||||
local shell = import("micro/shell")
|
||||
|
||||
function init()
|
||||
-- true means overwrite any existing binding to CtrlR
|
||||
-- this will modify the bindings.json file
|
||||
config.TryBindKey("CtrlR", "lua:initlua.gorun", true)
|
||||
end
|
||||
|
||||
BindKey("CtrlR", "init.gorun")
|
||||
function gorun(bp)
|
||||
local buf = bp.Buf
|
||||
if buf:FileType() == "go" then
|
||||
-- the true means run in the foreground
|
||||
-- the false means send output to stdout (instead of returning it)
|
||||
shell.RunInteractiveShell("go run " .. buf.Path, true, false)
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
Alternatively, you could get rid of the `BindKey` line, and put this line in the
|
||||
Alternatively, you could get rid of the `TryBindKey` line, and put this line in the
|
||||
`bindings.json` file:
|
||||
|
||||
```json
|
||||
{
|
||||
"CtrlR": "init.gorun"
|
||||
"CtrlR": "lua:initlua.gorun"
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user