2016-04-24 15:31:42 +03:00
|
|
|
# Micro help text
|
|
|
|
|
2016-04-24 15:38:38 +03:00
|
|
|
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
|
|
|
|
|
2016-04-30 19:43:40 +03:00
|
|
|
Once you have built the editor, simply start it by running
|
|
|
|
`micro path/to/file.txt` or simply `micro` to open an empty buffer.
|
2016-04-24 15:38:38 +03:00
|
|
|
|
|
|
|
Micro also supports creating buffers from stdin:
|
|
|
|
|
|
|
|
```
|
|
|
|
$ ifconfig | micro
|
|
|
|
```
|
|
|
|
|
|
|
|
You can move the cursor around with the arrow keys and mouse.
|
|
|
|
|
2016-04-24 15:31:42 +03:00
|
|
|
### Keybindings
|
|
|
|
|
2016-06-01 02:45:19 +03:00
|
|
|
Here are the default keybindings in json form which is also how
|
|
|
|
you can rebind them to your liking.
|
2016-04-30 18:33:04 +03:00
|
|
|
|
|
|
|
```json
|
|
|
|
{
|
2016-06-23 15:39:26 +03:00
|
|
|
"Up": "CursorUp",
|
|
|
|
"Down": "CursorDown",
|
|
|
|
"Right": "CursorRight",
|
|
|
|
"Left": "CursorLeft",
|
|
|
|
"ShiftUp": "SelectUp",
|
|
|
|
"ShiftDown": "SelectDown",
|
|
|
|
"ShiftLeft": "SelectLeft",
|
|
|
|
"ShiftRight": "SelectRight",
|
|
|
|
"AltLeft": "WordLeft",
|
|
|
|
"AltRight": "WordRight",
|
|
|
|
"AltShiftRight": "SelectWordRight",
|
|
|
|
"AltShiftLeft": "SelectWordLeft",
|
|
|
|
"CtrlLeft": "StartOfLine",
|
|
|
|
"CtrlRight": "EndOfLine",
|
|
|
|
"CtrlShiftLeft": "SelectToStartOfLine",
|
|
|
|
"CtrlShiftRight": "SelectToEndOfLine",
|
|
|
|
"CtrlUp": "CursorStart",
|
|
|
|
"CtrlDown": "CursorEnd",
|
|
|
|
"CtrlShiftUp": "SelectToStart",
|
|
|
|
"CtrlShiftDown": "SelectToEnd",
|
2016-08-16 17:55:04 +03:00
|
|
|
"Enter": "InsertNewline",
|
2016-06-23 15:39:26 +03:00
|
|
|
"Space": "InsertSpace",
|
|
|
|
"Backspace": "Backspace",
|
|
|
|
"Backspace2": "Backspace",
|
|
|
|
"Alt-Backspace": "DeleteWordLeft",
|
|
|
|
"Alt-Backspace2": "DeleteWordLeft",
|
2016-08-16 17:55:04 +03:00
|
|
|
"Tab": "IndentSelection,InsertTab",
|
|
|
|
"Backtab": "OutdentSelection",
|
2016-06-23 15:39:26 +03:00
|
|
|
"CtrlO": "OpenFile",
|
|
|
|
"CtrlS": "Save",
|
|
|
|
"CtrlF": "Find",
|
|
|
|
"CtrlN": "FindNext",
|
|
|
|
"CtrlP": "FindPrevious",
|
|
|
|
"CtrlZ": "Undo",
|
|
|
|
"CtrlY": "Redo",
|
|
|
|
"CtrlC": "Copy",
|
|
|
|
"CtrlX": "Cut",
|
|
|
|
"CtrlK": "CutLine",
|
|
|
|
"CtrlD": "DuplicateLine",
|
|
|
|
"CtrlV": "Paste",
|
|
|
|
"CtrlA": "SelectAll",
|
2016-08-16 17:55:04 +03:00
|
|
|
"CtrlT": "AddTab",
|
2016-06-23 15:39:26 +03:00
|
|
|
"CtrlRightSq": "PreviousTab",
|
|
|
|
"CtrlBackslash": "NextTab",
|
2016-08-16 17:55:04 +03:00
|
|
|
"Home": "StartOfLine",
|
|
|
|
"End": "EndOfLine",
|
2016-06-23 15:39:26 +03:00
|
|
|
"PageUp": "CursorPageUp",
|
|
|
|
"PageDown": "CursorPageDown",
|
|
|
|
"CtrlG": "ToggleHelp",
|
|
|
|
"CtrlR": "ToggleRuler",
|
|
|
|
"CtrlL": "JumpLine",
|
|
|
|
"Delete": "Delete",
|
|
|
|
"Esc": "ClearStatus",
|
|
|
|
"CtrlB": "ShellMode",
|
|
|
|
"CtrlQ": "Quit",
|
|
|
|
"CtrlE": "CommandMode",
|
2016-07-09 18:40:46 +03:00
|
|
|
"CtrlW": "NextSplit",
|
2016-08-16 17:55:04 +03:00
|
|
|
|
2016-06-23 15:39:26 +03:00
|
|
|
// Emacs-style keybindings
|
|
|
|
"Alt-f": "WordRight",
|
|
|
|
"Alt-b": "WordLeft",
|
|
|
|
"Alt-a": "StartOfLine",
|
|
|
|
"Alt-e": "EndOfLine",
|
|
|
|
"Alt-p": "CursorUp",
|
2016-08-16 17:55:04 +03:00
|
|
|
"Alt-n": "CursorDown",
|
2016-04-30 18:33:04 +03:00
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2016-06-01 02:45:19 +03:00
|
|
|
You can use the alt keys + arrows to move word by word.
|
|
|
|
Ctrl left and right move the cursor to the start and end of the line, and
|
|
|
|
ctrl up and down move the cursor the start and end of the buffer.
|
|
|
|
|
|
|
|
You can hold shift with all of these movement actions to select while moving.
|
|
|
|
|
|
|
|
The 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"
|
|
|
|
}
|
|
|
|
```
|
2016-04-30 18:33:04 +03:00
|
|
|
|
2016-04-24 15:31:42 +03:00
|
|
|
### 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.
|
2016-07-09 18:40:46 +03:00
|
|
|
|
2016-04-24 15:31:42 +03:00
|
|
|
* `save`: Saves the current buffer.
|
|
|
|
|
2016-04-30 19:43:40 +03:00
|
|
|
* `replace "search" "value" flags`: This will replace `search` with `value`.
|
|
|
|
The `flags` are optional.
|
|
|
|
At this point, there is only one flag: `c`, which enables `check` mode
|
|
|
|
which asks if you'd like to perform the replacement each time
|
2016-04-24 15:38:38 +03:00
|
|
|
|
2016-04-25 00:08:40 +03:00
|
|
|
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.
|
2016-04-24 15:31:42 +03:00
|
|
|
|
2016-04-30 19:43:40 +03:00
|
|
|
* `set option value`: sets the option to value. Please see the next section for
|
|
|
|
a list of options you can set.
|
2016-04-24 15:31:42 +03:00
|
|
|
|
2016-04-30 19:43:40 +03:00
|
|
|
* `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.
|
2016-04-24 15:31:42 +03:00
|
|
|
|
2016-05-30 20:38:50 +03:00
|
|
|
* `bind key action`: creates a keybinding from key to action. See the sections on
|
|
|
|
keybindings above for more info about what keys and actions are available.
|
|
|
|
|
2016-07-09 18:40:46 +03:00
|
|
|
* `vsplit filename`: opens a vertical split with `filename`. If no filename is
|
|
|
|
provided, a vertical split is opened with an empty buffer
|
|
|
|
|
|
|
|
* `hsplit filename`: same as `vsplit` but opens a horizontal split instead of
|
|
|
|
a vertical split
|
|
|
|
|
2016-07-24 23:29:03 +03:00
|
|
|
* `tab filename`: opens the given file in a new tab.
|
|
|
|
|
2016-04-24 15:31:42 +03:00
|
|
|
### Options
|
|
|
|
|
|
|
|
Micro stores all of the user configuration in its configuration directory.
|
|
|
|
|
2016-04-30 19:43:40 +03:00
|
|
|
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.
|
2016-04-24 15:31:42 +03:00
|
|
|
|
|
|
|
Here are the options that you can set:
|
|
|
|
|
2016-04-30 19:43:40 +03:00
|
|
|
* `colorscheme`: loads the colorscheme stored in
|
|
|
|
$(configDir)/colorschemes/`option`.micro
|
2016-04-24 15:38:38 +03:00
|
|
|
|
2016-04-24 15:31:42 +03:00
|
|
|
default value: `default`
|
2016-04-30 19:43:40 +03:00
|
|
|
Note that the default colorschemes (default, solarized, and solarized-tc)
|
2016-05-20 20:44:16 +03:00
|
|
|
are not located in configDir, because they are embedded in the micro binary
|
2016-04-24 15:31:42 +03:00
|
|
|
|
2016-05-20 20:44:16 +03:00
|
|
|
The colorscheme can be selected from all the files in the
|
|
|
|
~/.config/micro/colorschemes/ directory. Micro comes by default with three
|
|
|
|
colorschemes:
|
2016-04-24 15:38:38 +03:00
|
|
|
|
2016-05-20 20:44:16 +03:00
|
|
|
* default: this is the default colorscheme.
|
2016-06-23 15:39:26 +03:00
|
|
|
|
2016-05-20 20:44:16 +03:00
|
|
|
* solarized: this is the solarized colorscheme (used in the screenshot).
|
|
|
|
You should have the solarized color palette in your terminal to use it.
|
2016-06-23 15:39:26 +03:00
|
|
|
|
2016-05-20 20:44:16 +03:00
|
|
|
* 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.
|
2016-04-24 15:38:38 +03:00
|
|
|
|
2016-06-23 15:39:26 +03:00
|
|
|
* monokai-tc: this is the monokai colorscheme. It requires true color to
|
|
|
|
look perfect, but the 256 color approximation looks good as well.
|
|
|
|
|
|
|
|
* atom-dark-tc: this colorscheme is based off of Atom's "dark" colorscheme.
|
|
|
|
It requires true color to look good.
|
|
|
|
|
2016-04-24 15:38:38 +03:00
|
|
|
|
|
|
|
* `tabsize`: sets the tab size to `option`
|
|
|
|
|
2016-04-24 15:31:42 +03:00
|
|
|
default value: `4`
|
|
|
|
|
2016-05-17 18:21:47 +03:00
|
|
|
* `indentchar`: sets the indentation character
|
2016-05-17 18:17:18 +03:00
|
|
|
|
2016-05-17 19:09:49 +03:00
|
|
|
default value: ` `
|
2016-05-17 18:17:18 +03:00
|
|
|
|
2016-05-18 19:44:32 +03:00
|
|
|
* `ignorecase`: perform case-insensitive searches
|
|
|
|
|
|
|
|
default value: `off`
|
|
|
|
|
2016-04-24 15:38:38 +03:00
|
|
|
* `syntax`: turns syntax on or off
|
|
|
|
|
2016-04-24 15:31:42 +03:00
|
|
|
default value: `on`
|
|
|
|
|
2016-05-22 22:47:28 +03:00
|
|
|
* `tabstospaces`: use spaces instead of tabs
|
2016-04-24 15:38:38 +03:00
|
|
|
|
2016-04-24 15:31:42 +03:00
|
|
|
default value: `off`
|
|
|
|
|
2016-04-30 19:43:40 +03:00
|
|
|
* `autoindent`: when creating a new line use the same indentation as the
|
|
|
|
previous line
|
2016-04-24 15:38:38 +03:00
|
|
|
|
2016-05-20 20:44:16 +03:00
|
|
|
default value: `on`
|
2016-04-24 15:31:42 +03:00
|
|
|
|
2016-06-01 17:05:17 +03:00
|
|
|
* `cursorline`: highlight the line that the cursor is on in a different color
|
|
|
|
(the color is defined by the colorscheme you are using)
|
|
|
|
|
2016-06-23 15:39:26 +03:00
|
|
|
default value: `off`
|
2016-06-01 17:05:17 +03:00
|
|
|
|
2016-04-24 15:38:38 +03:00
|
|
|
* `ruler`: display line numbers
|
|
|
|
|
2016-05-20 20:44:16 +03:00
|
|
|
default value: `on`
|
2016-04-24 15:31:42 +03:00
|
|
|
|
2016-05-15 20:44:07 +03:00
|
|
|
* `statusline`: display the status line at the bottom of the screen
|
|
|
|
|
2016-05-20 20:44:16 +03:00
|
|
|
default value: `on`
|
|
|
|
|
2016-05-29 00:29:49 +03:00
|
|
|
* `savecursor`: remember where the cursor was last time the file was opened and
|
|
|
|
put it there when you open the file again
|
|
|
|
|
2016-06-23 15:39:26 +03:00
|
|
|
default value: `off`
|
2016-05-29 00:29:49 +03:00
|
|
|
|
2016-05-29 18:02:56 +03:00
|
|
|
* `saveundo`: when this option is on, undo is saved even after you close a file
|
|
|
|
so if you close and reopen a file, you can keep undoing
|
|
|
|
|
2016-06-23 15:39:26 +03:00
|
|
|
default value: `off`
|
2016-05-29 18:02:56 +03:00
|
|
|
|
2016-05-20 20:44:16 +03:00
|
|
|
* `scrollmargin`: amount of lines you would like to see above and below the cursor
|
2016-05-15 20:44:07 +03:00
|
|
|
|
2016-05-20 20:44:16 +03:00
|
|
|
default value: `3`
|
|
|
|
|
2016-05-28 18:32:09 +03:00
|
|
|
* `scrollspeed`: amount of lines to scroll for one scroll event
|
2016-05-17 19:15:47 +03:00
|
|
|
|
|
|
|
default value: `2`
|
|
|
|
|
2016-05-05 19:56:52 +03:00
|
|
|
---
|
|
|
|
|
|
|
|
Default plugin options:
|
|
|
|
|
|
|
|
* `linter`: lint languages on save (supported languages are C, D, Go, Java,
|
|
|
|
Javascript, Lua). Provided by the `linter` plugin.
|
|
|
|
|
2016-05-20 20:44:16 +03:00
|
|
|
default value: `on`
|
2016-05-05 19:56:52 +03:00
|
|
|
|
2016-06-22 20:54:42 +03:00
|
|
|
* `autoclose`: Automatically close `{}` `()` `[]` `""` `''`. Provided by the autoclose plugin
|
|
|
|
|
2016-06-23 15:39:26 +03:00
|
|
|
default value: `on`
|
2016-06-22 20:54:42 +03:00
|
|
|
|
2016-05-05 19:56:52 +03:00
|
|
|
* `goimports`: Run goimports on save. Provided by the `go` plugin.
|
|
|
|
|
2016-05-20 20:44:16 +03:00
|
|
|
default value: `off`
|
2016-05-05 19:56:52 +03:00
|
|
|
|
|
|
|
* `gofmt`: Run gofmt on save. Provided by the `go` plugin.
|
|
|
|
|
2016-05-20 20:44:16 +03:00
|
|
|
default value: `on`
|
2016-05-05 19:56:52 +03:00
|
|
|
|
2016-04-30 19:43:40 +03:00
|
|
|
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.
|