Skip to content
Book view

Settings ​

Settings live in ~/.config/yumete/config.toml, and a project can override them in .yumete/config.toml. :settings opens all of them as a page you can edit and save with :w; :reload-config reads the files again after you edit them by hand. See Configuration for how the files work.

The sections below explain the settings that need more than a line. The list of every setting on the panel is at the end.

Auto-pairs: auto_pairs ​

Brackets and quotes close themselves as you type, as in helix. Type ( and you get () with the cursor between them; type ) in front of the ) and you step over it, so (x) typed in full still comes out once. Backspace between the two halves of an empty pair deletes both, and Enter between them opens the pair onto three lines, with the cursor on the middle one (indented one level in code).

toml
[editor]
auto_pairs = "basic"   # "off" | "basic" | "full"

The same three levels are :auto-pairs off, :auto-pairs basic and :auto-pairs full; :auto-pairs alone says which one is on. The settings panel has it under Editing.

LevelWhat pairs
offnothing
basic (default)helix's six: ( ) [ ] { } ' ' " " and two backticks
fulleverything the m group knows as a pair, but < >

What full pairs, beyond the six:

KindPairs
Full-width brackets( ) [ ] { }
Chinese brackets「 」 『 』 【 】 〔 〕 〖 〗 〈 〉 《 》
Curly quotes“ ” ‘ ’ 〝 〞
Full-width quotes" " ' ' ` `
Others« » 「 」

< > is left out even under full: in code, a < b would come out as a <> b.

When a pair is not written:

  • A letter, a digit or a Chinese character follows the cursor. Typing ( before text already written is usually the start of wrapping it, so only the ( goes in.
  • A quote right after a letter or a digit. don't keeps one apostrophe.

full works through the input method too. With Yume, [ commits 「 and you get 「」; the 」 that ] commits later steps over the one already there. " commits “ the first time and ” the next, so a quotation typed straight through comes out right.

full is not the default: dialogue in a novel is typed straight through, and a closer waiting ahead of the cursor is one more thing to step past.

Status-line count: status_count ​

toml
[editor]
status_count = "text"   # "text" | "all" | "off"

text (default) shows the word count on the status line for Markdown, plain text and Typst, all for every file, and off nowhere. The settings panel has it under Marks. How words are counted is in Checks and counts.

Not on the panel ​

A few keys are not on the settings panel. Each is explained on the page that owns it:

KeyPage
[ime] data_dirsThe input method
[editor] usage_groupsChecks and counts
[editor] screenshotConfiguration
[export] pageExport
[syntax], [editor] syntaxThe page
[language.*] and [lsp.*]Language servers
[keys.normal]Key remapping
the theme coloursThemes

Every setting on the panel ​

Written from the settings panel's own list (ye --docgen), grouped as the panel groups them. The default is what yumete uses when the file says nothing.

layout ​

SettingDefaultWhat it does
[editor] layout"horizontal"layout — whether the page runs across or down (horizontal across, vertical down)
[editor] vertical_keys"visual"hjkl when the page runs down — in vertical layout, whether hjkl follow the text or the screen (logical logical: h l by character, j k by line, visual visual: j k down/up, h l left/right)
[editor] zong_length0column length — characters to a column when set down; text reads well up to about 32 (8–64)
[editor] zong_gap0column gap — half-width cells between one column and the next (0–4)
[editor] pages_vertical1pages, vertical — how many bands a set-down page is cut into across (1–4)
[editor] pages_horizontal1pages, horizontal — how many columns the horizontal page is cut into, side by side (1–4)
[editor] indent0indent — cells at the head of a paragraph; the Chinese convention is 2 (0–8)
[editor] measure0measure — the line really breaks here; what is right of it is margin (0–400)
[editor] ruler0ruler — a line, not a break: what runs past it changes colour (0–400)
[editor] insert_final_newlinetrueadd a final line ending — on save, add the line ending this file's own lines use when the last one is missing it; an empty file stays empty
[editor] soft_wraptruesoft wrap — long lines fold when set across; off, they run past the right edge
[editor] hanging_punctuationfalsehanging punctuation — 。,、?!:;「」 hang in the margin instead of taking a cell
[editor] margin"dense"margin — when to show the lane that carries readings, emphasis and 平仄 (never never, dense when dense, loose when loose, always always)
[editor] tatechuyoko4tatechuyoko — half-width characters set across inside one cell, so a year is not one digit to a row (2–8)
[editor] paper_ticks0paper ticks — a faint tick in the margin every so many cells, the way squared paper does (0–64)
[editor] ambiguous_width"auto"ambiguous width — whether East Asian ambiguous-width characters such as — and … take one cell or two; change it if the caret sits off its character (auto ask the terminal, wide two cells, narrow one cell)

marks ​

SettingDefaultWhat it does
[editor] line_numbers"absolute"line numbers — the column on the left that numbers the lines; relative numbers count from the caret, which makes jumps easy to type (absolute absolute, relative relative, none none)
[editor] line_number_fillfalseline number fill — fill the line-number column with a faint ground, not just the number
[editor] diff_guttertruediff gutter — the cell beside the line number marks lines that differ from git, or from the saved file outside git
[editor] word_level"balanced"word level — how readily characters are joined into a word: strict takes only the certain ones, loose whatever the dictionary has (strict strict, balanced balanced, full full (loose))
[editor] word_mark"color"word mark — how word boundaries are shown (off none, color colour, ink brightness, tint tint, line underline)
[editor] code_highlighttruecode highlight — code in a fence is coloured by its own language; off, the whole block is one colour
[editor] show_rubyfalseshow ruby — lay readings out beside their characters. Off by default: what is in the file is what is on the page
[editor] indent_hint"none"indent hint — on a vertical page, a mark at the head of each paragraph, so the breaks in a long one are easy to find (none none, symbol a mark, color colour)
[editor] indent_symbol"↵"indent symbol — which character the paragraph mark is; used when the indent hint is set to a mark
[editor] table_rules"line dash"table rules — how the column rules of a table are drawn (line dash lines and dashes, line lines, line double lines and double lines, color colour, off none)
[editor] char_infotruechar info — the right end of the status line names the character under the caret: its code point and Unicode block
[editor] status_count"text"count on the status line — how long the file is, on the status line, and the selection too when there is one (text text files, all every file, off off)
[editor] unicode_alarmtruesuspicious characters — tint the cell after a zero-width or bidi control, and any space that is not a plain space

interface ​

SettingDefaultWhat it does
[editor] scrolloff3scrolloff — how many lines (columns, on a vertical page) to keep between the caret and the edge (0–20)
[editor] wheel_step3wheel step — how many lines one notch of the wheel moves; 1 is the terminal's own step (1–10)
[editor] tabs"auto"tabs — the bar along the top that lists the open files (auto two or more, always always, never never)
[editor] command_linetruecommand line — a line under the status line for commands, for what just happened, and for the keys you can press now
[panel] roundedtruerounded — whether panel corners are round or square
[editor] language"auto"language — interface language (auto the system's, zh 繁體, zhs 简体, en English)

colours ​

SettingDefaultWhat it does
[theme] name"ink"name — which ink to use: ten built-in themes, named by their names (墨香 and moxiang are the same) (ink moxiang: black, white-gold, gold and red ink; every other shade computed, one-dark one-dark: the scheme most VS Code users know; dark only, github github: GitHub's own scheme, as on the site and in VS Code; light and dark, monokai monokai: the classic Sublime Text scheme; dark only, dracula dracula: the purple-toned dark scheme; dark only, tokyo-night tokyo-night: soft blue-purple tones; light and dark, catppuccin catppuccin: pastels; Mocha dark, Latte light, gruvbox gruvbox: retro colours on warm brown; light and dark, bw heibai: black, white and grey only — weight says it, colour says nothing, morandi morandi: muted, greyed colours; light and dark)
[theme] mode"auto"mode — the dark or the light half of the theme; ask the terminal checks what its background is (auto ask the terminal, dark dark, light light)
[theme] ground"paint"ground — the editor paints the paper itself, or leaves the background to the terminal (use this with a transparent terminal) (paint paint the paper, terminal the terminal's own)
[theme] status_bar"sunken"status bar — whether the two bottom lines sit lower than the paper or one step towards the ink (sunken sunken, raised raised)
[theme] fillfalsefill — whether code blocks and quotes sit on a faint ground

input ​

SettingDefaultWhat it does
[ime] scheme"lingming"scheme — which 碼表 to type with. 靈明 and 星陳 come built in; the others need the data installed (lingming 靈明, xingchen 星陳, qingyun 卿雲, riyue 日月, pinyin 拼音)
[ime] commit"default"commit method — when a finished code goes to the page (default the scheme's own, delayed delayed (頂字), unique unique, fluency whole-sentence)
[ime] startfalseload the 碼表 at start — off by default: the word model loads as usual, and the 碼表 waits for the first Chinese you type
[ime] system"auto"move the system input method aside in Normal mode — while yumete reads the keys itself (Normal mode, the command line), ask the system's input method to step aside, so it does not eat them (auto auto, keep leave it)
[panel] display"box"where candidates go — where the candidates are drawn while you type: a box by the caret, the bottom line of the window, or the line under the caret (box box, bottom bottom line, inline in the line)
[panel] inline_preedit"off"preedit — whether what you are typing is written in the candidate bar or in the text, and if in the text, the code or the first candidate (off in the candidate bar, composition the code in the text, preview the first candidate in the text)
[panel] page_size6page size — how many candidates a page lists (1–9)
[panel] markers"123456789"markers — the characters the nine candidate numbers are drawn as
[editor] show_chaifenfalseshow 拆分 — while typing, show each candidate's 拆分 beside it

editing ​

SettingDefaultWhat it does
[editor] word_completion4word completion — after this many Latin letters, list words that appear in the open files; for Chinese characters, half as many (rounded up). C-n lists them at any time (0–20)
[editor] auto_pairs"basic"auto-pairs — typing an opening bracket or quote adds its closer; typing the closer then steps over it (off off, basic basic, full full)
[editor] completion_page_size6completion page size — how many items the word, code and shell completion lists show at once (1–20)
[editor] indent_width4indent width — how many columns > adds and < takes away, and how many spaces Tab types (1–16)
[editor] tab_width8tab width — how far a tab character reaches: to the next multiple of this. Code tables line up by it (1–16)
[editor] tab_inserts"spaces"tab inserts — what Tab types in Insert mode; Shift-Tab types the other (spaces spaces, tab a tab)
[editor] smart_casetruesmart case — searching: no capital in the pattern ignores case, one capital respects it
[editor] fuzzy_searchfalsefuzzy search — whether the search panel's fuzzy switch starts on

files ​

SettingDefaultWhat it does
[editor] reload_autotrueauto reload — reload the file when something outside changes it
[editor] autosavetrueautosave — while a file is unsaved, keep a copy beside it, so a crash loses nothing
[editor] sessionfalsesession — when started with no file: a blank page, or the files that were open last time
[editor] remembertrueremember files and places — off: nothing is written or read: the line each file was left on, recent files and projects, the last session

keys ​

SettingDefaultWhat it does
[editor] which_wrap"b"which wrap — which keys cross a line end, spelled as in vim: b h l < > ~ — vim keys only
[editor] language_key"C-^"language key — the key that switches 中/ABC on a terminal that cannot report a lone Shift
[keys] flavorfalseYumete keymap flavour — with this on, d and c only delete and A-d/A-c are the ones that cut, so a tidy-up between a copy and a paste cannot eat the copy. [keys.normal] still wins
[keys] preset"helix"keymap — whether the keys follow helix or vim (helix helix, vim vim)

yumete is released under the Apache License 2.0.