3 Micro is a terminal-based text editor that aims to be easy to use and intuitive,
4 while also taking advantage of the full capabilities of modern terminals.
8 Once you have built the editor, simply start it by running
9 `micro path/to/file.txt` or simply `micro` to open an empty buffer.
11 Micro also supports creating buffers from stdin:
17 You can move the cursor around with the arrow keys and mouse.
21 Here are the default keybindings in json form which is also how
22 you can rebind them to your liking.
28 "Right": "CursorRight",
30 "ShiftUp": "SelectUp",
31 "ShiftDown": "SelectDown",
32 "ShiftLeft": "SelectLeft",
33 "ShiftRight": "SelectRight",
34 "AltLeft": "WordLeft",
35 "AltRight": "WordRight",
36 "AltShiftRight": "SelectWordRight",
37 "AltShiftLeft": "SelectWordLeft",
38 "CtrlLeft": "StartOfLine",
39 "CtrlRight": "EndOfLine",
40 "CtrlShiftLeft": "SelectToStartOfLine",
41 "CtrlShiftRight": "SelectToEndOfLine",
42 "CtrlUp": "CursorStart",
43 "CtrlDown": "CursorEnd",
44 "CtrlShiftUp": "SelectToStart",
45 "CtrlShiftDown": "SelectToEnd",
46 "Enter": "InsertNewline",
47 "Space": "InsertSpace",
48 "Backspace": "Backspace",
49 "Backspace2": "Backspace",
50 "Alt-Backspace": "DeleteWordLeft",
51 "Alt-Backspace2": "DeleteWordLeft",
52 "Tab": "IndentSelection,InsertTab",
53 "Backtab": "OutdentSelection",
58 "CtrlP": "FindPrevious",
64 "CtrlD": "DuplicateLine",
68 "CtrlRightSq": "PreviousTab",
69 "CtrlBackslash": "NextTab",
70 "Home": "StartOfLine",
72 "PageUp": "CursorPageUp",
73 "PageDown": "CursorPageDown",
74 "CtrlG": "ToggleHelp",
75 "CtrlR": "ToggleRuler",
81 "CtrlE": "CommandMode",
84 // Emacs-style keybindings
87 "Alt-a": "StartOfLine",
90 "Alt-n": "CursorDown",
94 You can use the alt keys + arrows to move word by word.
95 Ctrl left and right move the cursor to the start and end of the line, and
96 ctrl up and down move the cursor the start and end of the buffer.
98 You can hold shift with all of these movement actions to select while moving.
100 The bindings may be rebound using the `~/.config/micro/bindings.json`
101 file. Each key is bound to an action.
103 For example, to bind `Ctrl-y` to undo and `Ctrl-z` to redo, you could put the
104 following in the `bindings.json` file.
113 ### Possible commands
115 You can execute an editor command by pressing `Ctrl-e` followed by the command.
116 Here are the possible commands that you can use.
118 * `quit`: Quits micro.
120 * `save`: Saves the current buffer.
122 * `replace "search" "value" flags`: This will replace `search` with `value`.
123 The `flags` are optional.
124 At this point, there is only one flag: `c`, which enables `check` mode
125 which asks if you'd like to perform the replacement each time
127 Note that `search` must be a valid regex. If one of the arguments
128 does not have any spaces in it, you may omit the quotes.
130 * `set option value`: sets the option to value. Please see the next section for
131 a list of options you can set.
133 * `run sh-command`: runs the given shell command in the background. The
134 command's output will be displayed in one line when it finishes running.
136 * `bind key action`: creates a keybinding from key to action. See the sections on
137 keybindings above for more info about what keys and actions are available.
139 * `vsplit filename`: opens a vertical split with `filename`. If no filename is
140 provided, a vertical split is opened with an empty buffer
142 * `hsplit filename`: same as `vsplit` but opens a horizontal split instead of
145 * `tab filename`: opens the given file in a new tab.
149 Micro stores all of the user configuration in its configuration directory.
151 Micro uses the `$XDG_CONFIG_HOME/micro` as the configuration directory. As per
152 the XDG spec, if `$XDG_CONFIG_HOME` is not set, `~/.config/micro` is used as
153 the config directory.
155 Here are the options that you can set:
157 * `colorscheme`: loads the colorscheme stored in
158 $(configDir)/colorschemes/`option`.micro
160 default value: `default`
161 Note that the default colorschemes (default, solarized, and solarized-tc)
162 are not located in configDir, because they are embedded in the micro binary
164 The colorscheme can be selected from all the files in the
165 ~/.config/micro/colorschemes/ directory. Micro comes by default with three
168 * default: this is the default colorscheme.
170 * solarized: this is the solarized colorscheme (used in the screenshot).
171 You should have the solarized color palette in your terminal to use it.
173 * solarized-tc: this is the solarized colorscheme for true color, just
174 make sure your terminal supports true color before using it and that the
175 MICRO_TRUECOLOR environment variable is set to 1 before starting micro.
177 * monokai-tc: this is the monokai colorscheme. It requires true color to
178 look perfect, but the 256 color approximation looks good as well.
180 * atom-dark-tc: this colorscheme is based off of Atom's "dark" colorscheme.
181 It requires true color to look good.
184 * `tabsize`: sets the tab size to `option`
188 * `indentchar`: sets the indentation character
192 * `ignorecase`: perform case-insensitive searches
196 * `syntax`: turns syntax on or off
200 * `tabstospaces`: use spaces instead of tabs
204 * `autoindent`: when creating a new line use the same indentation as the
209 * `cursorline`: highlight the line that the cursor is on in a different color
210 (the color is defined by the colorscheme you are using)
214 * `ruler`: display line numbers
218 * `statusline`: display the status line at the bottom of the screen
222 * `savecursor`: remember where the cursor was last time the file was opened and
223 put it there when you open the file again
227 * `saveundo`: when this option is on, undo is saved even after you close a file
228 so if you close and reopen a file, you can keep undoing
232 * `scrollmargin`: amount of lines you would like to see above and below the cursor
236 * `scrollspeed`: amount of lines to scroll for one scroll event
242 Default plugin options:
244 * `linter`: lint languages on save (supported languages are C, D, Go, Java,
245 Javascript, Lua). Provided by the `linter` plugin.
249 * `autoclose`: Automatically close `{}` `()` `[]` `""` `''`. Provided by the autoclose plugin
253 * `goimports`: Run goimports on save. Provided by the `go` plugin.
257 * `gofmt`: Run gofmt on save. Provided by the `go` plugin.
261 Any option you set in the editor will be saved to the file
262 ~/.config/micro/settings.json so, in effect, your configuration file will be
263 created for you. If you'd like to take your configuration with you to another
264 machine, simply copy the settings.json to the other machine.