]> git.lizzy.rs Git - micro.git/blob - runtime/help/options.md
de3d5e9691fc16b8ab053476afd263aa197d59e5
[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 * `tabsize`: sets the tab size to `option`
27
28         default value: `4`
29
30 * `indentchar`: sets the indentation character
31
32         default value: ` `
33
34 * `filetype`: sets the filetype for the current buffer. This setting is `local only`
35
36     default value: this will be automatically set depending on the file you have open
37
38 * `ignorecase`: perform case-insensitive searches
39
40         default value: `off`
41
42 * `syntax`: turns syntax on or off
43
44         default value: `on`
45
46 * `tabstospaces`: use spaces instead of tabs
47
48         default value: `off`
49
50 * `autoindent`: when creating a new line use the same indentation as the 
51    previous line
52
53         default value: `on`
54
55 * `cursorline`: highlight the line that the cursor is on in a different color
56    (the color is defined by the colorscheme you are using)
57
58         default value: `on`
59
60 * `ruler`: display line numbers
61
62         default value: `on`
63
64 * `statusline`: display the status line at the bottom of the screen
65
66         default value: `on`
67
68 * `savecursor`: remember where the cursor was last time the file was opened and
69    put it there when you open the file again
70
71         default value: `off`
72
73 * `saveundo`: when this option is on, undo is saved even after you close a file
74    so if you close and reopen a file, you can keep undoing
75
76         default value: `off`
77
78 * `scrollmargin`: amount of lines you would like to see above and below the cursor
79
80         default value: `3`
81
82 * `scrollspeed`: amount of lines to scroll for one scroll event
83
84         default value: `2`
85
86 ---
87
88 Default plugin options:
89
90 * `linter`: lint languages on save (supported languages are C, D, Go, Java,
91    Javascript, Lua). Provided by the `linter` plugin.
92
93         default value: `on`
94
95 * `autoclose`: Automatically close `{}` `()` `[]` `""` `''`. Provided by the autoclose plugin
96
97         default value: `on`
98
99 * `goimports`: Run goimports on save. Provided by the `go` plugin.
100
101         default value: `off`
102
103 * `gofmt`: Run gofmt on save. Provided by the `go` plugin.
104
105         default value: `on`
106
107 Any option you set in the editor will be saved to the file 
108 ~/.config/micro/settings.json so, in effect, your configuration file will be 
109 created for you. If you'd like to take your configuration with you to another
110 machine, simply copy the settings.json to the other machine.
111
112 # Global and local settings
113
114 You can set these settings either globally or locally. Locally means that the setting
115 won't be saved to `~/.config/micro/settings.json` and that it will only be set in
116 the current buffer. Setting an option globally is the default, and will set the option
117 in all buffers.
118
119 The `colorscheme` option is global only, and the `filetype` option is local only. To
120 set an option locally, use `setlocal` instead of `set`.
121
122 In the `settings.json` file you can also put set options locally by specifying a glob.
123 Here is an example which has `tabstospaces` on for all files except Go files, and
124 `tabsize` 4 for all files except Ruby files:
125
126 ```
127 {
128     "*.go": {
129         "tabstospaces": false
130     },
131     "*.rb": {
132         "tabsize": 2
133     }
134     "tabstospaces": true,
135     "tabsize": 4,
136 }
137 ```
138
139 As you can see it is quite easy to set options locally using the `settings.json` file.