Changing settings in the editor
Development reference · View source
Open the settings page with Space o o, :config, or :settings.
- Move to a setting. The page is a read-only buffer, so motions, selections, search, splits, and your key bindings all work.
- Press Enter anywhere on its line, including a wrapped continuation, to open a value popup.
- Pick a value. For settings that apply immediately, moving through a list previews each choice live. Restart-required settings are not previewed.
- Press Enter to save, or Escape to cancel and roll the preview back.
What the popups offer:
- Lists for booleans, themes, and settings with a fixed set of values.
- Typed input for numbers. The popup shows the allowed minimum and maximum and rejects anything outside them.
What saving does to your file:
- The file is patched atomically, and only the changed value changes. Comments, key order, and unknown fields stay as they were.
- Other YAML flow collections (
{...}and[...]), even multiline ones, are kept. - The setting being changed must be a plain value in a block mapping. Editing inside a flow mapping is not supported.
- YAML that cannot be patched without loss is refused, and the file is left untouched. A failed save also rolls back the preview and keeps the popup open so you can retry.
How the page looks:
- Three left-aligned columns: setting, saved value, and description. Setting names use the theme’s function colour, values its constant colour, and descriptions ordinary text.
- The setting and value columns are as wide as their content, two spaces apart. Descriptions have no inserted line breaks or trailing padding.
- Each setting is one line. It follows
editor.soft_wrap:Space p stoggles wrapping, and horizontal scrolling reaches long lines when wrapping is off. Wrapped lines use ordinary buffer layout; they do not align under the description column.
Most changes apply at once. A few only take effect after a restart; the page says so when you save them:
| Setting | Why it needs a restart |
|---|---|
editor.mouse | Mouse capture is set up when the terminal is opened. |
lsp.enable | Language servers are started or suppressed at startup. |
mode | The launch mode is chosen before the editor starts. The saved value applies to future launches. |
The keys section is never written by this page. Edit it in the file.