2017-10-11 16:16:53 +03:00
|
|
|
# Options
|
2016-07-28 22:52:31 +03:00
|
|
|
|
|
|
|
Micro stores all of the user configuration in its configuration directory.
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
Here are the options that you can set:
|
|
|
|
|
2017-10-11 15:43:38 +03:00
|
|
|
* `autoindent`: when creating a new line use the same indentation as the
|
2017-10-11 16:16:53 +03:00
|
|
|
previous line.
|
2017-10-11 15:43:38 +03:00
|
|
|
|
|
|
|
default value: `on`
|
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
* `autosave`: micro will save the buffer every 8 seconds automatically. Micro
|
|
|
|
also will automatically save and quit when you exit without asking. Be
|
|
|
|
careful when using this feature, because you might accidentally save a file,
|
2017-10-11 15:43:38 +03:00
|
|
|
overwriting what was there before.
|
|
|
|
|
|
|
|
default value: `off`
|
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
* `colorcolumn`: if this is not set to 0, it will display a column at the
|
|
|
|
specified column. This is useful if you want column 80 to be highlighted
|
|
|
|
special for example.
|
2017-10-11 15:43:38 +03:00
|
|
|
|
|
|
|
default value: `0`
|
|
|
|
|
2016-07-28 22:52:31 +03:00
|
|
|
* `colorscheme`: loads the colorscheme stored in
|
2017-10-11 16:16:53 +03:00
|
|
|
$(configDir)/colorschemes/`option`.micro, This setting is `global only`.
|
2016-07-28 22:52:31 +03:00
|
|
|
|
|
|
|
default value: `default`
|
2017-10-11 16:16:53 +03:00
|
|
|
|
2016-07-28 22:52:31 +03:00
|
|
|
Note that the default colorschemes (default, solarized, and solarized-tc)
|
2016-09-09 07:07:58 +03:00
|
|
|
are not located in configDir, because they are embedded in the micro binary.
|
2016-07-28 22:52:31 +03:00
|
|
|
|
|
|
|
The colorscheme can be selected from all the files in the
|
|
|
|
~/.config/micro/colorschemes/ directory. Micro comes by default with three
|
|
|
|
colorschemes:
|
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
You can read more about micro's colorschemes in the `colors` help topic
|
|
|
|
(`help colors`).
|
2016-07-28 22:52:31 +03:00
|
|
|
|
2017-10-11 15:43:38 +03:00
|
|
|
* `cursorline`: highlight the line that the cursor is on in a different color
|
2017-10-11 16:16:53 +03:00
|
|
|
(the color is defined by the colorscheme you are using).
|
2016-09-08 00:17:51 +03:00
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
default value: `on`
|
2016-09-08 00:17:51 +03:00
|
|
|
|
2016-10-24 01:37:29 +03:00
|
|
|
* `eofnewline`: micro will automatically add a newline to the file.
|
|
|
|
|
|
|
|
default value: `false`
|
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
* `fastdirty`: this determines what kind of algorithm micro uses to determine if
|
|
|
|
a buffer is modified or not. When `fastdirty` is on, micro just uses a
|
|
|
|
boolean `modified` that is set to `true` as soon as the user makes an edit.
|
|
|
|
This is fast, but can be inaccurate. If `fastdirty` is off, then micro will
|
|
|
|
hash the current buffer against a hash of the original file (created when the
|
|
|
|
buffer was loaded). This is more accurate but obviously more resource
|
|
|
|
intensive. This option is only for people who really care about having
|
|
|
|
accurate modified status.
|
2016-07-28 22:52:31 +03:00
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
default value: `on`
|
2016-07-28 22:52:31 +03:00
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
* `fileformat`: this determines what kind of line endings micro will use for the
|
|
|
|
file. UNIX line endings are just `\n` (lf) whereas dos line endings are
|
|
|
|
`\r\n` (crlf). The two possible values for this option are `unix` and `dos`.
|
|
|
|
The fileformat will be automatically detected and displayed on the statusline
|
|
|
|
but this option is useful if you would like to change the line endings or if
|
|
|
|
you are starting a new file.
|
2016-08-31 18:16:22 +03:00
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
default value: `unix`
|
2016-08-31 18:16:22 +03:00
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
* `filetype`: sets the filetype for the current buffer. This setting is
|
|
|
|
`local only`.
|
2016-08-26 00:24:13 +03:00
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
default value: this will be automatically set depending on the file you have
|
|
|
|
open
|
2016-08-26 00:24:13 +03:00
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
* `ignorecase`: perform case-insensitive searches.
|
2016-07-28 22:52:31 +03:00
|
|
|
|
|
|
|
default value: `off`
|
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
* `indentchar`: sets the indentation character.
|
2017-10-11 15:43:38 +03:00
|
|
|
|
|
|
|
default value: ` `
|
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
* `infobar`: enables the line at the bottom of the editor where messages are
|
|
|
|
printed. This option is `global only`.
|
2016-07-28 22:52:31 +03:00
|
|
|
|
|
|
|
default value: `on`
|
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
* `keepautoindent`: when using autoindent, whitespace is added for you. This
|
|
|
|
option determines if when you move to the next line without any insertions
|
|
|
|
the whitespace that was added should be deleted. By default the autoindent
|
|
|
|
whitespace is deleted if the line was left empty.
|
2016-07-28 22:52:31 +03:00
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
default value: `off`
|
2016-07-28 22:52:31 +03:00
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
* `keymenu`: display the nano-style key menu at the bottom of the screen. Note
|
|
|
|
that ToggleKeyMenu is bound to `Alt-g` by default and this is displayed in
|
|
|
|
the statusline. To disable this, simply by `Alt-g` to `UnbindKey`.
|
2017-05-05 19:04:18 +03:00
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
default value: `off`
|
2017-05-05 19:04:18 +03:00
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
* `mouse`: whether to enable mouse support. When mouse support is disabled,
|
|
|
|
usually the terminal will be able to access mouse events which can be useful
|
|
|
|
if you want to copy from the terminal instead of from micro (if over ssh for
|
|
|
|
example, because the terminal has access to the local clipboard and micro
|
|
|
|
does not).
|
2016-07-28 22:52:31 +03:00
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
default value: `on`
|
2016-07-28 22:52:31 +03:00
|
|
|
|
2017-10-11 15:43:38 +03:00
|
|
|
* `pluginchannels`: contains all the channels micro's plugin manager will search
|
2017-10-11 16:16:53 +03:00
|
|
|
for plugins in. A channel is simply a list of 'repository' json files which
|
|
|
|
contain metadata about the given plugin. See the `Plugin Manager` section of
|
|
|
|
the `plugins` help topic for more information.
|
2016-07-28 22:52:31 +03:00
|
|
|
|
2017-10-11 15:43:38 +03:00
|
|
|
default value: `https://github.com/micro-editor/plugin-channel`
|
2016-07-28 22:52:31 +03:00
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
* `pluginrepos`: contains all the 'repositories' micro's plugin manager will
|
|
|
|
search for plugins in. A repository consists of a `repo.json` file which
|
|
|
|
contains metadata for a single plugin.
|
2016-07-28 22:52:31 +03:00
|
|
|
|
2017-10-11 15:43:38 +03:00
|
|
|
default value: ` `
|
2016-07-28 22:52:31 +03:00
|
|
|
|
2017-10-11 15:43:38 +03:00
|
|
|
* `rmtrailingws`: micro will automatically trim trailing whitespaces at eol.
|
|
|
|
|
|
|
|
default value: `false`
|
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
* `ruler`: display line numbers.
|
2016-07-28 22:52:31 +03:00
|
|
|
|
|
|
|
default value: `on`
|
|
|
|
|
|
|
|
* `savecursor`: remember where the cursor was last time the file was opened and
|
2017-10-11 16:16:53 +03:00
|
|
|
put it there when you open the file again.
|
2016-07-28 22:52:31 +03:00
|
|
|
|
|
|
|
default value: `off`
|
|
|
|
|
|
|
|
* `saveundo`: when this option is on, undo is saved even after you close a file
|
2017-10-11 16:16:53 +03:00
|
|
|
so if you close and reopen a file, you can keep undoing.
|
2016-07-28 22:52:31 +03:00
|
|
|
|
|
|
|
default value: `off`
|
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
* `scrollmargin`: amount of lines you would like to see above and below the
|
|
|
|
cursor.
|
2016-07-28 22:52:31 +03:00
|
|
|
|
|
|
|
default value: `3`
|
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
* `scrollspeed`: amount of lines to scroll for one scroll event.
|
2016-07-28 22:52:31 +03:00
|
|
|
|
|
|
|
default value: `2`
|
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
* `softwrap`: should micro wrap lines that are too long to fit on the screen.
|
2016-10-12 23:34:34 +03:00
|
|
|
|
2017-02-08 03:21:25 +03:00
|
|
|
default value: `off`
|
2016-10-12 23:34:34 +03:00
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
* `splitbottom`: when a horizontal split is created, should it be created below
|
|
|
|
the current split?
|
2016-11-29 03:16:49 +03:00
|
|
|
|
2017-02-08 03:21:25 +03:00
|
|
|
default value: `on`
|
2016-11-29 03:16:49 +03:00
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
* `splitright`: when a vertical split is created, should it be created to the
|
|
|
|
right of the current split?
|
2016-10-06 01:26:41 +03:00
|
|
|
|
2017-10-11 15:43:38 +03:00
|
|
|
default value: `on`
|
2016-10-06 01:26:41 +03:00
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
* `statusline`: display the status line at the bottom of the screen.
|
2016-10-06 01:26:41 +03:00
|
|
|
|
2017-10-11 15:43:38 +03:00
|
|
|
default value: `on`
|
2017-02-08 03:21:25 +03:00
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
* `syntax`: turns syntax on or off.
|
2017-02-08 03:21:25 +03:00
|
|
|
|
|
|
|
default value: `on`
|
2016-10-06 01:26:41 +03:00
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
* `sucmd`: specifies the super user command. On most systems this is "sudo" but
|
|
|
|
on BSD it can be "doas." This option can be customized and is only used when
|
|
|
|
saving with su.
|
2017-03-27 20:22:34 +03:00
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
default value: `sudo`
|
2017-03-27 20:22:34 +03:00
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
* `tabmovement`: navigate spaces at the beginning of lines as if they are tabs
|
|
|
|
(e.g. move over 4 spaces at once). This option only does anything if
|
|
|
|
`tabstospaces` is on.
|
2017-04-29 23:01:09 +03:00
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
default value: `off`
|
2017-04-29 23:01:09 +03:00
|
|
|
|
2017-10-11 15:43:38 +03:00
|
|
|
* `tabsize`: sets the tab size to `option`
|
2017-09-18 06:33:18 +03:00
|
|
|
|
2017-10-11 15:43:38 +03:00
|
|
|
default value: `4`
|
2017-09-18 06:33:18 +03:00
|
|
|
|
2017-10-11 15:43:38 +03:00
|
|
|
* `tabstospaces`: use spaces instead of tabs
|
2017-09-18 06:33:18 +03:00
|
|
|
|
2017-10-11 15:43:38 +03:00
|
|
|
default value: `off`
|
2017-09-18 06:33:18 +03:00
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
* `termtitle`: defines whether or not your terminal's title will be set by micro
|
|
|
|
when opened.
|
2017-10-02 04:55:43 +03:00
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
default value: `off`
|
2017-10-02 04:55:43 +03:00
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
* `useprimary` (only useful on *nix): defines whether or not micro will use the
|
|
|
|
primary clipboard to copy selections in the background. This does not affect
|
|
|
|
the normal clipboard using Ctrl-C and Ctrl-V.
|
2017-10-03 06:44:11 +03:00
|
|
|
|
2017-10-11 15:43:38 +03:00
|
|
|
default value: `on`
|
2017-10-03 06:44:11 +03:00
|
|
|
|
2016-07-28 22:52:31 +03:00
|
|
|
---
|
|
|
|
|
|
|
|
Default plugin options:
|
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
* `autoclose`: automatically close `{}` `()` `[]` `""` `''`. Provided by the
|
|
|
|
`autoclose` plugin
|
2016-07-28 22:52:31 +03:00
|
|
|
|
|
|
|
default value: `on`
|
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
* `ftoptions`: by default, micro will set some options based on the filetype. At
|
|
|
|
the moment, micro will use tabs for makefiles and spaces for python and yaml
|
|
|
|
files regardless of your settings. If you would like to disable this behavior
|
|
|
|
turn this option off.
|
2017-05-20 01:17:38 +03:00
|
|
|
|
|
|
|
default value: `on`
|
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
* `linter`: Automatically lint when the file is saved. Provided by the `linter`
|
|
|
|
plugin.
|
2017-10-11 15:43:38 +03:00
|
|
|
|
|
|
|
default value: `on`
|
|
|
|
|
2016-07-28 22:52:31 +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.
|
2016-08-26 00:24:13 +03:00
|
|
|
|
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
## Global and local settings
|
|
|
|
|
|
|
|
You can set these settings either globally or locally. Locally means that the
|
|
|
|
setting won't be saved to `~/.config/micro/settings.json` and that it will only
|
|
|
|
be set in the current buffer. Setting an option globally is the default, and
|
|
|
|
will set the option in all buffers.
|
2016-08-26 00:24:13 +03:00
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
The `colorscheme` option is global only, and the `filetype` option is local
|
|
|
|
only. To set an option locally, use `setlocal` instead of `set`.
|
2016-08-26 03:15:58 +03:00
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
In the `settings.json` file you can also put set options locally by specifying a
|
|
|
|
glob. Here is an example which has `tabstospaces` on for all files except Go
|
|
|
|
files, and `tabsize` 4 for all files except Ruby files:
|
2016-08-26 03:15:58 +03:00
|
|
|
|
2016-08-30 10:35:21 +03:00
|
|
|
```json
|
2016-08-26 03:15:58 +03:00
|
|
|
{
|
2017-10-11 16:16:53 +03:00
|
|
|
"*.go": {
|
|
|
|
"tabstospaces": false
|
|
|
|
},
|
|
|
|
"*.rb": {
|
|
|
|
"tabsize": 2
|
|
|
|
},
|
|
|
|
"tabstospaces": true,
|
|
|
|
"tabsize": 4
|
2016-08-26 03:15:58 +03:00
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2017-10-11 16:16:53 +03:00
|
|
|
As you can see it is quite easy to set options locally using the `settings.json`
|
|
|
|
file.
|