diff --git a/README.md b/README.md index 17bd184e..1718b547 100644 --- a/README.md +++ b/README.md @@ -87,67 +87,17 @@ $ ifconfig | micro You can move the cursor around with the arrow keys and mouse. -#### Keybindings - -* Ctrl-q: Quit -* Ctrl-s: Save -* Ctrl-o: Open file -* Ctrl-z: Undo -* Ctrl-y: Redo -* Ctrl-f: Find -* Ctrl-n: Find next -* Ctrl-p: Find previous -* Ctrl-a: Select all -* Ctrl-c: Copy -* Ctrl-x: Cut -* Ctrl-v: Paste -* Ctrl-g: Open help -* Ctrl-u: Half page up -* Ctrl-d: Half page down -* PageUp: Page up -* PageDown: Page down -* Home: Go to beginning -* End: Go to end -* Ctrl-e: Execute a command - You can also use the mouse to manipulate the text. Simply clicking and dragging will select text. You can also double click to enable word selection, and triple click to enable line selection. -You can also run `$ micro -version` to get the version number. Since there is no release, this just gives you the +You can run `$ micro -version` to get the version number. Since there is no release, this just gives you the commit hash. The version is unknown if you built with `go get`, instead use `make install` or `make` to get a binary with a version number defined. -# Configuration +#### Help text -Configuration directory: - -Micro uses the `$XDG_CONFIG_HOME/micro` as the configuration directory. As per the XDG spec, -if `$XDG_CONFIG_HOME` is not set, `~/.config/micro` is used as the config directory. - -At this point, there isn't much you can configure. -Micro has a few options which you can set: - -* colorscheme -* tabsize -* syntax -* tabsToSpaces - -To set an option run Ctrl-e to execute a command, and type `set option value`, so to set the tabsize to 8 it would be `set tabsize 8`. The default is 4. - -The syntax option can simply be on or off, so for example to turn syntax highlighting off, run `set syntax off`. The default is on. - -The tabsToSpaces option is on or off. It specifies whether to use spaces instead of tabs or not. The default is off. - -The colorscheme can be selected from all the files in the `~/.config/micro/colorschemes/` directory. Micro comes by default with three colorschemes: - -* default: this is the default colorscheme. -* solarized: this is the solarized colorscheme (used in the screenshot). You should have the solarized color palette in your terminal to use it. -* solarized-tc: this is the solarized colorscheme for true color, just make sure your terminal supports true color before using it and that the `MICRO_TRUECOLOR` environment variable is set to 1 before starting micro. - -These are embedded in the Go binary, but to see their source code, look [here](./runtime/colorschemes) - -Any option you set in the editor will be saved to the file `~/.config/micro/settings.json` so, in effect, your configuration file will be created -for you. If you'd like to take your configuration with you to another machine, simply copy the `settings.json` to the other machine. +See the [help text](./runtime/help/help.md) for information about keybindings, editor commands, colorschemes and +configuration options. # Contributing diff --git a/cmd/micro/help.go b/cmd/micro/help.go index 2a25fafb..3f0ac489 100644 --- a/cmd/micro/help.go +++ b/cmd/micro/help.go @@ -1,117 +1,13 @@ package main -import ( - "github.com/gdamore/tcell" - "strings" -) +var helpTxt string -const helpTxt = `Press Ctrl-g to close help - -Micro keybindings: - -Ctrl-q: Quit -Ctrl-s: Save -Ctrl-o: Open file - -Ctrl-z: Undo -Ctrl-y: Redo - -Ctrl-f: Find -Ctrl-n: Find next -Ctrl-p: Find previous - -Ctrl-a: Select all - -Ctrl-c: Copy -Ctrl-x: Cut -Ctrl-v: Paste - -Ctrl-g: Open this help screen - -Ctrl-u: Half page up -Ctrl-d: Half page down -PageUp: Page up -PageDown: Page down - -Home: Go to beginning -End: Go to end - -Ctrl-e: Execute a command - -Possible commands: - -'quit': Quits micro -'save': saves the current buffer - -'replace "search" "value"': This will replace 'search' with 'value'. -Note that 'search' must be a valid regex. If one of the arguments -does not have any spaces in it, you may omit the quotes. - -'set option value': sets the option to value. Please see the next section for a list of options you can set - -Micro options: - -Configuration directory: - -Micro uses the $XDG_CONFIG_HOME/micro as the configuration directory. As per the XDG spec, -if $XDG_CONFIG_HOME is not set, ~/.config/micro is used as the config directory. - -colorscheme: loads the colorscheme stored in $(configDir)/colorschemes/'option'.micro - default value: 'default' - Note that the default colorschemes (default, solarized, and solarized-tc) are not located in configDir, - because they are embedded in the micro binary - -tabsize: sets the tab size to 'option' - default value: '4' - -syntax: turns syntax on or off - default value: 'on' - -tabsToSpaces: use spaces instead of tabs - default value: 'off' -` - -// DisplayHelp displays the help txt -// It blocks the main loop -func DisplayHelp() { - topline := 0 - _, height := screen.Size() - screen.HideCursor() - totalLines := strings.Split(helpTxt, "\n") - for { - screen.Clear() - - lineEnd := topline + height - if lineEnd > len(totalLines) { - lineEnd = len(totalLines) - } - lines := totalLines[topline:lineEnd] - for y, line := range lines { - for x, ch := range line { - st := defStyle - screen.SetContent(x, y, ch, nil, st) - } - } - - screen.Show() - - event := screen.PollEvent() - switch e := event.(type) { - case *tcell.EventResize: - _, height = e.Size() - case *tcell.EventKey: - switch e.Key() { - case tcell.KeyUp: - if topline > 0 { - topline-- - } - case tcell.KeyDown: - if topline < len(totalLines)-height { - topline++ - } - case tcell.KeyCtrlQ, tcell.KeyCtrlW, tcell.KeyEscape, tcell.KeyCtrlC: - return - } - } +// LoadHelp loads the help text from inside the binary +func LoadHelp() { + data, err := Asset("runtime/help/help.md") + if err != nil { + TermMessage("Unable to load help text") + return } + helpTxt = string(data) } diff --git a/cmd/micro/micro.go b/cmd/micro/micro.go index cef6c976..fb421b24 100644 --- a/cmd/micro/micro.go +++ b/cmd/micro/micro.go @@ -185,6 +185,8 @@ func main() { InitBindings() // Load the syntax files, including the colorscheme LoadSyntaxFiles() + // Load the help files + LoadHelp() buf := NewBuffer(string(input), filename) @@ -242,7 +244,7 @@ func main() { } case tcell.KeyCtrlG: if !helpOpen { - helpBuffer := NewBuffer(helpTxt, "") + helpBuffer := NewBuffer(helpTxt, "help.md") helpBuffer.name = "Help" helpOpen = true view.OpenBuffer(helpBuffer) diff --git a/cmd/micro/runtime.go b/cmd/micro/runtime.go index a27854ff..6bb60677 100644 --- a/cmd/micro/runtime.go +++ b/cmd/micro/runtime.go @@ -4,6 +4,7 @@ // runtime/colorschemes/default.micro // runtime/colorschemes/solarized-tc.micro // runtime/colorschemes/solarized.micro +// runtime/help/help.md // runtime/syntax/Dockerfile.micro // runtime/syntax/LICENSE // runtime/syntax/README.md @@ -170,7 +171,7 @@ func runtimeReadmeMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/README.md", size: 305, mode: os.FileMode(420), modTime: time.Unix(1461002675, 0)} + info := bindataFileInfo{name: "runtime/README.md", size: 305, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -190,12 +191,12 @@ func runtimeColorschemesDefaultMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/colorschemes/default.micro", size: 314, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/colorschemes/default.micro", size: 314, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _runtimeColorschemesSolarizedTcMicro = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x7c\xd1\xc1\x6e\xc3\x20\x0c\x06\xe0\x7b\x9f\x22\x4a\xaf\xad\x44\x20\x64\xe6\xd8\xb4\xdb\x7b\x64\xc1\x95\xd0\x08\x8e\x08\x1c\xf6\xf6\x33\x55\xa7\xad\x12\xad\x94\x43\x0e\x9f\x7e\x1b\xff\x33\x79\x8a\x47\xef\xc2\x57\x63\xf1\x3a\x65\x9f\x9a\x76\x0f\xca\xf4\x66\x38\xec\x85\x90\xa0\x54\xbb\xfb\x87\x66\x5a\x16\x0c\x05\x69\x18\xde\xdf\x74\x15\x39\xcb\xc4\x5d\x1d\x46\x76\x72\x80\xf1\x22\x9f\x84\x85\x2d\x4d\xb7\x34\x79\x3a\x75\x06\xaa\x8a\x49\xc2\xfb\x50\xd0\xc6\x08\x51\x65\x6b\x44\xfe\x68\x66\x75\x1e\xfb\xb1\xab\xef\x9f\xbe\x57\x64\x31\x6a\x78\x96\xb3\xad\x38\xbb\xc9\x33\xba\x9c\x95\x94\x1f\x55\x94\x83\xc5\xc8\x7f\x68\x8b\x53\x6a\x80\xfa\x0b\x31\x46\xe2\x23\x7c\x92\xb7\xcd\xcb\xb5\xc8\xd2\x2f\x7b\x11\x57\x4e\x91\xb7\x32\x97\xc7\x0a\xa1\x74\xdf\x1d\xee\x6d\x3d\xb8\x22\x8e\x21\x2f\xb7\x02\xfe\x8a\x2a\xbe\xdd\xfd\x04\x00\x00\xff\xff\xa6\xcf\xdd\xa8\xf3\x01\x00\x00") +var _runtimeColorschemesSolarizedTcMicro = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x7c\xd1\xc1\x6e\xc3\x20\x0c\x06\xe0\x7b\x9f\x22\x4a\xaf\xad\x44\x20\x64\xe6\xd8\xb4\xdb\x7b\xa4\xc1\x95\xd0\x08\x8e\x08\x1c\xf6\xf6\x33\x55\xa7\x6d\x12\xed\x2d\x87\x2f\xbf\x8d\xff\x99\x3c\xc5\xa3\x77\xe1\xb3\xb1\x78\x9b\xb2\x4f\x4d\xbb\x07\x65\x7a\x33\x1c\xf6\x42\x48\x50\xaa\xdd\xfd\x41\x33\x2d\x0b\x86\x82\x34\x0c\xef\x6f\xba\x8a\x9c\x65\xe2\x6e\x0e\x23\x3b\x39\xc0\x78\x91\x4f\xc2\xc2\x96\xa6\x7b\x9a\x3c\x9d\x3a\x03\x55\xc5\x24\xe1\x63\x28\x68\x63\x84\xa8\xb2\x35\xe2\x1a\x69\x66\x74\x1e\xfb\xb1\xab\xaf\x9f\xbe\x56\x64\x31\x6a\x78\x16\xb3\xad\x38\xbb\xc9\x33\xba\x9c\x95\x94\x1f\x55\x94\x83\xc5\xc8\x5f\x68\x8b\x53\x6a\x80\xfa\x03\x31\x46\xe2\x1b\x5c\xc9\xdb\xe6\xe5\x5a\x64\xe9\x87\xbd\x88\x2b\x97\xc8\x5b\x99\xcb\x63\x85\x50\xba\xef\x0e\x8f\xb2\xfe\xb9\x22\x8e\x21\x2f\xd7\x7b\x01\xbf\x45\x95\x1f\xda\xdd\x77\x00\x00\x00\xff\xff\xa3\xfd\xbd\x12\xf3\x01\x00\x00") func runtimeColorschemesSolarizedTcMicroBytes() ([]byte, error) { return bindataRead( @@ -210,7 +211,7 @@ func runtimeColorschemesSolarizedTcMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/colorschemes/solarized-tc.micro", size: 499, mode: os.FileMode(420), modTime: time.Unix(1460839959, 0)} + info := bindataFileInfo{name: "runtime/colorschemes/solarized-tc.micro", size: 499, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -230,7 +231,27 @@ func runtimeColorschemesSolarizedMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/colorschemes/solarized.micro", size: 380, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/colorschemes/solarized.micro", size: 380, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _runtimeHelpHelpMd = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xb4\x57\x5b\x73\xdc\xba\x0d\x7e\x8e\x7e\x05\x66\x9d\x99\x93\x64\x36\xf2\x74\xa6\x4f\xfb\x76\xea\x38\x97\x69\x73\x9c\xe6\x38\x33\x3d\x7d\x89\xb8\x12\xa5\xe5\xb1\x44\x2a\x24\xb5\x6b\xa5\x97\xdf\xde\x0f\xbc\x68\x77\xed\xb8\xd3\x97\x3e\xd9\x0b\x82\x00\x08\x7c\xf8\x00\x5d\xd0\x47\x55\x5b\x43\x3b\xd9\x8f\xe4\xe5\xbd\x2f\x8a\x28\x50\x8e\x04\x04\x76\x50\x5a\xf4\xaf\xb7\xc2\xc9\x26\x9c\x93\x6c\x94\x37\x96\xfc\x4e\x78\x12\x6a\x70\xe4\x0d\x6d\x25\x49\xe1\x66\xfe\x77\x72\x92\x84\x6e\x48\x69\x3f\x29\xaf\xf6\x72\x4d\xc5\x61\xa7\x7a\x48\x7b\x67\xc8\x8b\x3b\xa5\x3b\x12\xcd\x5e\x68\x2f\x3a\x49\xa6\x85\x29\x49\xed\xd4\xf7\x54\x8b\x51\x6c\x55\x8f\x6b\xd2\xf1\xc1\x60\x1a\x69\xf5\x12\x85\x2b\x8b\xe2\xe2\xe2\x82\xbe\x38\x5c\x2c\x8a\x1b\x5d\x4b\x9a\xcd\x44\x3b\xb1\x97\xb4\x9d\x54\xef\x83\xa9\x18\xe0\x9a\x9c\x1a\xc6\x7e\x26\xe7\x85\xf5\xa4\x3c\x6d\x67\xb2\x93\xd6\xec\xbe\x1a\xc2\x1b\x47\xe1\x77\x97\xde\x5c\xb6\x08\xaf\xf4\xf7\xbe\x22\x3c\x2c\x5d\x8b\x2a\x15\x3f\xc9\x8c\x52\xe3\x4d\x24\x87\xd1\xcf\x70\xd4\xb6\xd2\x96\x39\x4f\xe1\x55\x6e\x1a\x47\x63\xbd\xa3\xda\x4a\xe1\xd9\x43\xd4\x72\xd4\x5a\x33\x20\x84\x46\xe9\x4d\x51\x54\x55\x55\x3c\x27\xd5\xd6\x46\xb7\xaa\xa3\x7f\x52\xf0\x11\xc4\xc5\x6f\x78\x48\x0d\x27\x83\xc1\x63\xf8\x19\xf5\x64\x1d\xc2\x11\xd6\x4c\x48\xe7\x41\xf9\x5d\x10\x0b\x6b\xcd\x81\xee\xe4\xec\x42\x9a\x07\x83\x84\xa7\xbc\xfc\x59\xce\x5b\xa5\xe1\xaa\x73\x45\x71\xbb\x93\x5c\x09\x1b\x8d\x35\xb2\x15\x13\xf2\x73\x77\x54\x59\x23\x74\x83\x48\xb3\x65\x05\x5f\xb5\x57\x46\xa7\x34\x5f\xd0\x75\xac\xf4\xd1\xe6\x2b\xba\xf2\xb6\x7f\xfd\x6d\x43\x44\x7f\x45\x75\xb3\x40\xb2\xe0\xfa\x5e\xd6\x93\x87\x4b\xaa\xcd\x30\x20\xb6\x7c\xda\xf1\xe9\xad\xe9\x3a\x60\xe0\x08\xb3\x74\xb8\xe5\xc3\xcf\x13\xf2\x4b\x0e\x87\xfd\x72\x39\x86\xf0\xa7\x90\xc6\xc7\x21\x38\xbe\xf6\x2b\xea\x9e\x05\x86\x05\x37\x5c\x28\x2e\x66\x96\x7e\x67\xe9\x17\xdd\x98\x2c\x98\x83\x3b\x79\x14\xb4\x2c\x78\xab\x8e\xd1\xea\x2c\x20\x7d\x12\xe6\xb8\x48\x47\x2b\xf7\x0a\x49\xcf\x27\x22\x44\x22\x7b\x59\xa3\x1d\xfa\x3e\x8b\x6b\x16\x5f\x99\x71\xce\x82\xfb\x20\x98\x16\x8b\x77\xe9\x37\xf5\x4a\x2f\xf1\xee\x59\xf8\x49\x38\xbf\x48\x26\x96\xbc\x17\x7d\x0b\xb0\xa2\x5b\xa6\x31\x1f\x34\xe7\x07\x8d\x39\x68\x1c\x7d\xc2\xff\x5f\xc6\x68\x25\xab\xf3\x7f\x6f\x70\xbc\x89\xb2\xa4\xf9\xde\x0c\xa1\x6c\x44\xef\x4c\x6c\xe1\x4e\xc5\xe6\x40\xe3\xa5\x1c\x5e\xeb\x26\xaa\x24\x1d\x89\xf7\x1f\x4f\x43\x18\xf6\xa4\xb8\xfc\x12\xd2\xd3\xb0\x05\xf0\x03\x00\x53\x17\x2c\xe5\xa3\x41\xcc\xcc\x15\x56\x6e\x03\xa8\x27\xc7\xfe\x18\x9f\xd5\xbf\x2f\xcb\xd8\x15\x97\xa1\x27\x2e\xf3\x95\xf2\x77\x67\x74\x15\x5c\x96\x74\x2d\xea\x1d\x43\x98\xc9\x29\x5a\x40\x50\xe8\x99\x88\x5b\xc0\xf6\x2d\xe0\x2a\xef\x05\x1a\x18\xb4\xc3\x8f\xe2\x8a\x55\xb1\xf2\xa1\x95\x71\xc7\x84\xbe\x89\xc2\xef\x41\x68\x81\x87\x75\x60\x92\xda\x4c\x3d\x4a\x3c\x45\x22\x69\x4d\xdf\x9b\x03\x87\xa8\x74\x8c\xf2\x47\x51\x85\xb6\xe6\xdf\xc5\x3f\x0a\x4e\xd5\x8a\x2d\xff\xb6\xda\xd0\x8a\x81\xb7\x5a\x1f\x85\x7f\x67\x21\x83\x6f\x55\xfc\x2b\x36\x3d\x43\xfc\x93\x71\x4e\x6d\x91\xbe\x84\x7c\x77\xe4\x02\x99\x5b\x4a\x67\xd6\x4d\x3a\xcc\x65\x00\xa2\x0b\xf9\x8b\x4f\x91\x55\x8a\x57\x86\xd3\xc0\x20\x51\xb9\x2c\xde\x4b\x7b\xa4\x82\xf1\xa1\xbf\x48\xe5\x73\xf2\x19\xe9\xe4\x15\x55\xdf\xd0\xe0\xd5\x26\xf4\xb9\x8b\x44\x55\xb2\xd8\xa1\xe9\x20\xe6\xde\x73\x99\xa7\xac\xd4\xfe\xc8\x8b\x50\xb2\x72\xec\x05\xd8\x79\xe5\xa4\xb0\xf5\x6e\x45\xab\xbd\xe8\x27\xb9\xc2\xc5\xdb\x1d\x8a\x77\x50\xe8\xf4\xac\x54\x45\xa5\x2a\x32\x51\x15\x34\x2b\xd8\xe1\xbc\xfd\x62\xbc\x8c\xf1\x2d\x5a\xc3\xe4\x3c\x83\x48\x10\x34\x55\x03\x33\x9d\xbc\x2f\x89\x3e\xb4\x64\xf4\x32\x4f\x84\xed\xa6\x01\x61\xb9\x60\xa6\x31\x08\x56\x1b\x1f\x47\x85\xd0\x98\x0a\x23\x5c\x3b\x2e\xac\xf2\xb1\xf6\x8c\x4d\x33\xa8\x58\xfa\x6f\x13\x1c\xbb\xf8\x18\x27\x3d\x46\x00\x23\x8c\x62\x6c\x1b\x82\x28\x3e\x3e\xc9\x01\xa2\x70\x54\xd2\xa7\x1e\x83\x50\x42\x21\x26\x9b\x39\x04\x3f\x02\x3e\x51\x1f\x50\x2c\xba\x04\xf1\x23\xca\x78\xd5\x2d\x89\x87\xcd\x94\x3c\xb0\xa1\xdb\xbd\x4e\xe5\x81\x37\x08\xa2\xb7\x0e\xe3\x54\x9f\xf3\x64\x86\xe6\x56\xd4\x77\x5d\x18\x15\x25\xdd\x1e\x6b\xff\x13\xe6\xe8\xe4\x19\xd0\x21\xe5\x48\x5b\xa3\x1c\xd2\x3e\xcb\xa6\xc0\x4d\x4e\x58\xe8\xda\xc3\x4e\x72\x26\x80\x68\xad\x60\xdf\xe5\x49\x99\x26\xcb\x4d\x8c\x35\xcf\x3c\x07\x28\x42\x07\x74\x97\xd3\x0d\xd4\x30\x38\xb9\x81\x27\x2b\xc2\x6b\x43\x6a\xdd\x03\x61\xa3\x2c\x92\x61\xec\xbc\xcc\x4f\xdc\x8c\x8f\xab\x9e\xff\xed\xcd\xbb\xaf\x57\x37\xbf\xbc\xfd\xf0\xee\xeb\xfb\x9b\x8f\xd7\x97\x69\x02\x8b\x84\xb3\x27\x0c\xd1\xcf\x8e\x46\x69\x83\x0e\x2c\xa0\xb2\xb2\x5e\x17\xaa\x7d\x6c\xb0\x62\xde\x60\x14\x20\xd5\xeb\x47\x94\x13\x4e\x27\x5e\x73\xce\x1c\x9e\x85\x7c\xd6\x48\xb9\x80\x67\xed\x03\xd3\x9b\x50\xc5\xda\xf4\xc6\xba\x7a\x27\x07\x06\x4c\x6f\x44\x93\xad\x2e\xf2\x98\xc7\x50\xc2\xe7\x2f\xa2\xb7\x37\xca\xbe\xbc\x3c\x51\x71\x97\x55\x74\x53\x95\x71\x57\x28\x9e\xe5\x51\x1e\x00\xb7\xa1\x2a\xfd\xae\x8a\x67\xc7\x66\x39\x1d\xf9\xa7\xd6\xe8\x45\x92\x62\x3b\x32\xbd\xb0\xea\xbb\x6c\xd6\x81\x0f\x97\x9f\xaf\x7d\xfd\x32\x3c\x91\x13\xd5\x9b\x5a\xf8\x18\xe1\x12\xdf\xba\x78\xb6\x95\xb5\xe0\x3d\x0f\x6e\xe6\xa0\x2b\xc1\xf9\x4d\x23\x17\x34\xc6\xf5\x0a\x6c\x29\xec\x1c\x1b\xf9\xf6\xc1\xd3\x39\x57\x5b\xee\x13\x1e\x9c\xb8\x18\xf6\x24\x06\x54\x20\x5e\xf0\xaa\xcb\xb6\x1e\x4e\x86\xb3\xec\x9c\xe2\x20\xe2\x09\xc0\xc7\x5d\x30\x60\x7e\x7f\xda\x6f\xac\x3c\x0b\xc0\x6d\x62\x5c\xaf\xb2\xde\x06\x3a\x00\x80\x72\x4f\x25\xaf\x4c\xfa\x4b\xa6\xce\x6f\x2c\xe2\xb3\x67\xbe\x08\x80\x4a\x2f\x71\xd8\x0e\xa5\x76\x3b\xe3\x5f\x96\xc4\x1c\x8f\x7f\x79\xde\x04\x52\x62\x85\x22\x0e\xdb\x07\xa6\x30\xe0\x7b\xe9\x51\x5a\x98\x01\xcc\xec\xb2\x0f\xe7\x75\x5b\xf9\x47\xb1\xa1\x8a\xff\x4b\x78\xcc\x48\xde\x4e\x29\x33\x6b\xfa\x9d\xb9\x75\x10\x77\xd0\x9f\xec\x12\xcf\xb9\xd3\x65\xd7\x3d\x5e\x44\x25\x61\x49\xa6\x79\x0e\x1a\x61\x44\x2d\x40\xfc\xf8\xe1\xea\xf3\xcd\xd7\xdb\xcf\x5f\xae\xaf\x6e\xfe\x72\xf3\x19\x5b\xc4\x5e\x59\xa3\x99\x9d\x93\x83\x3d\x42\x13\x3c\x92\x10\x2c\xb3\x2d\xde\xf5\x87\x6c\x33\xac\xef\x6c\x36\x8d\xa0\xd0\x5c\x5e\x6c\x1d\x1e\x73\xca\xc4\x10\x11\xcb\xf8\x72\xee\x99\x1f\x74\xcb\x1f\xab\xc8\xe9\x33\xbe\x3e\xee\x71\xdf\x4f\x16\x2d\x1c\x7f\x82\x0e\xf9\x03\xc0\xb4\xed\x0f\x2e\x06\x73\xc9\xf5\xad\xf9\x35\x8c\x0f\xdc\xe7\xfc\x2f\xb3\x04\x7b\x9b\x08\x1b\x12\x2b\xfd\xc8\x46\xdb\x46\x23\x62\xf2\x06\xab\x04\x32\x00\x13\x81\x7b\x97\x0f\x07\x81\x99\x71\x88\xa4\x9c\x5a\x8c\x9c\x18\xb8\xf8\xac\x1e\xc9\x2f\x11\x54\x5e\x45\xe3\x0a\x19\x07\xdd\x13\x51\xdb\xa9\x97\x16\xbe\x12\xfb\x3f\x58\xd5\xfe\xdb\xcd\xce\xb4\x03\x47\xc9\x3b\x7a\xfa\x11\x22\x96\xfb\xc4\xb9\xdc\xac\xa1\x70\x40\x71\x43\x2f\x02\xe8\x8c\xc6\x17\x94\x18\xc7\x9e\x3f\xe4\xb8\x20\x65\x67\xe2\xba\xe4\x5e\x3e\xe1\x2e\xa7\xa6\x33\xf8\xfe\x62\x7c\xc5\xc1\x77\x2a\xf8\xff\xf9\xfd\x19\x1b\x41\x1a\xe5\x4c\xe4\x8c\xc1\xd4\xb3\x69\xef\xca\xd3\x33\x3a\x83\xe5\x25\x82\x87\xf4\x84\xbb\x7e\x59\x11\xd1\x76\xf8\xfc\x85\x29\x89\xdd\xa8\x8e\x8b\xc6\xc3\x39\x19\xac\x64\xfb\x01\x06\x4c\x87\xf0\x09\xdd\x92\xb7\x1a\xfc\xfd\xa9\x41\xc5\xee\x02\xb6\x3d\x77\xe7\x63\x33\x45\xa0\x39\x0e\x3e\xac\xc4\x06\xf1\x59\x74\x72\xbd\x43\xa1\x97\x4f\xe1\x1a\xdf\x23\x11\x51\x67\x41\xa6\xe7\x9c\xdd\x41\xa3\x7d\xd0\xe9\xcb\x1c\x3d\xc2\xeb\x34\xcf\xe8\x04\x80\xb0\x41\x9f\x16\x26\x85\x6f\x91\xdd\x3a\x0e\xb5\xc8\x05\x82\xc6\x7e\xc2\x87\x05\x3a\x0c\xcd\x31\x94\xf8\xec\x38\x70\x05\xd7\x45\x5a\x1b\xfb\x39\x4e\x91\x23\xf3\x80\x3e\xb0\x42\x29\xae\x32\xbe\xd0\xad\xe9\xac\x18\xd2\x40\x81\x9d\xc4\x02\xff\x09\x00\x00\xff\xff\x7a\xbe\x12\xfc\xb7\x10\x00\x00") + +func runtimeHelpHelpMdBytes() ([]byte, error) { + return bindataRead( + _runtimeHelpHelpMd, + "runtime/help/help.md", + ) +} + +func runtimeHelpHelpMd() (*asset, error) { + bytes, err := runtimeHelpHelpMdBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "runtime/help/help.md", size: 4279, mode: os.FileMode(420), modTime: time.Unix(1461501470, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -250,7 +271,7 @@ func runtimeSyntaxDockerfileMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/Dockerfile.micro", size: 841, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/Dockerfile.micro", size: 841, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -270,7 +291,7 @@ func runtimeSyntaxLicense() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/LICENSE", size: 723, mode: os.FileMode(420), modTime: time.Unix(1460170621, 0)} + info := bindataFileInfo{name: "runtime/syntax/LICENSE", size: 723, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -290,7 +311,7 @@ func runtimeSyntaxReadmeMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/README.md", size: 1357, mode: os.FileMode(420), modTime: time.Unix(1461002675, 0)} + info := bindataFileInfo{name: "runtime/syntax/README.md", size: 1357, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -310,7 +331,7 @@ func runtimeSyntaxApacheconfMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/apacheconf.micro", size: 6276, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/apacheconf.micro", size: 6276, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -330,7 +351,7 @@ func runtimeSyntaxArduinoMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/arduino.micro", size: 3654, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/arduino.micro", size: 3654, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -350,7 +371,7 @@ func runtimeSyntaxAsciidocMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/asciidoc.micro", size: 984, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/asciidoc.micro", size: 984, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -370,7 +391,7 @@ func runtimeSyntaxAsmMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/asm.micro", size: 780, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/asm.micro", size: 780, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -390,7 +411,7 @@ func runtimeSyntaxAwkMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/awk.micro", size: 1213, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/awk.micro", size: 1213, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -410,7 +431,7 @@ func runtimeSyntaxCMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/c.micro", size: 1613, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/c.micro", size: 1613, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -430,7 +451,7 @@ func runtimeSyntaxCmakeMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/cmake.micro", size: 917, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/cmake.micro", size: 917, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -450,7 +471,7 @@ func runtimeSyntaxCoffeescriptMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/coffeescript.micro", size: 719, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/coffeescript.micro", size: 719, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -470,7 +491,7 @@ func runtimeSyntaxColortestMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/colortest.micro", size: 415, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/colortest.micro", size: 415, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -490,7 +511,7 @@ func runtimeSyntaxConfMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/conf.micro", size: 219, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/conf.micro", size: 219, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -510,7 +531,7 @@ func runtimeSyntaxConkyMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/conky.micro", size: 6330, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/conky.micro", size: 6330, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -530,7 +551,7 @@ func runtimeSyntaxCsharpMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/csharp.micro", size: 1437, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/csharp.micro", size: 1437, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -550,7 +571,7 @@ func runtimeSyntaxCssMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/css.micro", size: 335, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/css.micro", size: 335, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -570,7 +591,7 @@ func runtimeSyntaxCythonMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/cython.micro", size: 998, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/cython.micro", size: 998, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -590,7 +611,7 @@ func runtimeSyntaxDMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/d.micro", size: 3620, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/d.micro", size: 3620, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -610,7 +631,7 @@ func runtimeSyntaxDotMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/dot.micro", size: 729, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/dot.micro", size: 729, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -630,7 +651,7 @@ func runtimeSyntaxErbMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/erb.micro", size: 1357, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/erb.micro", size: 1357, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -650,7 +671,7 @@ func runtimeSyntaxFishMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/fish.micro", size: 911, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/fish.micro", size: 911, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -670,7 +691,7 @@ func runtimeSyntaxFortranMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/fortran.micro", size: 2302, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/fortran.micro", size: 2302, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -690,7 +711,7 @@ func runtimeSyntaxGentooEbuildMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/gentoo-ebuild.micro", size: 1950, mode: os.FileMode(420), modTime: time.Unix(1461004583, 0)} + info := bindataFileInfo{name: "runtime/syntax/gentoo-ebuild.micro", size: 1950, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -710,7 +731,7 @@ func runtimeSyntaxGentooEtcPortageMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/gentoo-etc-portage.micro", size: 623, mode: os.FileMode(420), modTime: time.Unix(1461004583, 0)} + info := bindataFileInfo{name: "runtime/syntax/gentoo-etc-portage.micro", size: 623, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -730,7 +751,7 @@ func runtimeSyntaxGitCommitMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/git-commit.micro", size: 1129, mode: os.FileMode(420), modTime: time.Unix(1461004537, 0)} + info := bindataFileInfo{name: "runtime/syntax/git-commit.micro", size: 1129, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -750,7 +771,7 @@ func runtimeSyntaxGitConfigMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/git-config.micro", size: 254, mode: os.FileMode(420), modTime: time.Unix(1461004542, 0)} + info := bindataFileInfo{name: "runtime/syntax/git-config.micro", size: 254, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -770,7 +791,7 @@ func runtimeSyntaxGitRebaseTodoMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/git-rebase-todo.micro", size: 750, mode: os.FileMode(420), modTime: time.Unix(1461004508, 0)} + info := bindataFileInfo{name: "runtime/syntax/git-rebase-todo.micro", size: 750, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -790,7 +811,7 @@ func runtimeSyntaxGlslMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/glsl.micro", size: 882, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/glsl.micro", size: 882, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -810,7 +831,7 @@ func runtimeSyntaxGoMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/go.micro", size: 922, mode: os.FileMode(420), modTime: time.Unix(1459212836, 0)} + info := bindataFileInfo{name: "runtime/syntax/go.micro", size: 922, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -830,7 +851,7 @@ func runtimeSyntaxGroffMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/groff.micro", size: 723, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/groff.micro", size: 723, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -850,7 +871,7 @@ func runtimeSyntaxHamlMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/haml.micro", size: 585, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/haml.micro", size: 585, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -870,7 +891,7 @@ func runtimeSyntaxHaskellMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/haskell.micro", size: 1089, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/haskell.micro", size: 1089, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -890,7 +911,7 @@ func runtimeSyntaxHtmlMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/html.micro", size: 324, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/html.micro", size: 324, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -910,7 +931,7 @@ func runtimeSyntaxIniMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/ini.micro", size: 401, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/ini.micro", size: 401, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -930,7 +951,7 @@ func runtimeSyntaxInputrcMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/inputrc.micro", size: 285, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/inputrc.micro", size: 285, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -950,7 +971,7 @@ func runtimeSyntaxJavaMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/java.micro", size: 596, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/java.micro", size: 596, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -970,7 +991,7 @@ func runtimeSyntaxJavascriptMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/javascript.micro", size: 1025, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/javascript.micro", size: 1025, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -990,7 +1011,7 @@ func runtimeSyntaxJsonMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/json.micro", size: 402, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/json.micro", size: 402, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1010,7 +1031,7 @@ func runtimeSyntaxKeymapMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/keymap.micro", size: 318, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/keymap.micro", size: 318, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1030,7 +1051,7 @@ func runtimeSyntaxKickstartMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/kickstart.micro", size: 607, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/kickstart.micro", size: 607, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1050,7 +1071,7 @@ func runtimeSyntaxLedgerMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/ledger.micro", size: 432, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/ledger.micro", size: 432, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1070,7 +1091,7 @@ func runtimeSyntaxLispMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/lisp.micro", size: 380, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/lisp.micro", size: 380, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1090,7 +1111,7 @@ func runtimeSyntaxLuaMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/lua.micro", size: 2923, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/lua.micro", size: 2923, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1110,7 +1131,7 @@ func runtimeSyntaxMakefileMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/makefile.micro", size: 999, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/makefile.micro", size: 999, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1130,7 +1151,7 @@ func runtimeSyntaxManMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/man.micro", size: 264, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/man.micro", size: 264, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1150,7 +1171,7 @@ func runtimeSyntaxMarkdownMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/markdown.micro", size: 893, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/markdown.micro", size: 893, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1170,7 +1191,7 @@ func runtimeSyntaxMpdconfMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/mpdconf.micro", size: 389, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/mpdconf.micro", size: 389, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1190,7 +1211,7 @@ func runtimeSyntaxNanorcMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/nanorc.micro", size: 1042, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/nanorc.micro", size: 1042, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1210,7 +1231,7 @@ func runtimeSyntaxNginxMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/nginx.micro", size: 4846, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/nginx.micro", size: 4846, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1230,7 +1251,7 @@ func runtimeSyntaxOcamlMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/ocaml.micro", size: 767, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/ocaml.micro", size: 767, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1250,7 +1271,7 @@ func runtimeSyntaxPatchMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/patch.micro", size: 242, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/patch.micro", size: 242, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1270,7 +1291,7 @@ func runtimeSyntaxPegMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/peg.micro", size: 395, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/peg.micro", size: 395, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1290,7 +1311,7 @@ func runtimeSyntaxPerlMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/perl.micro", size: 1440, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/perl.micro", size: 1440, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1310,7 +1331,7 @@ func runtimeSyntaxPerl6Micro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/perl6.micro", size: 1649, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/perl6.micro", size: 1649, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1330,7 +1351,7 @@ func runtimeSyntaxPhpMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/php.micro", size: 1431, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/php.micro", size: 1431, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1350,7 +1371,7 @@ func runtimeSyntaxPkgConfigMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/pkg-config.micro", size: 245, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/pkg-config.micro", size: 245, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1370,7 +1391,7 @@ func runtimeSyntaxPkgbuildMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/pkgbuild.micro", size: 1424, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/pkgbuild.micro", size: 1424, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1390,7 +1411,7 @@ func runtimeSyntaxPoMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/po.micro", size: 221, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/po.micro", size: 221, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1410,7 +1431,7 @@ func runtimeSyntaxPovMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/pov.micro", size: 682, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/pov.micro", size: 682, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1430,7 +1451,7 @@ func runtimeSyntaxPrivoxyActionMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/privoxy-action.micro", size: 1545, mode: os.FileMode(420), modTime: time.Unix(1461004444, 0)} + info := bindataFileInfo{name: "runtime/syntax/privoxy-action.micro", size: 1545, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1450,7 +1471,7 @@ func runtimeSyntaxPrivoxyConfigMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/privoxy-config.micro", size: 804, mode: os.FileMode(420), modTime: time.Unix(1461004455, 0)} + info := bindataFileInfo{name: "runtime/syntax/privoxy-config.micro", size: 804, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1470,7 +1491,7 @@ func runtimeSyntaxPrivoxyFilterMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/privoxy-filter.micro", size: 390, mode: os.FileMode(420), modTime: time.Unix(1461004426, 0)} + info := bindataFileInfo{name: "runtime/syntax/privoxy-filter.micro", size: 390, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1490,7 +1511,7 @@ func runtimeSyntaxPuppetMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/puppet.micro", size: 1969, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/puppet.micro", size: 1969, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1510,7 +1531,7 @@ func runtimeSyntaxPythonMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/python.micro", size: 3037, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/python.micro", size: 3037, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1530,7 +1551,7 @@ func runtimeSyntaxRestMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/reST.micro", size: 470, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/reST.micro", size: 470, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1550,7 +1571,7 @@ func runtimeSyntaxRpmspecMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/rpmspec.micro", size: 1626, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/rpmspec.micro", size: 1626, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1570,7 +1591,7 @@ func runtimeSyntaxRubyMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/ruby.micro", size: 1531, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/ruby.micro", size: 1531, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1590,7 +1611,7 @@ func runtimeSyntaxRustMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/rust.micro", size: 1077, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/rust.micro", size: 1077, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1610,7 +1631,7 @@ func runtimeSyntaxScalaMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/scala.micro", size: 670, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/scala.micro", size: 670, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1630,7 +1651,7 @@ func runtimeSyntaxSedMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/sed.micro", size: 240, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/sed.micro", size: 240, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1650,7 +1671,7 @@ func runtimeSyntaxShMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/sh.micro", size: 851, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/sh.micro", size: 851, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1670,7 +1691,7 @@ func runtimeSyntaxSlsMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/sls.micro", size: 570, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/sls.micro", size: 570, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1690,7 +1711,7 @@ func runtimeSyntaxSqlMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/sql.micro", size: 1845, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/sql.micro", size: 1845, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1710,7 +1731,7 @@ func runtimeSyntaxSwiftMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/swift.micro", size: 1028, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/swift.micro", size: 1028, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1730,7 +1751,7 @@ func runtimeSyntaxSystemdMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/systemd.micro", size: 5103, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/systemd.micro", size: 5103, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1750,7 +1771,7 @@ func runtimeSyntaxTclMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/tcl.micro", size: 2273, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/tcl.micro", size: 2273, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1770,7 +1791,7 @@ func runtimeSyntaxTexMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/tex.micro", size: 246, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/tex.micro", size: 246, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1790,7 +1811,7 @@ func runtimeSyntaxValaMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/vala.micro", size: 789, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/vala.micro", size: 789, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1810,7 +1831,7 @@ func runtimeSyntaxViMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/vi.micro", size: 355, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/vi.micro", size: 355, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1830,7 +1851,7 @@ func runtimeSyntaxXmlMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/xml.micro", size: 281, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/xml.micro", size: 281, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1850,7 +1871,7 @@ func runtimeSyntaxXresourcesMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/xresources.micro", size: 297, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/xresources.micro", size: 297, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1870,7 +1891,7 @@ func runtimeSyntaxYamlMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/yaml.micro", size: 542, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/yaml.micro", size: 542, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1890,7 +1911,7 @@ func runtimeSyntaxYumMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/yum.micro", size: 276, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/yum.micro", size: 276, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1910,7 +1931,7 @@ func runtimeSyntaxZshMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/zsh.micro", size: 1957, mode: os.FileMode(420), modTime: time.Unix(1459091032, 0)} + info := bindataFileInfo{name: "runtime/syntax/zsh.micro", size: 1957, mode: os.FileMode(420), modTime: time.Unix(1461430986, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1971,6 +1992,7 @@ var _bindata = map[string]func() (*asset, error){ "runtime/colorschemes/default.micro": runtimeColorschemesDefaultMicro, "runtime/colorschemes/solarized-tc.micro": runtimeColorschemesSolarizedTcMicro, "runtime/colorschemes/solarized.micro": runtimeColorschemesSolarizedMicro, + "runtime/help/help.md": runtimeHelpHelpMd, "runtime/syntax/Dockerfile.micro": runtimeSyntaxDockerfileMicro, "runtime/syntax/LICENSE": runtimeSyntaxLicense, "runtime/syntax/README.md": runtimeSyntaxReadmeMd, @@ -2104,6 +2126,9 @@ var _bintree = &bintree{nil, map[string]*bintree{ "solarized-tc.micro": &bintree{runtimeColorschemesSolarizedTcMicro, map[string]*bintree{}}, "solarized.micro": &bintree{runtimeColorschemesSolarizedMicro, map[string]*bintree{}}, }}, + "help": &bintree{nil, map[string]*bintree{ + "help.md": &bintree{runtimeHelpHelpMd, map[string]*bintree{}}, + }}, "syntax": &bintree{nil, map[string]*bintree{ "Dockerfile.micro": &bintree{runtimeSyntaxDockerfileMicro, map[string]*bintree{}}, "LICENSE": &bintree{runtimeSyntaxLicense, map[string]*bintree{}}, diff --git a/runtime/help/help.md b/runtime/help/help.md new file mode 100644 index 00000000..84265a48 --- /dev/null +++ b/runtime/help/help.md @@ -0,0 +1,138 @@ +# Micro help text + +Micro is a terminal-based text editor that aims to be easy to use and intuitive, +while also taking advantage of the full capabilities of modern terminals. + +### Usage + +Once you have built the editor, simply start it by running `micro path/to/file.txt` or simply `micro` to open an empty buffer. + +Micro also supports creating buffers from stdin: + +``` +$ ifconfig | micro +``` + +You can move the cursor around with the arrow keys and mouse. + +### Keybindings + +These are the default keybindings, along with their actions. + +#### Editor bindings + +* Ctrl-q: Quit +* Ctrl-e: Execute a command +* Ctrl-g: Toggle help text +* Ctrl-b: Run a shell command + +#### Buffer bindings + +* Ctrl-s: Save +* Ctrl-o: Open file +* Ctrl-z: Undo +* Ctrl-y: Redo +* Ctrl-f: Find +* Ctrl-n: Find next +* Ctrl-p: Find previous +* Ctrl-a: Select all +* Ctrl-c: Copy +* Ctrl-x: Cut +* Ctrl-k: Cut line +* Ctrl-v: Paste +* Ctrl-u: Half page up +* Ctrl-d: Half page down +* PageUp: Page up +* PageDown: Page down +* Home: Go to beginning of file +* End: Go to end of file +* Ctrl-r: Toggle line numbers + +The buffer bindings may be rebound using the `~/.config/micro/bindings.json` file. Each key is bound to an action. + +For example, to bind `Ctrl-y` to undo and `Ctrl-z` to redo, you could put the following in the `bindings.json` file. + +```json +{ + "CtrlY": "Undo", + "CtrlZ": "Redo" +} +``` + +### Possible commands + +You can execute an editor command by pressing `Ctrl-e` followed by the command. +Here are the possible commands that you can use. + +* `quit`: Quits micro. +* `save`: Saves the current buffer. + +* `replace "search" "value"`: This will replace `search` with `value`. + + Note that `search` must be a valid regex. If one of the arguments + does not have any spaces in it, you may omit the quotes. + +* `set option value`: sets the option to value. Please see the next section for a list of options you can set. + +* `run sh-command`: runs the given shell command in the background. The command's output will be displayed +in one line when it finishes running. + +### Options + +Micro stores all of the user configuration in its configuration directory. + +Micro uses the `$XDG_CONFIG_HOME/micro` as the configuration directory. As per the XDG spec, +if `$XDG_CONFIG_HOME` is not set, `~/.config/micro` is used as the config directory. + +Here are the options that you can set: + +* `colorscheme`: loads the colorscheme stored in $(configDir)/colorschemes/`option`.micro + + default value: `default` + Note that the default colorschemes (default, solarized, and solarized-tc) are not located in configDir, + because they are embedded in the micro binary + + The colorscheme can be selected from all the files in the ~/.config/micro/colorschemes/ directory. Micro comes by default with three colorschemes: + + * default: this is the default colorscheme. + * solarized: this is the solarized colorscheme (used in the screenshot). You should have the + solarized color palette in your terminal to use it. + * solarized-tc: this is the solarized colorscheme for true color, just make sure + your terminal supports true color before using it and that the MICRO_TRUECOLOR environment + variable is set to 1 before starting micro. + + +* `tabsize`: sets the tab size to `option` + + default value: `4` + +* `syntax`: turns syntax on or off + + default value: `on` + +* `tabsToSpaces`: use spaces instead of tabs + + default value: `off` + +* `autoindent`: when creating a new line use the same indentation as the previous line + + default value: `on` + +* `ruler`: display line numbers + + default value: `on` + +* `gofmt`: Run `gofmt` whenever the file is saved (this only applies to `.go` files) + + default value: `off` + +* `goimports`: run `goimports` whenever the file is saved (this only applies to `.go` files) + + default value: `off` + +Any option you set in the editor will be saved to the file ~/.config/micro/settings.json so, +in effect, your configuration file will be created for you. If you'd like to take your configuration +with you to another machine, simply copy the settings.json to the other machine. + +In the future, the `gofmt` and `goimports` will be refactored using a plugin system. However, +currently they just make it easier to program micro in micro.