Skip to content
Book view

Commands ​

Press : to open the command line. Every command is listed below it, and the list narrows as you type. Enter runs the line, Esc closes it.

Typing a command ​

A space shows what comes next. After :view-wrap the line lists the words the command takes (on, off, 0, or a number); Tab cycles through them, completing the word you are typing rather than the whole line.

A prefix nobody else has is enough, for commands and for their arguments alike. :y is :yume, and :yume-scheme l is :yume-scheme lingming. When a prefix fits two names, neither is chosen: :re begins recover, redo and render, so it is refused instead of guessed. The shortest spelling of each command is shown in brackets in the list.

Declared short names win over the prefix rule: :w is write and :e is open, even though other commands begin with those letters.

A hyphen makes a family. :buffer-close is a kind of :buffer, :view-wrap a kind of :view; the list folds each family under its head (:view- +17) and opens it as you type. Only some commands have a short form, and where there is one it is usually the initials: :bc, :qa, :wa. A space where a hyphen belongs is refused with the right spelling, so :write all is not read as a file called all.

A ! forces. :q! quits without saving, :export! html overwrites an existing file. Only the commands that have something to force take it.

The line can be edited: ← →, Home End, C-w deletes a word, C-u the whole line, and ↑ ↓ walk this session's history. : and / keep separate histories.

:: — find a command by what it does ​

Press : on an empty command line (so the line starts ::) and type what you want to do instead of a name: ::wrap, ::sort, ::vertical. Commands and keys are on one list, ranked by how well your words fit their descriptions and a few extra search words each one carries. Chinese works too (::竖排), with the input method on for that line. Tab and Shift-Tab step through the list; Enter runs the command or presses the key.

Running a shell command ​

CommandWhat happens
:sh <command>runs it and opens the output in a buffer you can search and copy from
:!<command>hands the terminal to the command so you can watch it run, then asks for a key to come back
:pipe <command>sends the selection through the command and replaces it with the output
:pipe-before / :pipe-afterputs the command's output before or after the selection
:pipe-to <command>sends the selection to the command and keeps nothing back

The command goes through $SHELL -c, so pipes and globs work. On a shell line the prompt reads Shell:, Tab completes program names (the first word) and file names (the rest), and the last shell command waits in grey after the cursor for Tab to take.

Every command ​

This table is written from the editor's own command list (ye --docgen), so it always matches the version it was generated from.

CommandArgumentsWhat it does
:cd<path>change the working directory
:pwdshow the working directory
:open :o :e :edit<path>open a file
:new :enewstart an empty buffer
:write :w<path>save; a path writes a copy, :write-as moves to it
:write-all :wasave every file that changed
:write-as<path>save under a new name and edit that one (:w <path> only copies)
:recoverask whether to use the draft
:reloadread the file again; ! throws away what you changed here
:reload-configafter editing config.toml, without restarting
:reload-autoon|off|togglere-read by itself when the file changes outside — a warning, not a re-read, when you have changes of your own
:readonly :roon|off|toggleread-only: lock this one against editing
:goto<行號>go to a line (:42 will do)
:count :wchow much has been written; :count-progress for today, :count-target for a daily goal
:count-progresshow much was written today, and how far the target still is
:count-target<字數>|offhow many words a day; :count-target off stops counting against one
:check-usagecheck usage: where the text wrote the other spelling of something it usually spells one way
:check-configcheck the config: the line that voids the whole file, and the keys nobody reads
:check-namescheck names: a wiki name written with one homophone out of place
:diagnostics-alleverything the language servers have complained about, as a listing gf can walk
:check-charsetcheck the character set: characters no current standard carries — the ones a typesetter's font will not have
:check-mergelist the merge conflicts in this file
:check-punctcheck punctuation: half-width marks in Chinese, ... for ……, and a 「 nothing closes
:converts|t|tw|hk|jp|c|g s|t|tw|hk|jp|c|g簡繁 conversion, run by opencc — :convert lists the pairs it can do
:convert-openccwhether opencc is installed, where, and which version
:convert-opencc-installinstall opencc — run here on macOS, printed for you elsewhere
:convert-opencc-updatebring opencc up to date
:quit :qclose this file; leave only when it was the last one (quit! ignores changes)
:quit-all :qaclose every open file, then leave (short: :qa)
:write-quit :wq<path>always save, then leave (short: :wq; :x saves only if changed)
:write-quit-all :wqa :xasave every file that changed, then leave
:exit :x :xit<path>save if changed, then leave (short: :x, also :xit)
:update :upsave if changed, and stay (short: :up)
:undo :uundo the last change
:earlier :ear<步數>|<時間>undo to so many steps or so long ago (5m, 1h)
:later :lat<步數>|<時間>redo to so many steps or so long on
:redo :redredo
:word :wdwords: which list, the mark, the level
:word-markoff|color|ink|tint|line|字色|墨色word mark
:wiki<詞條名>look an entry up by name — misspelt or out of order still finds it
:wiki-editopen this project's .yumete/wiki.md, existing or not
:wiki-globalopen the global wiki.md — what a whole series shares
:keymap-yumete-flavoron|off|togglethe Yumete keymap flavour: a small set of departures over helix/vim. Bare reports it
:wiki-panelon|off|togglekeep the entry in the sidebar — while it is open it no longer floats
:wiki-markcolor|line|offhow a wiki name is marked in the text: 金, an underline, or not at all
:wiki-wherewhere the wiki looked: which files were read, how many entries each, what cannot be marked
:wiki-reloadread the wiki and every file it includes again
:word-listwhich word list is in force
:word-list-localopen this project's word list, .yumete/words.txt — names of people and places
:word-list-globalopen the global word list, segmentation.txt
:word-list-reloadreread both word lists, this project's and the global one
:word-leveloff|strict|balanced|fullword level: how readily characters join into words
:word-discovermine this file's own words: the names no dictionary has
:word-discover-workingmine the working directory's own words
:word-discover-projectmine the project's own words
:word-habithabit words: what this one says far more than ordinary text does
:verticalturn this page down
:horizontalturn this page across
:vertical-keys :vklogical|visual|<logical|visual>whether hjkl follow the text or the screen when the page runs down
:themeink|one-dark|github|monokai|dracula|tokyo-night|catppuccin|gruvbox|bw|morandi|<主題名>theme: which set of inks (light or dark is :theme-mode)
:theme-modesystem|dark|lightdark or light (system asks the terminal)
:language :langzh|zhs|enwhich language the editor speaks: zh 繁體 / zhs 简体 / en English
:version :verwhich build this is, and where the config, data and log live
:keymaphelix|vimkeymap preset: helix (default) or vim — vim's x s dd ^ $ translated
:keymap-actionslist every action a key can be bound to
:infothis file: where it is, how big, how many lines and characters, its language, which servers watch it
:instant-infodictionary|wiki|record|docs|diagnostics|changeinfo: which of record / diagnostics / dictionary / wiki / docs follows the cursor (blank: by the file)
:rules<欄>…|offtint these columns: :rules 80 100 120; bare is 80 and 100, off clears them
:theme-fillon|off|togglewhether code and quotations sit on a ground (they do not by default)
:shotscreen|png|html|txt <path>a picture: the clipboard by default, or a file with png/html/txt
:yume :yon|offthe Yume input engine's switch: on (中文) or off
:yume-wherewhere the 碼表 and other data are looked for, in order
:yume-whichwhich scheme is in use, and where its 碼表 came from
:yume-schemelingming|xingchen|qingyun|riyue|pinyinstart typing: load a scheme (with no name, the configured one)
:yume-chaifenon|off|togglethe 拆分 annotation beside the candidates
:yume-commitdefault|delayed|unique|fluency|autocommit method: default (the scheme's own), delayed (頂字), unique, fluency (whole sentence)
:yume-panelbox|bottom|inlinewhere the candidates are drawn: box by the caret, bottom on the bottom line, inline on the line under the caret
:yume-inline-preeditoff|composition|previewwhere the composition shows: off in the candidate bar, composition or preview in the text
:yume-menu-size<1–9>how many candidates a page holds (1-9, 6 by default)
:yume-autocompletionon|off|toggleautocompletion: offer candidates before the code is finished
:yume-installeduse the 碼表 the system has installed (builtin's other half)
:yume-builtinuse the built-in 靈明 table, whatever else is installed
:yume-table<path>use your own table (a Rime .dict.yaml will do)
:syntax :synmarkdown|typst|text|python|javascript|json|yaml|toml|html|css|ada|c|gas|go|java|nasm|pascal|r|rust|<語法>which markup this file is written in (with no argument, which one it is now)
:pipe<命令>send the selection through a terminal command and take back its output
:sh<命令>run a command and keep its output in a buffer
:!commandhand the terminal over and watch it run (vi's spelling)
:which-wrap<字母>which keys cross a line end, spelled as in vim: b h l < > ~ — vim keys only
:view-wrapon|off|0|<幾欄>wrap long paragraphs to the next row; :view-wrap 50 sets a measure, off stops wrapping
:view-wrap-vertical0|<幾字>how many characters go in one vertical column; 0 follows the window
:view-marginnever|dense|loose|alwaysmargin: the lane for readings, hung marks, emphasis dots and 平仄
:view-pages-horizontal<1–4>pages, horizontal: side-by-side columns, the text running on from the left one to the right
:view-pages-vertical<1–4>pages, vertical: divide the vertical page across — top right to top left, then bottom right to bottom left
:view-sentenceon|off|toggleone sentence to a column — a view of the page, not an edit
:view-hangingon|off|togglehanging punctuation: 句讀 sit in the margin
:view-numbers-fillon|off|togglewhether the line-number band has a ground of its own (no by default, in both layouts)
:view-diffon|off|togglechange bar: the cell beside the line number says which lines differ from git
:view-typewriteron|off|toggletypewriter: the row you are writing stays in the middle and the paper moves
:view-focuson|off|togglefocus: the paragraph you are writing stays lit and the rest of the page stands back
:view-meteron|off|toggle平仄: the tone class of every character in the margin, 韻腳 at the end of a 句
:view-puncton|off|togglepunctuation hints: the full-width mark a half-width one should have been
:view-codeon|off|togglecode colours: code in a fence, coloured by its own grammar
:view-long-lineoff|<幾字>stop colouring a line past this many characters
:view-hudoff|basic|fullthe little sign beside the caret: nothing, a pill, a bordered panel
:view-previewon|off|togglehand it to a real typesetter and read it in a browser
:renderoff|basic|fullhow much of the result the page shows: source, coloured, WYSIWYG
:indentoff|basic|full|<幾格,至多 8>how a paragraph opens: off / basic (indented, blank line kept) / full (the blank line folded too), or a width
:indent-tabspaces|tabwhat Tab types: spaces or a tab (Shift-Tab types the other)
:indent-width<幾格,1–16>indent width: the spaces Tab types, and how far > and < shift
:reflow<幾欄>refill the selection to a width (80 columns by default)
:auto-pairsoff|basic|fulltype an opening bracket and its closer comes too: off, basic, full; bare says which it is now
:indent-hintnone|color|symbolwhat is drawn in a paragraph's opening squares
:table<行>x<欄>an empty table: :table 3 4 is three rows by four columns, the first row the headings; only on a blank line
:table-renderoff|basic|windowhow much of a table is drawn: the source, basic, or window view; bare says which it is now
:table-checklook the whole table over: repeated row names, components with no row, rows of the wrong width
:table-rulesoff|color|line|<樣式> solid|dash|doublecolumn rules: how the columns are told apart
:table-sort<欄> a|d …sort by these columns: sort 1 a 2 d is column 1 ascending, then column 2 descending
:replace :r<path>search and replace
:replace-buffers :rbreplace across every open buffer
:replace-working :rwsearch and replace in the working directory
:replace-project :rpsearch and replace in the project
:pipe-before<命令>run a terminal command and put its output before the selection
:pipe-after<命令>run a terminal command and put its output after the selection
:read<path>put a file's contents after the selection
:pipe-to<命令>send the selection through a terminal command and keep nothing back
:yuhaoopen the Yuhao input method website
:search :s :grep<path>search: open the search panel — across files, with more options
:search-buffers :sbsearch every open buffer
:search-working :swsearch the working directory
:search-project :spsearch the project
:sidebaroff|explorer|buffers|outline|search|infothe sidebar: bare says what is open, off closes it, a name opens that panel
:table-detailon|off|togglethe record panel: on, off, or a width
:table-numberson|off|togglethe row of column numbers — what ␣t3/ and ␣t20,20g count with
:table-headeron|off|togglewhether the first row names the columns or is a row like any other
:table-schemaopen this table's schema in the other region — writing a starting one if there is none
:table-jump<列名>go to the row this table names (:table-jump 木)
:table-findrow|column|<字符串> <字符串>search: row runs across (that is /), column runs down (that is Space t / in a table)
:paste-table<格式> [<格式>]paste the clipboard's table as the named format; with two words the first is the source
:convert-table<格式> [<格式>]convert to the named format (csv, tsv, pipe); with two words the first is the source
:wheel<幾行,1–10>how far one notch of the wheel moves; :wheel 1 is the terminal's own
:clipboardthe paste menu: the clipboard and what was yanked, pick one
:clipboard-yankput the selection on the system clipboard
:clipboard-pastepaste from the system clipboard
:bufferthe open files: list, switch, close
:buffer-next :bnthe next one
:buffer-previous :bpthe previous one
:buffer-close :bcclose this one (close! ignores changes)
:format :fmtformat this file the way the config says ([language.markdown] format = …)
:run<名字>run the command this language names in the config
:markdown-footnotea footnote: the next free number, and its note opened with it
:markdown-footnote-inlinean inline note [1], which does not go to the foot
:settings :seta full page of settings, each with a name and a note; :w saves
:resumetake up this directory's last session — adds, closes nothing
:recent-filesfiles opened under this project, newest first
:recent-files-globalfiles opened anywhere, newest first
:recent-projectsthe directories a session was kept for
:tutora lesson: the text is copied into a file of your own, and you learn by editing it
:help :hchinese|vertical|table|commands|<題目>the keys and the commands, opened as a file you can read and search
:export :exhtml|typst|csv|tsv <path>write it out as html or typst, layout and all
:diff<path>what changed, by word rather than by line
:lsp-rename<新名>rename the name under the caret everywhere, through the language server
:git-show<提交>the committed draft, read-only, in the other region
:git-diff<提交>against what git has, word by word: HEAD unless a commit is named
:toc :outline<第幾條>list the headings; :toc 3 goes to the third
:rubyedit the reading here
:ruby-renderoff|basic|fullreading render mode: the source, coloured, laid out beside the base; with no argument it reports the mode
:ruby-autowrite the readings in, by word (the selection, or the file)
:ruby-auto-rareannotate only the characters no everyday list carries: 通用規範漢字表, its traditional forms, Taiwan's and Hong Kong's
:ruby-htmlon|off|toggleread <ruby>
:ruby-typston|off|toggleread #ruby(…)
:ruby-formathtml|typstrewrite the readings in another dialect
:s/pat/rep/substitute in the selection; %s the file, 1-40s a span, 1,5,9s a list; flags g i f c n t y j

  1. … ↩︎

yumete is released under the Apache License 2.0.