]> git.lizzy.rs Git - micro.git/blobdiff - runtime/help/tutorial.md
Update tutorial docs
[micro.git] / runtime / help / tutorial.md
index 7d30df1c4b55ad8d4c9c853ea69c2ef5f61be631..bdc4f6dee717073b96dfda625ec6b82e8bacb8a7 100644 (file)
@@ -6,16 +6,7 @@ configure micro to your liking.
 
 Hopefully you'll find this useful.
 
-### Plugins
-
-Micro has a plugin manager which can automatically download plugins for you. To
-see the 'official' plugins, go to github.com/micro-editor/plugin-channel.
-
-For example, if you'd like to install the snippets plugin (listed in that repo),
-just press `CtrlE` to execute a command, and type `plugin install snippets`.
-
-For more information about the plugin manager, see the end of the `plugins` help
-topic.
+See `> help defaultkeys` for a list an explanation of the default keybindings.
 
 ### Settings
 
@@ -25,7 +16,7 @@ the settings and their values. To change an option, you can either change the
 value in the `settings.json` file, or you can type it in directly while using
 micro.
 
-Simply press CtrlE to go to command mode, and type `set option value` (in the
+Press CtrlE to go to command mode, and type `set option value` (in the
 future, I will use `> set option value` to indicate pressing CtrlE). The change
 will take effect immediately and will also be saved to the `settings.json` file
 so that the setting will stick even after you close micro.
@@ -79,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
+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
+
+function gorun(bp)
+    local buf = bp.Buf
     if buf:FileType() == "go" then
-        HandleShellCommand("go run " .. buf.Path, true, true) -- the first true means don't run it in the background
+        -- 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
-
-BindKey("CtrlR", "init.gorun")
 ```
 
-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"
 }
 ```