]> git.lizzy.rs Git - micro.git/blob - runtime/help/options.md
Merge
[micro.git] / runtime / help / options.md
1 ### Options
2
3 Micro stores all of the user configuration in its configuration directory.
4
5 Micro uses the `$XDG_CONFIG_HOME/micro` as the configuration directory. As per
6 the XDG spec, if `$XDG_CONFIG_HOME` is not set, `~/.config/micro` is used as 
7 the config directory.
8
9 Here are the options that you can set:
10
11 * `colorscheme`: loads the colorscheme stored in 
12    $(configDir)/colorschemes/`option`.micro
13    This setting is `global only`.
14
15         default value: `default`
16         Note that the default colorschemes (default, solarized, and solarized-tc)
17         are not located in configDir, because they are embedded in the micro binary.
18
19         The colorscheme can be selected from all the files in the 
20         ~/.config/micro/colorschemes/ directory. Micro comes by default with three
21         colorschemes:
22
23     You can read more about micro's colorschemes in the `colors` help topic
24     (`help colors`).
25
26 * `colorcolumn`: if this is not set to 0, it will display a column at the specified
27    column. This is useful if you want column 80 to be highlighted special for example.
28
29         default value: `0`
30
31 * `eofnewline`: micro will automatically add a newline to the file.
32
33         default value: `false`
34
35 * `rmtrailingws`: micro will automatically trim trailing whitespaces at eol.
36
37         default value: `false`
38
39 * `tabsize`: sets the tab size to `option`
40
41         default value: `4`
42
43 * `indentchar`: sets the indentation character
44
45         default value: ` `
46
47 * `infobar`: enables the line at the bottom of the editor where messages are printed.
48    This option is `global only`.
49
50         default value: `on`
51
52 * `filetype`: sets the filetype for the current buffer. This setting is `local only`
53
54     default value: this will be automatically set depending on the file you have open
55
56 * `ignorecase`: perform case-insensitive searches
57
58         default value: `off`
59
60 * `syntax`: turns syntax on or off
61
62         default value: `on`
63
64 * `tabstospaces`: use spaces instead of tabs
65
66         default value: `off`
67
68 * `autoindent`: when creating a new line use the same indentation as the 
69    previous line
70
71         default value: `on`
72
73 * `cursorline`: highlight the line that the cursor is on in a different color
74    (the color is defined by the colorscheme you are using)
75
76         default value: `on`
77
78 * `ruler`: display line numbers
79
80         default value: `on`
81
82 * `statusline`: display the status line at the bottom of the screen
83
84         default value: `on`
85
86 * `savecursor`: remember where the cursor was last time the file was opened and
87    put it there when you open the file again
88
89         default value: `off`
90
91 * `saveundo`: when this option is on, undo is saved even after you close a file
92    so if you close and reopen a file, you can keep undoing
93
94         default value: `off`
95
96 * `scrollmargin`: amount of lines you would like to see above and below the cursor
97
98         default value: `3`
99
100 * `scrollspeed`: amount of lines to scroll for one scroll event
101
102         default value: `2`
103
104 * `softwrap`: should micro wrap lines that are too long to fit on the screen
105
106         default value: `off`
107
108 * `splitRight`: when a vertical split is created, should it be created to the right of
109    the current split?
110
111         default value: `on`
112
113 * `splitBottom`: when a horizontal split is created, should it be created below the
114    current split?
115
116         default value: `on`
117
118 * `autosave`: micro will save the buffer every 8 seconds automatically.
119    Micro also will automatically save and quit when you exit without asking.
120    Be careful when using this feature, because you might accidentally save a file,
121    overwriting what was there before.
122
123         default value: `off`
124
125 * `pluginchannels`: contains all the channels micro's plugin manager will search
126    for plugins in. A channel is simply a list of 'repository' json files which contain
127    metadata about the given plugin. See the `Plugin Manager` section of the `plugins` help topic
128    for more information.
129
130         default value: `https://github.com/micro-editor/plugin-channel`
131
132 * `pluginrepos`: contains all the 'repositories' micro's plugin manager will search for
133    plugins in. A repository consists of a `repo.json` file which contains metadata for a
134    single plugin.
135
136         default value: ` `
137
138 * `useprimary` (only useful on Linux): defines whether or not micro will use the primary clipboard to copy selections
139    in the background. This does not affect the normal clipboard using Ctrl-C and Ctrl-V.
140
141         default value: `on`
142
143 ---
144
145 Default plugin options:
146
147 * `autoclose`: Automatically close `{}` `()` `[]` `""` `''`. Provided by the `autoclose` plugin
148
149         default value: `on`
150
151 * `linter`: Automatically lint when the file is saved. Provided by the `linter` plugin
152
153         default value: `on`
154
155 Any option you set in the editor will be saved to the file 
156 ~/.config/micro/settings.json so, in effect, your configuration file will be 
157 created for you. If you'd like to take your configuration with you to another
158 machine, simply copy the settings.json to the other machine.
159
160 # Global and local settings
161
162 You can set these settings either globally or locally. Locally means that the setting
163 won't be saved to `~/.config/micro/settings.json` and that it will only be set in
164 the current buffer. Setting an option globally is the default, and will set the option
165 in all buffers.
166
167 The `colorscheme` option is global only, and the `filetype` option is local only. To
168 set an option locally, use `setlocal` instead of `set`.
169
170 In the `settings.json` file you can also put set options locally by specifying a glob.
171 Here is an example which has `tabstospaces` on for all files except Go files, and
172 `tabsize` 4 for all files except Ruby files:
173
174 ```json
175 {
176     "*.go": {
177         "tabstospaces": false
178     },
179     "*.rb": {
180         "tabsize": 2
181     },
182     "tabstospaces": true,
183     "tabsize": 4
184 }
185 ```
186
187 As you can see it is quite easy to set options locally using the `settings.json` file.