Configuration file

April 22, 2026 · View on GitHub

Write moe's configuration file in toml.
The location is

~/.config/moe/moerc.toml

You can use the example -> https://github.com/fox0430/moe/blob/develop/example

Configuration Items

CursorShape

  • type: string
Name
terminalDefault
blinkBlock
blinkIbeam
nonBlinkBlock
nonBlinkIbeam

TerminalColorMode

  • type: string
Name
none
8
16
256
24bit

ClipboardTool

  • type: string
Name
xsel
xclip
wl-clipboard
win32yank
pbcopy

StatusLineItem

  • type: string
Name
lineNumber
totalLines
columnNumber
totalColumns
encoding
lineEnding
fileType
fileTypeIcon

BufferBackend

  • type: string
NameDescription
gapBufferGapBuffer (default)
sqrtDecompSqrt Decomposition
ropeRope (B-tree)
pieceTablePiece Table (Red-Black Tree)

ThemeKind

  • type: string
NameDescription
defaultThe default theme
vscodeVSCode theme
configUser theme. Also please set Theme.path

Standard table

NameTypeDefault ValueDescription
numberbooltrueDisplay line numbers
relativeNumberboolfalseDisplay relative line numbers
statusLinebooltrueDisplay status lines
syntaxbooltrueEnable syntax highlighting
indentationLinesbooltrueEnable indentation lines
tabStopinteger2Tab width
shiftWidthinteger0Indent width (0 = use tabStop)
softTabStopinteger0Tab/Backspace width in insert mode (0 = use tabStop)
expandTabboolfalseExpand tabs to spaces
sidebarbooltrueEnable Sidebars for editor views
scrollbarboolfalseEnable scrollbar on the right edge of windows
scrollbarWidthinteger1Scrollbar width in characters (0 = hidden)
bookmarkMarkerstring"♥ "Bookmark indicator symbol in sidebars
showModifiedLinesbooltrueShow modified/inserted line indicators in sidebars
ignorecasebooltrueEnable ignorecase when searching
smartcasebooltrueEnable smartcase when searching
autoCloseParenbooltrueAutomatic closing brackets
autoDeleteParenbooltrueAutomatic delete brackets
autoIndentbooltrueAutomatic indentation
disableChangeCursorboolfalseDisable change of the cursor shape
defaultCursorCursorShapeterminalDefaultThe cursor shape of the terminal emulator you are using
normalModeCursorCursorShapeblinkBlockThe cursor shape in Normal mode
insertModeCursorCursorShapeblinkIbeamThe cursor shape in insert mode
liveReloadOfConfboolfalseEnable live reload of the configuration file
liveReloadOfFilebooltrueEnable live reload of opening files
incrementalSearchbooltrueEnable incremental search
popupWindowInExmodebooltrueShow Pop-up window in Command mode
colorModeTerminalColorMode256Terminal color mode
mouseboolfalseEnable mouse cursor movement
timeoutleninteger1000Key mapping timeout in milliseconds (0 = no timeout)
bufferBackendBufferBackendautoBuffer data structure. "auto" selects backend based on file size

Clipboard table

NameTypeDefault ValueDescription
enablebooltrueEnable system clipboard
toolClipbloardToolxselThe clipboard tool for Linux

TabLine table

NameTypeDefault ValueDescription
enablebooltrueEnable tab line

StatusLine table

NameTypeDefault ValueDescription
multipleStatusLinebooltrueShow multiple status lines
mergeboolfalseEnable merge the status line with the command line
modebooltrueDisplay the current mode
filenamebooltrueDisplay the filename
chanedMarkbooltrueDisplay the buffer changed mark
directorybooltrueDisplay the directory of the path
gitBranchNamebooltrueDisplay the current git branch name
gitChangedLinesbooltrueDisplay number of changed lines
showGitInactiveboolfalseDisplay the git branch name on the status line in inactive windows
showModeInactiveboolfalseDisplay the mode on the status line in inactive windows
setupTextstring{lineNumber}/{totalLines} {columnNumber}/{totalColumns} {encoding} {lineEnding} {fileType}Text to customize the items displayed in the status line. Please check StatusLineItem

BuildOnSave table

NameTypeDefault ValueDescription
enableboolfalseEnable build on save
workspaceRootstringProject root directory
commandstringOverride commands executed at build

Highlight table

NameTypeDefault ValueDescription
currentLinebooltrueHighlight the current line background
reservedWordArray of string["TODO", "WIP", "NOTE"]Highlight any words
replaceTextbooltrueHighlight replacement text
pairOfParenbooltrueHighlight a pair of brackets
fullWidthSpacebooltrueHighlight full-width spaces
trailingSpacesbooltrueHighlight trailing spaces
currentWordbooltrueHighlight other uses of the current word under the cursor
findCharHighlightbooltrueHighlight f/F/t/T matches
colorCodeHighlightbooltrueHighlight inline color codes (#RRGGBB, #RGB) with their actual color
gitConflictbooltrueHighlight git merge conflict blocks (<<<<<<< / ======= / >>>>>>>)
gitConflictTwoColorbooltrueUse GitHub-style two-color scheme (ours / theirs distinct); false for single red background

AutoBackup table

NameTypeDefault ValueDescription
enableboolfalseEnable automatic backups
idleTimeinteger10Start backup when there is no operation times (seconds)
intervalinteger5Backup interval (minutes)
backupDirstring~/.cache/moe/backupsDirectory to save backup files
dirToExcludeArray of string["/etc"]Exclude dirs for where you don't want to produce automatic backups

QuickRun table

NameTypeDefault ValueDescription
saveBufferWhenQuickRunbooltrueSave buffer when run QuickRun
commandstringCommands to be executed by quick run
timeoutinteger30Command timeout (seconds)
nimAdvancedCommandstringcNim compiler advanced args
clangOptionsstringC lang compileer options. The default compiler is gcc
cppOptionsstringC++ compiler options. The default compiler is gcc
nimOptionsstringNim compiler options
shOptionsstringsh options
bashOptionsstringbash options

Notification table

NameTypeDefault ValueDescription
screenNotificationsbooltrueShow all messages/notifications in the command line
logNotificationsbooltrueRecord all messages/notifications to the log
autoBackupScreenNotifybooltrueAuto backups messages/notifications in the command line
autoBackupLogNotifybooltrueAuto backups messages/notifications to the log
autoSaveScreenNotifybooltrueAuto save messages/notifications in the command line
autoSaveLogNotifybooltrueAuto save messages/notifications to the log
yankScreenNotifybooltrueYank messages/notifications in the command line
yankLogNotifybooltrueYank messages/notifications to the log
deleteScreenNotifybooltrueDelete buffer messages/notifications in the command line
deleteLogNotifybooltrueDelete buffer messages/notifications to the log
saveScreenNotifybooltrueSave messages/notifications in the command line
saveLogNotifybooltrueSave messages/notifications to the log (bool)
quickRunScreenNotifybooltrueQuickRun messages/notifications in the command line
quickRunLogNotifybooltrueQuickRun messages/notifications to the log
buildOnSaveScreenNotifybooltrueBuild on save messages/notifications in the command line
buildOnSaveLogNotifybooltrueBuild on save messages/notifications to the log
filerScreenNotifybooltrueFiler messages/notifications in the command line
filerLogNotifybooltrueFiler messages/notifications to the log
restoreScreenNotifybooltrueRestore messages/notifications in the command line
restoreLogNotifybooltrueRestore messages/notifications to the log
lspScreenNotifybooltrueLsp messages/notifications in the command line
lspLogNotifybooltrueLsp messages/notifications to the log
lspForcePopupbooltrueForce all LSP messages (including logs) to popup notifications
popupNotificationsboolfalseShow notifications as floating popups instead of the command line
popupPositionstring"bottomRight"Popup position: "topRight", "topLeft", "bottomRight", "bottomLeft"
popupTimeoutMsinteger3000Auto-dismiss timeout in milliseconds (minimum: 100)
popupMaxVisibleinteger3Maximum number of simultaneous popup notifications (minimum: 1)
popupMaxWidthinteger60Maximum popup width in characters (minimum: 10)
popupBorderboolfalseShow border around popup notifications

Filer table

NameTypeDefault ValueDescription
showIconsbooltrueShow/Hidden file type icons

Autocomplete table

NameTypeDefault ValueDescription
enablebooltrueEnable/Disable General-purpose autocompletion
windowBorderbooltrueShow borderline on completion window

AutoSave table

NameTypeDefault ValueDescription
enablebooltrueAuto save
intervalinteger5Auto save interval (Minits)

Persist table

NameTypeDefault ValueDescription
exCommandbooltrueSaving command history
exCommandHistoryLimitinteger1000The maximum entries of command history to save
searchbooltrueSaving search history
searchHistoryLimitinteger1000The maximum entries of search history to save
cursorPositionbooltrueSaving last cursor position
bookmarksbooltrueSaving bookmarks

Log table

NameTypeDefault ValueDescription
clearOnStartboolfalseClear existing log file when starting with debug mode

Debug.WindowNode table

NameTypeDefault ValueDescription
enablebooltrueAll WindowNode info
currentWindowbooltrueWhether the current window or not
indexbooltrueWindowNode.index
windowIndexbooltrueWindowNode.windowIndex
bufferIndexbooltrueWindowNode.bufferIndex
parentIndexbooltrueParent node's WindoeNode.index
childLenbooltrueWindoeNode.child.len
splitTypebooltrueWindoeNode.splitType
haveCursesWinbooltrueWhether windoeNode have cursesWindow or not
ybooltrueWindowNode.y
xbooltrueWindowNode.x
hbooltrueWindowNode.h
wbooltrueWindowNode.w
currentLinebooltrueWindowNode.currentLine
currentColumnbooltrueWindowNode.currentColumn
expandedColumnbooltrueWindowNode.expandedColumn
cursorbooltrueWindowNode.curosr

Debug.EditorView table

NameTypeDefault ValueDescription
enablebooltrueAll Editorview info
widthOfLineNumbooltrueEditorview.widthOfLineNum
heightbooltrueEditorview.height
widthbooltrueEditorview.width
originalLineboolfalseEditorview.originalLine
startboolfalseEditorview.start
lengthboolfalseEditorview.length

Debug.BufferStatus table

NameTypeDefault ValueDescription
enablebooltrueAll BufStatus info
bufferIndexbooltrueThe index of BufStatus
pathbooltrueBufStatus.path
openDirbooltrueBufStatus.openDir
currentModebooltrueBufStatus.mode
prevModebooltrueBufStatus.prevMode
languagebooltrueBufStatus.language
encodingbooltrueBufStatus.characterEncoding
countChangebooltrueBufStatus.countChange
cmdLoopbooltrueBufStatus.cmdLoop
lastSaveTimebooltrueBufStatus.lastSaveTime
bufferLenbooltrueBufStatus.buffer.len

Debug.Search table

NameTypeDefault ValueDescription
enablebooltrueSearch debug info

Debug.MacroState table

NameTypeDefault ValueDescription
enablebooltrueMacro state debug info

Debug.Visual table

NameTypeDefault ValueDescription
enablebooltrueVisual selection debug info

Debug.JumpList table

NameTypeDefault ValueDescription
enablebooltrueJump list debug info

Debug.Lsp table

NameTypeDefault ValueDescription
enablebooltrueLSP debug info

Git table

NameTypeDefault ValueDescription
showChangedLinebooltrueLine changes on sidebars
updateIntervalinteger1000Interval for updating Git information. (Milli seconds)

SyntaxChecker table

NameTypeDefault ValueDescription
enableboolfalseSyntax checker

EditorConfig table

NameTypeDefault ValueDescription
enablebooltrueEditorConfig support

SmoothScroll table

NameTypeDefault ValueDescription
enablebooltrueSmooth scroll
frictionfloat80.0Friction coefficient (velocity decay rate)
airDragfloat2.0Air drag coefficient (velocity resistance)

KeyMapping table

Persistent key remappings per editor mode. Uses the same key notation as :nmap/:imap runtime commands.

Values can be either a command name (e.g., "save") or a key sequence (e.g., "Escape").

Supported modes: All, Normal, Insert, Visual, VisualAll, VisualLine, VisualBlock, Replace, Command, Filer, LogViewer, Help, BufferManager, BackupManager, DiffViewer, Config, References, DocumentSymbol, CallHierarchy, RecentFile, Debug, Terminal.

[KeyMapping.All] applies mappings to all modes (except CommandLine). Mode-specific sections override All.

[KeyMapping.VisualAll] applies mappings to all visual modes: Visual, VisualLine, and VisualBlock.

[KeyMapping.Visual], [KeyMapping.VisualLine], and [KeyMapping.VisualBlock] apply to the specific visual mode only and override VisualAll.

Special mode sections (Filer, LogViewer, Help, BufferManager, BackupManager, DiffViewer, Config, References, DocumentSymbol, CallHierarchy, RecentFile, Debug, Terminal) apply mappings to the corresponding special mode and override All.

# Apply to all modes (except CommandLine)
[KeyMapping.All]
"C-s" = "save"

# Mode-specific (overrides All for that mode)
[KeyMapping.Normal]
"C-s" = "save"

[KeyMapping.Insert]
"jj" = "Escape"

# Apply to all visual modes (Visual, VisualLine, VisualBlock)
[KeyMapping.VisualAll]
"C-c" = "Escape"

# Characterwise visual mode only (overrides VisualAll)
[KeyMapping.Visual]
"C-c" = "Escape"

# Line-wise visual mode only (overrides VisualAll)
[KeyMapping.VisualLine]
"C-c" = "Escape"

# Block-wise visual mode only (overrides VisualAll)
[KeyMapping.VisualBlock]
"C-c" = "Escape"

[KeyMapping.Replace]
"C-c" = "Escape"

[KeyMapping.Command]
"C-a" = "Home"

# Special modes
[KeyMapping.Filer]
"C-c" = "Escape"

[KeyMapping.LogViewer]
"C-c" = "Escape"

[KeyMapping.Help]
"C-c" = "Escape"

[KeyMapping.BufferManager]
"C-c" = "Escape"

[KeyMapping.BackupManager]
"C-c" = "Escape"

[KeyMapping.DiffViewer]
"C-c" = "Escape"

[KeyMapping.Config]
"C-c" = "Escape"

[KeyMapping.References]
"C-c" = "Escape"

[KeyMapping.DocumentSymbol]
"C-c" = "Escape"

[KeyMapping.CallHierarchy]
"C-c" = "Escape"

[KeyMapping.RecentFile]
"C-c" = "Escape"

[KeyMapping.Debug]
"C-c" = "Escape"

[KeyMapping.Terminal]
"C-c" = "Escape"

Available commands

CommandDescription
saveSave file
save-and-quitSave and quit
quit-forceQuit without saving
close-windowClose current window
file-newCreate new empty buffer
file-openOpen file (enter filer)
file-closeClose current buffer
filer-openOpen file explorer
undoUndo
redoRedo
move-leftMove cursor left
move-rightMove cursor right
move-upMove cursor up
move-downMove cursor down
page-upPage up
page-downPage down
half-page-upHalf page up
half-page-downHalf page down
line-homeMove to line start
line-endMove to line end
line-first-non-blankMove to first non-blank
goto-first-lineGo to first line
goto-last-lineGo to last line
word-forwardMove to next word
word-backwardMove to previous word
word-endMove to end of word
paragraph-forwardMove to next paragraph
paragraph-backwardMove to previous paragraph
search-nextNext search match
search-prevPrevious search match
delete-lineDelete line
yank-lineYank line
paste-afterPaste after cursor
paste-beforePaste before cursor
clipboard-copyCopy selected text to system clipboard
clipboard-pastePaste text from system clipboard
clipboard-cutCut selected text to system clipboard
join-linesJoin lines
indent-lineIndent line
dedent-lineDedent line
fold-openOpen fold
fold-closeClose fold
fold-toggleToggle fold
increment-numberIncrement number
decrement-numberDecrement number
macro-recordStart/stop macro recording
macro-playPlay macro from register
register-selectSelect register for next command
window-nextSwitch to next window
window-prevSwitch to previous window
quickrunRun QuickRun
lsp-goto-definitionLSP go to definition
lsp-goto-declarationLSP go to declaration
lsp-goto-type-definitionLSP go to type definition
lsp-goto-implementationLSP go to implementation
lsp-find-referencesLSP find references
lsp-hoverLSP hover info
lsp-renameLSP rename symbol
lsp-document-symbolLSP document symbols
lsp-document-linkLSP follow document link
lsp-selection-rangeLSP selection range
lsp-codelens-executeLSP execute CodeLens
lsp-call-hierarchyLSP incoming call hierarchy
lsp-call-hierarchy-outgoingLSP outgoing call hierarchy
buffer-next-tabNext buffer tab
buffer-prev-tabPrevious buffer tab
insert-backspaceDelete character before cursor (Insert mode)
insert-deleteDelete character at cursor (Insert mode)
insert-newlineInsert newline (Insert mode)

Application order

Key mappings are applied in this order (later overrides earlier):

  1. Built-in default bindings
  2. keybindings.toml
  3. moerc.toml [KeyMapping.All]
  4. moerc.toml [KeyMapping.VisualAll]
  5. moerc.toml mode-specific sections ([KeyMapping.Normal], [KeyMapping.Visual], [KeyMapping.Filer], etc.)
  6. Runtime :nmap/:imap/:cmap commands

Also see Runtime Key Mapping for session-only mappings.

keybindings.toml

An alternative keybinding configuration file with typed commands and richer options than [KeyMapping].

The file is searched in the following locations (in order):

  1. $XDG_CONFIG_HOME/moe/keybindings.toml
  2. ~/.config/moe/keybindings.toml
  3. ./keybindings.toml (current directory)

Each keybinding is defined as a [[keybinding]] entry.

Required fields

FieldTypeDescription
modestringEditor mode (see below)
keystringKey or key sequence to bind

Supported modes

Individual modes: normal, insert, visual, visualline, visualblock, replace, command, filer, quickrun, logviewer, help, buffermanager, backupmanager, diffviewer, recentfile, debug, config, references, documentsymbol, callhierarchy, terminal.

Meta modes:

  • all - All modes except Command mode
  • visualall - Visual, VisualLine, VisualBlock

Command types

command_typeRequired fieldDescription
action (default)commandGeneral editor action
mode_switchtarget_modeSwitch editor mode
overlay_switchtarget_overlaySwitch to overlay (one of: command, search, rename)
text_objectcommandText object operation
operatorcommandVim-style operator
customcommandUser-defined command
key_sequencetarget_keysRemap key to another key sequence

Optional field args (array of strings) is available for action, text_object, operator, and custom types.

Key notation

  • Single character: "h", "j"
  • Modifiers: "C-s" (Ctrl), "M-x" (Alt/Meta), "S-Tab" (Shift), "C-M-s" (combined)
  • Special keys: "Escape", "Enter", "Tab", "Backspace", "Delete", "Space", "Up", "Down", "Left", "Right", "PageUp", "PageDown", "Home", "End", "F1"-"F12"
  • Multi-key sequences: "g d" (space-separated), "jj" (Vim-style concatenated)

Examples

# Action: bind Ctrl-s to save
[[keybinding]]
mode = "normal"
key = "C-s"
command = "save"

# Mode switch: Escape to normal mode
[[keybinding]]
mode = "insert"
key = "Escape"
command_type = "mode_switch"
target_mode = "normal"

# Overlay switch: open search overlay
[[keybinding]]
mode = "normal"
key = "C-f"
command_type = "overlay_switch"
target_overlay = "search"

# Key sequence remap: jj to Escape in insert mode
[[keybinding]]
mode = "insert"
key = "jj"
command_type = "key_sequence"
target_keys = "Escape"

# Multi-key sequence: g d to goto definition
[[keybinding]]
mode = "normal"
key = "g d"
command = "lsp-goto-definition"

# All modes (except Command mode)
[[keybinding]]
mode = "all"
key = "C-q"
command = "quit-force"

# Custom command with args
[[keybinding]]
mode = "normal"
key = "C-p"
command_type = "custom"
command = "search.forward"
args = ["case_sensitive"]

Available commands

The same commands as [KeyMapping] are available. See Available commands above.

Lsp table

NameTypeDefault ValueDescription
enableboolfalseLSP (Language Server Protocol) Client
timeoutinteger5000Timeout in milliseconds for LSP requests (0 = no timeout)

Lsp.Completion table

NameTypeDefault ValueDescription
enablebooltrueLSP Completion

Lsp.Declaration table

NameTypeDefault ValueDescription
enablebooltrueLSP Goto Declaration
openWindowboolfalseOpen a new window and jump

Lsp.Definition table

NameTypeDefault ValueDescription
enablebooltrueLSP Goto Definition
openWindowboolfalseOpen a new window and jump

Lsp.TypeDefinition table

NameTypeDefault ValueDescription
enablebooltrueLSP Type Definition
openWindowboolfalseOpen a new window and jump

Lsp.Implementation table

NameTypeDefault ValueDescription
enablebooltrueLSP Implementation
openWindowboolfalseOpen a new window and jump

Lsp.Diagnostics table

NameTypeDefault ValueDescription
enablebooltrueLSP Diagnostics
autoHoverbooltrueAutomatically show diagnostic messages in hover popup when cursor is on a diagnostic
autoHoverDelayinteger300Delay in milliseconds before auto hover shows (0 = no delay)

Lsp.SignatureHelp table

NameTypeDefault ValueDescription
enablebooltrueLSP Signature Help

Lsp.DocumentFormatting table

NameTypeDefault ValueDescription
enablebooltrueLSP Document Formatting

Lsp.FoldingRange table

NameTypeDefault ValueDescription
enablebooltrueLSP Folding Range

Lsp.SelectionRange table

NameTypeDefault ValueDescription
enablebooltrueLSP Selection Range

Lsp.DocumentSymbol table

NameTypeDefault ValueDescription
enablebooltrueLSP Document Symbol

Lsp.Hover table

NameTypeDefault ValueDescription
enablebooltrueLSP Hover

Lsp.InlayHint table

NameTypeDefault ValueDescription
enablebooltrueLSP InlayHint

Lsp.InlineValue table

NameTypeDefault ValueDescription
enableboolfalseLSP InlineValue

Lsp.References table

NameTypeDefault ValueDescription
enablebooltrueLSP Find References

Lsp.CallHierarchy table

NameTypeDefault ValueDescription
enablebooltrueLSP Call Hierarchy

Lsp.DocumentHighlight table

NameTypeDefault ValueDescription
enablebooltrueLSP Document Highlight
NameTypeDefault ValueDescription
enablebooltrueLSP Document Link

Lsp.CodeLens table

NameTypeDefault ValueDescription
enableboolfalseLSP Code Lens

Lsp.Rename table

NameTypeDefault ValueDescription
enablebooltrueLSP Rename

Lsp.SemanticTokens table

NameTypeDefault ValueDescription
enablebooltrueLSP Semantic Tokens

Lsp.ExecuteCommand table

NameTypeDefault ValueDescription
enablebooltrueLSP Execute Command

LspTraceLevel

  • type: string
Name
off
messages
verbose

Lsp.{languageId} table

NameTypeDefault ValueDescription
extensionsArray of stringFile extensions
commandstringLSP server command
traceLspTraceLeveloffLSP trace level for debugging
rustAnalyzerRunSinglebooltruerust-analyzer.runSingle. Only effective with rust-analyzer and if Lsp.CodeLens is enabled.
rustAnalyzerDebugSinglebooltruerust-analyzer.debugSingle. Only effective with rust-analyzer and if Lsp.CodeLens is enabled.

Please check more details

StartUp.FileOpen table

NameTypeDefault ValueDescription
autoSplitbooltrueDisplay all buffers in multiple views if multiple paths are received when starting the editor
splitTypestringverticalThe split type for StartUp.FileOpen.autoSplit

FileTree table

NameTypeDefault ValueDescription
widthint30Width of the fileTree sidebar

StartUp.FileTree table

NameTypeDefault ValueDescription
enableboolfalseOpen the fileTree sidebar automatically on startup

CommandAliases table

Define custom aliases for built-in editor commands. Each key is the alias name, and the value is a table with command and optional description. Built-in aliases can be overridden.

Example:

[CommandAliases]
x = { command = "quit" }
ww = { command = "saveall", description = "Save all buffers" }
fmt = { command = "lspformat", description = "Format code with LSP" }
KeyTypeRequiredDescription
commandstringyesBuilt-in command name (see table below)
descriptionstringnoCustom description shown in completion popup

Available command names:

NameDescription
quitQuit
quitallQuit all
saveSave
saveallSave all
saveandquitSave and quit
saveallandquitSave all and quit
editEdit file
enewNew empty buffer
setSet option
helpHelp
substituteSubstitute
vsplitVertical split
hsplitHorizontal split
newNew buffer in horizontal split
vnewNew buffer in vertical split
buffernextNext buffer
bufferprevPrevious buffer
bufferfirstFirst buffer
bufferlastLast buffer
bufferdeleteDelete buffer
bufferSwitch to buffer
stripwhitespaceStrip trailing whitespace
filerOpen file explorer
logOpen log viewer
quickrunQuick run
buffermanagerOpen buffer manager
backupOpen backup manager
recentOpen recent file
nohClear search highlight
shellExecute shell command
backgroundPause editor
jumplistShow jump list
changesShow change list
bookmarksShow bookmarks
buildBuild
debugDebug mode
configConfiguration mode
putconfigfileWrite sample config file
manShow manual
themeChange theme
terminalOpen terminal
onlyClose all other windows
lsplogLSP log viewer
lspformatLSP format
lsprestartLSP restart
lspfoldLSP folding range
lspexecommandLSP execute command
lspcallhierarchyincomingLSP incoming calls
lspcallhierarchyoutgoingLSP outgoing calls

ShellCommands table

Define shell commands that can be invoked from command mode. Each key is the command name, and the value is a table with command and optional description. Arguments are appended to the shell command. Built-in commands and aliases always take priority over shell commands.

Example:

[ShellCommands]
nimbuild = { command = "nimble build", description = "Build project" }
nimtest = { command = "nimble test" }
gitlog = { command = "git log --oneline -20", description = "Recent commits" }
KeyTypeRequiredDescription
commandstringyesShell command to execute
descriptionstringnoCustom description shown in completion popup (default: Shell: <command>)

Usage:

  • :nimbuild runs nimble build
  • :nimbuild --release runs nimble build --release

Theme table

NameTypeDefault ValueDescription
kindThemeKindconfigTheme kind
pathstring~/.config/moe/themes/dark.tomlA path of user theme. Also Please set "config" to Theme.kind.

Color table (Theme)

Put the toml file that describes the Colors table in the path specified by Theme.path in moerc.toml.

moe supports 24 bit color and set in hexadecimal (#000000 ~ #ffffff). And, termDefault can be used for both foreground and background to use the terminal's default color.

NameDescription
foregroundDefault text color
backgroundDefault background olor
currentLineBgBackground color of the editor current line
currentColumnBgBackground color of the editor current column
lineNumText color of line numbers
lineNumBgBackground color of line numbers
currentLineNumText color of current line number highlighting
currentLineNumBgBackground color of current line number highlighting
statusLineNormalModeText color of Status line in Normal mode
statusLineNormalModeBgBackground color of Status line in Normal mode
statusLineNormalModeLabelMode label text color in status line in Normal mode
statusLineNormalModeLabelBgMode label background color in status line in Normal mode
statusLineNormalModeInactiveText color of status line in Normal mode when inactive
statusLineNormalModeInactiveBgBackground color of status line in Normal mode when inactive
statusLineInsertModeText color of status line in Insert mode
statusLineInsertModeBgBackground color of status line in Insert mode
statusLineInsertModeLabelMode label text color in status line in Insert mode
statusLineInsertModeLabelBgMode label background color in status line in Insert mode
statusLineInsertModeInactiveText color of status line in Insert mode when inactive
statusLineInsertModeInactiveBgBackground color of status line in Insert mode when inactive
statusLineVisualModeText color of Status line in Visual mode
statusLineVisualModeBgBackground color of Status line in Visual mode
statusLineVisualModeLabelMode label text color in status line in visual mode
statusLineVisualModeLabelBgMode label background color in status line in visual mode
statusLineVisualModeInactiveText color of Status line in Visual mode when inactive
statusLineVisualModeInactiveBgBackground color of status line in Visual mode when inactive
statusLineReplaceModeText color of Status line Replace in mode
statusLineReplaceModeBgBackground color of status line Replace in mode
statusLineReplaceModeLabelMode label text color in status line in Replace mode
statusLineReplaceModeLabelBgMode label background color in status line in Replace mode
statusLineReplaceModeInactiveText color of Status line Replace in mode when inactive
statusLineReplaceModeInactiveBgBackground color of Status line Replace in mode when inactive
statusLineFilerModeText color of Status line in Filer mode
statusLineFilerModeBgBackground color of Status line in Filer mode
statusLineFilerModeLabelMode label text color in status line in Filer mode
statusLineFilerModeLabelBgMode label background color in status line in Filer mode
statusLineFilerModeInactiveText color of status line in Filer mode when inactive
statusLineFilerModeInactiveBgBackground color of Status line in Filer mode when inactive
statusLineExModeText color of Status line in Command mode
statusLineExModeBgBackground color of Status line in Command mode
statusLineExModeLabelMode label text color in status line in Command mode
statusLineExModeLabelBgMode label background color in status line in Command mode
statusLineExModeInactiveText color of status line in Command mode when inactive
statusLineExModeInactiveBgBackground color of Status line in Command mode when inactive
statusLineGitChangedLinesText color of git changed lines count
statusLineGitChangedLinesBgBackground color of git changed lines count
statusLineGitBranchText color of git branch
statusLineGitBranchBgBackground color of git branch
tabText color of tab title in tab line
tabBgBackground color of tab title in tab line
currentTabText color of current tab title in tab line
currentTabBgBackground color of current tab title in tab line
commandLineText color in command line
commandLineBgBackground color in command line
errorMessageText color of error messages
errorMessageBgBackground color of error messages
warnMessageText color of warning messages
warnMessageBgBackground color of warning messages
searchResultText color of search result highlighting
searchResultBgBackground color of search result highlighting
selectAreaText color selected in visual mode
selectAreaBgBackground color selected in visual mode
keywordSyntax highlighting color
functionNameSyntax highlighting color
typeNameSyntax highlighting color
booleanSyntax highlighting color
specialVarSyntax highlighting color
builtinSyntax highlighting color
charLitSyntax highlighting color
stringLitSyntax highlighting color
binNumberSyntax highlighting color
decNumberSyntax highlighting color
floatNumberSyntax highlighting color
hexNumberSyntax highlighting color
octNumberSyntax highlighting color
commentSyntax highlighting color
longCommentSyntax highlighting color
docCommentSyntax highlighting color
docLongCommentSyntax highlighting color
whitespaceSyntax highlighting color
preprocessorSyntax highlighting color
pragmaSyntax highlighting color
identifierSyntax highlighting color
tableSyntax highlighting color
dateSyntax highlighting color
logErrorLog file error level highlighting color
logWarningLog file warning level highlighting color
logInfoLog file info/debug level highlighting color
logUuidLog file UUID highlighting color
operatorSyntax highlighting color
markdownCodeBlockMarkdown code block text color
markdownCodeBlockBgMarkdown code block background color
namespaceSyntax highlighting color (LSP Semantic Tokens)
classNameSyntax highlighting color (LSP Semantic Tokens)
enumNameSyntax highlighting color (LSP Semantic Tokens)
enumMemberSyntax highlighting color (LSP Semantic Tokens)
interfaceNameSyntax highlighting color (LSP Semantic Tokens)
typeParameterSyntax highlighting color (LSP Semantic Tokens)
parameterSyntax highlighting color (LSP Semantic Tokens)
variableSyntax highlighting color (LSP Semantic Tokens)
propertySyntax highlighting color (LSP Semantic Tokens)
stringSyntax highlighting color (LSP Semantic Tokens)
eventSyntax highlighting color (LSP Semantic Tokens)
functionSyntax highlighting color (LSP Semantic Tokens)
methodSyntax highlighting color (LSP Semantic Tokens)
macroSyntax highlighting color (LSP Semantic Tokens)
regexpSyntax highlighting color (LSP Semantic Tokens)
decoratorSyntax highlighting color (LSP Semantic Tokens)
angleSyntax highlighting color (LSP Semantic Tokens)
arithmeticSyntax highlighting color (LSP Semantic Tokens)
attributeSyntax highlighting color (LSP Semantic Tokens)
attributeBracketSyntax highlighting color (LSP Semantic Tokens)
bitwiseSyntax highlighting color (LSP Semantic Tokens)
braceSyntax highlighting color (LSP Semantic Tokens)
bracketSyntax highlighting color (LSP Semantic Tokens)
builtinAttributeSyntax highlighting color (LSP Semantic Tokens)
builtinTypeSyntax highlighting color (LSP Semantic Tokens)
colonSyntax highlighting color (LSP Semantic Tokens)
commaSyntax highlighting color (LSP Semantic Tokens)
comparisonSyntax highlighting color (LSP Semantic Tokens)
constParameterSyntax highlighting color (LSP Semantic Tokens)
deriveSyntax highlighting color (LSP Semantic Tokens)
deriveHelperSyntax highlighting color (LSP Semantic Tokens)
dotSyntax highlighting color (LSP Semantic Tokens)
escapeSequenceSyntax highlighting color (LSP Semantic Tokens)
invalidEscapeSequenceSyntax highlighting color (LSP Semantic Tokens)
formatSpecifierSyntax highlighting color (LSP Semantic Tokens)
genericSyntax highlighting color (LSP Semantic Tokens)
labelSyntax highlighting color (LSP Semantic Tokens)
lifetimeSyntax highlighting color (LSP Semantic Tokens)
logicalSyntax highlighting color (LSP Semantic Tokens)
macroBangSyntax highlighting color (LSP Semantic Tokens)
parenthesisSyntax highlighting color (LSP Semantic Tokens)
punctuationSyntax highlighting color
selfKeywordSyntax highlighting color (LSP Semantic Tokens)
selfTypeKeywordSyntax highlighting color (LSP Semantic Tokens)
semicolonSyntax highlighting color (LSP Semantic Tokens)
typeAliasSyntax highlighting color (LSP Semantic Tokens)
toolModuleSyntax highlighting color (LSP Semantic Tokens)
unionSyntax highlighting color (LSP Semantic Tokens)
unresolvedReferenceSyntax highlighting color (LSP Semantic Tokens)
inlayHintLSP inlay hint text color
inlineValueLSP inline value text color
codeLensLSP code lens text color
currentFileText color of current file name in Filer mode
currentFileBgBackground color of current file name in Filer mode
fileText color of file name in Filer mode
fileBgBackground color of file name in Filer mode
dirText of directory name in filer mode
dirBgBackground of directory name in filer mode
pcLinkText of symbolic links to file in filer mode
pcLinkBgBackground of symbolic links to file in filer mode
popupWindowPop-up window text color
popupWindowBgPop-up window background color
popupWinCurrentLinePop-up window current line text color
popupWinCurrentLineBgPop-up window current line background color
replaceTextText color of replacing text
replaceTextBgBackground color of replacing text
parenPairPair of bracket highlighting
parenPairBgPair of bracket highlighting
currentWordCurrent word highlighting
currentWordBgCurrent word highlighting
findCharMatchf/F/t/T match highlighting
findCharMatchBgf/F/t/T match highlighting
highlightFullWidthSpaceFull-width space color
highlightTrailingSpacesTrailing space color
reservedWordReserved word text color
reservedWordBgReserved word text color
syntaxCheckInfoA info color of syntax checker result highlighting
syntaxCheckInfoBgA info color of syntax checker result highlighting
syntaxCheckHintA hint color of syntax checker result highlighting
syntaxCheckHintBgA hint color of syntax checker result highlighting
syntaxCheckWarnA warning color of syntax checker result highlighting
syntaxCheckWarnBgA warning color of syntax checker result highlighting
syntaxCheckErrAn error color of syntax checker result highlighting
syntaxCheckErrBgAn error color of syntax checker result highlighting
gitConflictSingle-color fallback for git conflict block (used when gitConflictTwoColor = false)
gitConflictBgSingle-color fallback background for git conflict block
gitConflictMarkerForeground color for marker lines (<<<<<<<, |||||||, =======, >>>>>>>)
gitConflictMarkerBgBackground color for marker lines
gitConflictOursForeground color for the "ours" side of a conflict block
gitConflictOursBgBackground color for the "ours" side
gitConflictBaseForeground color for the diff3 "base" side of a conflict block
gitConflictBaseBgBackground color for the diff3 "base" side
gitConflictTheirsForeground color for the "theirs" side of a conflict block
gitConflictTheirsBgBackground color for the "theirs" side
diffViewerAddedLineAdded line color on Diff viewer
diffViewerAddedLineBgAdded line color on Diff viewer
diffViewerDeletedLineDeleted line color on Diff viewer
diffViewerDeletedLineBgDeleted line color on Diff viewer
backupManagerCurrentLineCurrent line color on Backup manager
backupManagerCurrentLineBgCurrent line color on Backup manager
configModeCurrentLineCurrent line color in Configuration mode
configModeCurrentLineBgCurrent line color in Configuration mode
foldingLineFolding line text color
foldingLineBgFolding line background color
sidebarGitAddedSignAn added lines sign color of Git in sidebars
sidebarGitAddedSignBgAn added lines sign color of Git in sidebars
sidebarGitDeletedSignA deleted lines sign color of Git in sidebars
sidebarGitDeletedSignBgA deleted lines sign color of Git in sidebars
sidebarGitChangedSignA changed lines sign color of Git in sidebars
sidebarGitChangedSignBgA changed lines sign color of Git in sidebars
sidebarGitConflictSignA merge conflict sign color of Git in sidebars
sidebarGitConflictSignBgA merge conflict sign color of Git in sidebars
sidebarSyntaxCheckInfoSignA info sign color of syntax checker results in sidebars
sidebarSyntaxCheckInfoSignBgA info sign color of syntax checker results in sidebars
sidebarSyntaxCheckHintSignA hint sign color of syntax checker results in sidebars
sidebarSyntaxCheckHintSignBgA hint sign color of syntax checker results in sidebars
sidebarSyntaxCheckWarnSignA warning color of syntax checker results in sidebars
sidebarSyntaxCheckWarnSignBgA warning color of syntax checker results in sidebars
sidebarSyntaxCheckErrSignAn error color of syntax checker results in sidebars
sidebarSyntaxCheckErrSignBgAn error color of syntax checker results in sidebars
sidebarSessionModifiedSignA modified line sign color in sidebars
sidebarSessionModifiedSignBgA modified line sign background color in sidebars
sidebarSessionInsertedSignAn inserted line sign color in sidebars
sidebarSessionInsertedSignBgAn inserted line sign background color in sidebars