]> git.lizzy.rs Git - micro.git/blob - runtime/help/help.md
Add new colorschemes to runtime
[micro.git] / runtime / help / help.md
1 # Micro help text
2
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.
5
6 ### Usage
7
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.
10
11 Micro also supports creating buffers from stdin:
12
13 ```
14 $ ifconfig | micro
15 ```
16
17 You can move the cursor around with the arrow keys and mouse.
18
19 ### Keybindings
20
21 Here are the default keybindings in json form which is also how
22 you can rebind them to your liking.
23
24 ```json
25 {
26         "Up":             "CursorUp",
27         "Down":           "CursorDown",
28         "Right":          "CursorRight",
29         "Left":           "CursorLeft",
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":          "InsertEnter",
47         "Space":          "InsertSpace",
48         "Backspace":      "Backspace",
49         "Backspace2":     "Backspace",
50         "Alt-Backspace":  "DeleteWordLeft",
51         "Alt-Backspace2": "DeleteWordLeft",
52         "Tab":            "InsertTab",
53         "CtrlO":          "OpenFile",
54         "CtrlS":          "Save",
55         "CtrlF":          "Find",
56         "CtrlN":          "FindNext",
57         "CtrlP":          "FindPrevious",
58         "CtrlZ":          "Undo",
59         "CtrlY":          "Redo",
60         "CtrlC":          "Copy",
61         "CtrlX":          "Cut",
62         "CtrlK":          "CutLine",
63         "CtrlD":          "DuplicateLine",
64         "CtrlV":          "Paste",
65         "CtrlA":          "SelectAll",
66         "CtrlT":          "AddTab"
67         "CtrlRightSq":    "PreviousTab",
68         "CtrlBackslash":  "NextTab",
69         "Home":           "Start",
70         "End":            "End",
71         "PageUp":         "CursorPageUp",
72         "PageDown":       "CursorPageDown",
73         "CtrlG":          "ToggleHelp",
74         "CtrlR":          "ToggleRuler",
75         "CtrlL":          "JumpLine",
76         "Delete":         "Delete",
77         "Esc":            "ClearStatus",
78         "CtrlB":          "ShellMode",
79         "CtrlQ":          "Quit",
80         "CtrlE":          "CommandMode",
81         
82         // Emacs-style keybindings
83         "Alt-f": "WordRight",
84         "Alt-b": "WordLeft",
85         "Alt-a": "StartOfLine",
86         "Alt-e": "EndOfLine",
87         "Alt-p": "CursorUp",
88         "Alt-n": "CursorDown"
89 }
90 ```
91
92 You can use the alt keys + arrows to move word by word.
93 Ctrl left and right move the cursor to the start and end of the line, and
94 ctrl up and down move the cursor the start and end of the buffer.
95
96 You can hold shift with all of these movement actions to select while moving.
97
98 The bindings may be rebound using the `~/.config/micro/bindings.json`
99 file. Each key is bound to an action.
100
101 For example, to bind `Ctrl-y` to undo and `Ctrl-z` to redo, you could put the
102 following in the `bindings.json` file.
103
104 ```json
105 {
106         "CtrlY": "Undo",
107         "CtrlZ": "Redo"
108 }
109 ```
110
111 ### Possible commands
112
113 You can execute an editor command by pressing `Ctrl-e` followed by the command.
114 Here are the possible commands that you can use.
115
116 * `quit`: Quits micro.
117 * `save`: Saves the current buffer.
118
119 * `replace "search" "value" flags`: This will replace `search` with `value`. 
120    The `flags` are optional.
121    At this point, there is only one flag: `c`, which enables `check` mode 
122    which asks if you'd like to perform the replacement each time
123
124    Note that `search` must be a valid regex.  If one of the arguments
125    does not have any spaces in it, you may omit the quotes.
126
127 * `set option value`: sets the option to value. Please see the next section for
128    a list of options you can set.
129
130 * `run sh-command`: runs the given shell command in the background. The 
131    command's output will be displayed in one line when it finishes running.
132
133 * `bind key action`: creates a keybinding from key to action. See the sections on
134    keybindings above for more info about what keys and actions are available.
135
136 ### Options
137
138 Micro stores all of the user configuration in its configuration directory.
139
140 Micro uses the `$XDG_CONFIG_HOME/micro` as the configuration directory. As per
141 the XDG spec, if `$XDG_CONFIG_HOME` is not set, `~/.config/micro` is used as 
142 the config directory.
143
144 Here are the options that you can set:
145
146 * `colorscheme`: loads the colorscheme stored in 
147    $(configDir)/colorschemes/`option`.micro
148
149         default value: `default`
150         Note that the default colorschemes (default, solarized, and solarized-tc)
151         are not located in configDir, because they are embedded in the micro binary
152
153         The colorscheme can be selected from all the files in the 
154         ~/.config/micro/colorschemes/ directory. Micro comes by default with three
155         colorschemes:
156
157         * default: this is the default colorscheme.
158
159         * solarized: this is the solarized colorscheme (used in the screenshot). 
160           You should have the solarized color palette in your terminal to use it.
161
162         * solarized-tc: this is the solarized colorscheme for true color, just 
163           make sure your terminal supports true color before using it and that the 
164           MICRO_TRUECOLOR environment variable is set to 1 before starting micro.
165
166         * monokai-tc: this is the monokai colorscheme. It requires true color to
167           look perfect, but the 256 color approximation looks good as well.
168
169         * atom-dark-tc: this colorscheme is based off of Atom's "dark" colorscheme.
170           It requires true color to look good.
171
172
173 * `tabsize`: sets the tab size to `option`
174
175         default value: `4`
176
177 * `indentchar`: sets the indentation character
178
179         default value: ` `
180
181 * `ignorecase`: perform case-insensitive searches
182
183         default value: `off`
184
185 * `syntax`: turns syntax on or off
186
187         default value: `on`
188
189 * `tabstospaces`: use spaces instead of tabs
190
191         default value: `off`
192
193 * `autoindent`: when creating a new line use the same indentation as the 
194    previous line
195
196         default value: `on`
197
198 * `cursorline`: highlight the line that the cursor is on in a different color
199    (the color is defined by the colorscheme you are using)
200
201         default value: `off`
202
203 * `ruler`: display line numbers
204
205         default value: `on`
206
207 * `statusline`: display the status line at the bottom of the screen
208
209         default value: `on`
210
211 * `savecursor`: remember where the cursor was last time the file was opened and
212    put it there when you open the file again
213
214         default value: `off`
215
216 * `saveundo`: when this option is on, undo is saved even after you close a file
217    so if you close and reopen a file, you can keep undoing
218
219         default value: `off`
220
221 * `scrollmargin`: amount of lines you would like to see above and below the cursor
222
223         default value: `3`
224
225 * `scrollspeed`: amount of lines to scroll for one scroll event
226
227         default value: `2`
228
229 ---
230
231 Default plugin options:
232
233 * `linter`: lint languages on save (supported languages are C, D, Go, Java,
234    Javascript, Lua). Provided by the `linter` plugin.
235
236         default value: `on`
237
238 * `autoclose`: Automatically close `{}` `()` `[]` `""` `''`. Provided by the autoclose plugin
239
240         default value: `on`
241
242 * `goimports`: Run goimports on save. Provided by the `go` plugin.
243
244         default value: `off`
245
246 * `gofmt`: Run gofmt on save. Provided by the `go` plugin.
247
248         default value: `on`
249
250 Any option you set in the editor will be saved to the file 
251 ~/.config/micro/settings.json so, in effect, your configuration file will be 
252 created for you. If you'd like to take your configuration with you to another
253 machine, simply copy the settings.json to the other machine.