User guide / Configuration

Changing settings in the editor

Development reference · View source

Open the settings page with Space o o, :config, or :settings.

  1. Move to a setting. The page is a read-only buffer, so motions, selections, search, splits, and your key bindings all work.
  2. Press Enter anywhere on its line, including a wrapped continuation, to open a value popup.
  3. Pick a value. For settings that apply immediately, moving through a list previews each choice live. Restart-required settings are not previewed.
  4. 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 s toggles 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:

SettingWhy it needs a restart
editor.mouseMouse capture is set up when the terminal is opened.
lsp.enableLanguage servers are started or suppressed at startup.
modeThe 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.