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
| Name | Description |
|---|---|
| gapBuffer | GapBuffer (default) |
| sqrtDecomp | Sqrt Decomposition |
| rope | Rope (B-tree) |
| pieceTable | Piece Table (Red-Black Tree) |
ThemeKind
- type: string
| Name | Description |
|---|---|
| default | The default theme |
| vscode | VSCode theme |
| config | User theme. Also please set Theme.path |
Standard table
| Name | Type | Default Value | Description |
|---|---|---|---|
| number | bool | true | Display line numbers |
| relativeNumber | bool | false | Display relative line numbers |
| statusLine | bool | true | Display status lines |
| syntax | bool | true | Enable syntax highlighting |
| indentationLines | bool | true | Enable indentation lines |
| tabStop | integer | 2 | Tab width |
| shiftWidth | integer | 0 | Indent width (0 = use tabStop) |
| softTabStop | integer | 0 | Tab/Backspace width in insert mode (0 = use tabStop) |
| expandTab | bool | false | Expand tabs to spaces |
| sidebar | bool | true | Enable Sidebars for editor views |
| scrollbar | bool | false | Enable scrollbar on the right edge of windows |
| scrollbarWidth | integer | 1 | Scrollbar width in characters (0 = hidden) |
| bookmarkMarker | string | "♥ " | Bookmark indicator symbol in sidebars |
| showModifiedLines | bool | true | Show modified/inserted line indicators in sidebars |
| ignorecase | bool | true | Enable ignorecase when searching |
| smartcase | bool | true | Enable smartcase when searching |
| autoCloseParen | bool | true | Automatic closing brackets |
| autoDeleteParen | bool | true | Automatic delete brackets |
| autoIndent | bool | true | Automatic indentation |
| disableChangeCursor | bool | false | Disable change of the cursor shape |
| defaultCursor | CursorShape | terminalDefault | The cursor shape of the terminal emulator you are using |
| normalModeCursor | CursorShape | blinkBlock | The cursor shape in Normal mode |
| insertModeCursor | CursorShape | blinkIbeam | The cursor shape in insert mode |
| liveReloadOfConf | bool | false | Enable live reload of the configuration file |
| liveReloadOfFile | bool | true | Enable live reload of opening files |
| incrementalSearch | bool | true | Enable incremental search |
| popupWindowInExmode | bool | true | Show Pop-up window in Command mode |
| colorMode | TerminalColorMode | 256 | Terminal color mode |
| mouse | bool | false | Enable mouse cursor movement |
| timeoutlen | integer | 1000 | Key mapping timeout in milliseconds (0 = no timeout) |
| bufferBackend | BufferBackend | auto | Buffer data structure. "auto" selects backend based on file size |
Clipboard table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | Enable system clipboard |
| tool | ClipbloardTool | xsel | The clipboard tool for Linux |
TabLine table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | Enable tab line |
StatusLine table
| Name | Type | Default Value | Description |
|---|---|---|---|
| multipleStatusLine | bool | true | Show multiple status lines |
| merge | bool | false | Enable merge the status line with the command line |
| mode | bool | true | Display the current mode |
| filename | bool | true | Display the filename |
| chanedMark | bool | true | Display the buffer changed mark |
| directory | bool | true | Display the directory of the path |
| gitBranchName | bool | true | Display the current git branch name |
| gitChangedLines | bool | true | Display number of changed lines |
| showGitInactive | bool | false | Display the git branch name on the status line in inactive windows |
| showModeInactive | bool | false | Display the mode on the status line in inactive windows |
| setupText | string | {lineNumber}/{totalLines} {columnNumber}/{totalColumns} {encoding} {lineEnding} {fileType} | Text to customize the items displayed in the status line. Please check StatusLineItem |
BuildOnSave table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | false | Enable build on save |
| workspaceRoot | string | Project root directory | |
| command | string | Override commands executed at build |
Highlight table
| Name | Type | Default Value | Description |
|---|---|---|---|
| currentLine | bool | true | Highlight the current line background |
| reservedWord | Array of string | ["TODO", "WIP", "NOTE"] | Highlight any words |
| replaceText | bool | true | Highlight replacement text |
| pairOfParen | bool | true | Highlight a pair of brackets |
| fullWidthSpace | bool | true | Highlight full-width spaces |
| trailingSpaces | bool | true | Highlight trailing spaces |
| currentWord | bool | true | Highlight other uses of the current word under the cursor |
| findCharHighlight | bool | true | Highlight f/F/t/T matches |
| colorCodeHighlight | bool | true | Highlight inline color codes (#RRGGBB, #RGB) with their actual color |
| gitConflict | bool | true | Highlight git merge conflict blocks (<<<<<<< / ======= / >>>>>>>) |
| gitConflictTwoColor | bool | true | Use GitHub-style two-color scheme (ours / theirs distinct); false for single red background |
AutoBackup table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | false | Enable automatic backups |
| idleTime | integer | 10 | Start backup when there is no operation times (seconds) |
| interval | integer | 5 | Backup interval (minutes) |
| backupDir | string | ~/.cache/moe/backups | Directory to save backup files |
| dirToExclude | Array of string | ["/etc"] | Exclude dirs for where you don't want to produce automatic backups |
QuickRun table
| Name | Type | Default Value | Description |
|---|---|---|---|
| saveBufferWhenQuickRun | bool | true | Save buffer when run QuickRun |
| command | string | Commands to be executed by quick run | |
| timeout | integer | 30 | Command timeout (seconds) |
| nimAdvancedCommand | string | c | Nim compiler advanced args |
| clangOptions | string | C lang compileer options. The default compiler is gcc | |
| cppOptions | string | C++ compiler options. The default compiler is gcc | |
| nimOptions | string | Nim compiler options | |
| shOptions | string | sh options | |
| bashOptions | string | bash options |
Notification table
| Name | Type | Default Value | Description |
|---|---|---|---|
| screenNotifications | bool | true | Show all messages/notifications in the command line |
| logNotifications | bool | true | Record all messages/notifications to the log |
| autoBackupScreenNotify | bool | true | Auto backups messages/notifications in the command line |
| autoBackupLogNotify | bool | true | Auto backups messages/notifications to the log |
| autoSaveScreenNotify | bool | true | Auto save messages/notifications in the command line |
| autoSaveLogNotify | bool | true | Auto save messages/notifications to the log |
| yankScreenNotify | bool | true | Yank messages/notifications in the command line |
| yankLogNotify | bool | true | Yank messages/notifications to the log |
| deleteScreenNotify | bool | true | Delete buffer messages/notifications in the command line |
| deleteLogNotify | bool | true | Delete buffer messages/notifications to the log |
| saveScreenNotify | bool | true | Save messages/notifications in the command line |
| saveLogNotify | bool | true | Save messages/notifications to the log (bool) |
| quickRunScreenNotify | bool | true | QuickRun messages/notifications in the command line |
| quickRunLogNotify | bool | true | QuickRun messages/notifications to the log |
| buildOnSaveScreenNotify | bool | true | Build on save messages/notifications in the command line |
| buildOnSaveLogNotify | bool | true | Build on save messages/notifications to the log |
| filerScreenNotify | bool | true | Filer messages/notifications in the command line |
| filerLogNotify | bool | true | Filer messages/notifications to the log |
| restoreScreenNotify | bool | true | Restore messages/notifications in the command line |
| restoreLogNotify | bool | true | Restore messages/notifications to the log |
| lspScreenNotify | bool | true | Lsp messages/notifications in the command line |
| lspLogNotify | bool | true | Lsp messages/notifications to the log |
| lspForcePopup | bool | true | Force all LSP messages (including logs) to popup notifications |
| popupNotifications | bool | false | Show notifications as floating popups instead of the command line |
| popupPosition | string | "bottomRight" | Popup position: "topRight", "topLeft", "bottomRight", "bottomLeft" |
| popupTimeoutMs | integer | 3000 | Auto-dismiss timeout in milliseconds (minimum: 100) |
| popupMaxVisible | integer | 3 | Maximum number of simultaneous popup notifications (minimum: 1) |
| popupMaxWidth | integer | 60 | Maximum popup width in characters (minimum: 10) |
| popupBorder | bool | false | Show border around popup notifications |
Filer table
| Name | Type | Default Value | Description |
|---|---|---|---|
| showIcons | bool | true | Show/Hidden file type icons |
Autocomplete table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | Enable/Disable General-purpose autocompletion |
| windowBorder | bool | true | Show borderline on completion window |
AutoSave table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | Auto save |
| interval | integer | 5 | Auto save interval (Minits) |
Persist table
| Name | Type | Default Value | Description |
|---|---|---|---|
| exCommand | bool | true | Saving command history |
| exCommandHistoryLimit | integer | 1000 | The maximum entries of command history to save |
| search | bool | true | Saving search history |
| searchHistoryLimit | integer | 1000 | The maximum entries of search history to save |
| cursorPosition | bool | true | Saving last cursor position |
| bookmarks | bool | true | Saving bookmarks |
Log table
| Name | Type | Default Value | Description |
|---|---|---|---|
| clearOnStart | bool | false | Clear existing log file when starting with debug mode |
Debug.WindowNode table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | All WindowNode info |
| currentWindow | bool | true | Whether the current window or not |
| index | bool | true | WindowNode.index |
| windowIndex | bool | true | WindowNode.windowIndex |
| bufferIndex | bool | true | WindowNode.bufferIndex |
| parentIndex | bool | true | Parent node's WindoeNode.index |
| childLen | bool | true | WindoeNode.child.len |
| splitType | bool | true | WindoeNode.splitType |
| haveCursesWin | bool | true | Whether windoeNode have cursesWindow or not |
| y | bool | true | WindowNode.y |
| x | bool | true | WindowNode.x |
| h | bool | true | WindowNode.h |
| w | bool | true | WindowNode.w |
| currentLine | bool | true | WindowNode.currentLine |
| currentColumn | bool | true | WindowNode.currentColumn |
| expandedColumn | bool | true | WindowNode.expandedColumn |
| cursor | bool | true | WindowNode.curosr |
Debug.EditorView table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | All Editorview info |
| widthOfLineNum | bool | true | Editorview.widthOfLineNum |
| height | bool | true | Editorview.height |
| width | bool | true | Editorview.width |
| originalLine | bool | false | Editorview.originalLine |
| start | bool | false | Editorview.start |
| length | bool | false | Editorview.length |
Debug.BufferStatus table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | All BufStatus info |
| bufferIndex | bool | true | The index of BufStatus |
| path | bool | true | BufStatus.path |
| openDir | bool | true | BufStatus.openDir |
| currentMode | bool | true | BufStatus.mode |
| prevMode | bool | true | BufStatus.prevMode |
| language | bool | true | BufStatus.language |
| encoding | bool | true | BufStatus.characterEncoding |
| countChange | bool | true | BufStatus.countChange |
| cmdLoop | bool | true | BufStatus.cmdLoop |
| lastSaveTime | bool | true | BufStatus.lastSaveTime |
| bufferLen | bool | true | BufStatus.buffer.len |
Debug.Search table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | Search debug info |
Debug.MacroState table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | Macro state debug info |
Debug.Visual table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | Visual selection debug info |
Debug.JumpList table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | Jump list debug info |
Debug.Lsp table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | LSP debug info |
Git table
| Name | Type | Default Value | Description |
|---|---|---|---|
| showChangedLine | bool | true | Line changes on sidebars |
| updateInterval | integer | 1000 | Interval for updating Git information. (Milli seconds) |
SyntaxChecker table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | false | Syntax checker |
EditorConfig table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | EditorConfig support |
SmoothScroll table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | Smooth scroll |
| friction | float | 80.0 | Friction coefficient (velocity decay rate) |
| airDrag | float | 2.0 | Air 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
| Command | Description |
|---|---|
| save | Save file |
| save-and-quit | Save and quit |
| quit-force | Quit without saving |
| close-window | Close current window |
| file-new | Create new empty buffer |
| file-open | Open file (enter filer) |
| file-close | Close current buffer |
| filer-open | Open file explorer |
| undo | Undo |
| redo | Redo |
| move-left | Move cursor left |
| move-right | Move cursor right |
| move-up | Move cursor up |
| move-down | Move cursor down |
| page-up | Page up |
| page-down | Page down |
| half-page-up | Half page up |
| half-page-down | Half page down |
| line-home | Move to line start |
| line-end | Move to line end |
| line-first-non-blank | Move to first non-blank |
| goto-first-line | Go to first line |
| goto-last-line | Go to last line |
| word-forward | Move to next word |
| word-backward | Move to previous word |
| word-end | Move to end of word |
| paragraph-forward | Move to next paragraph |
| paragraph-backward | Move to previous paragraph |
| search-next | Next search match |
| search-prev | Previous search match |
| delete-line | Delete line |
| yank-line | Yank line |
| paste-after | Paste after cursor |
| paste-before | Paste before cursor |
| clipboard-copy | Copy selected text to system clipboard |
| clipboard-paste | Paste text from system clipboard |
| clipboard-cut | Cut selected text to system clipboard |
| join-lines | Join lines |
| indent-line | Indent line |
| dedent-line | Dedent line |
| fold-open | Open fold |
| fold-close | Close fold |
| fold-toggle | Toggle fold |
| increment-number | Increment number |
| decrement-number | Decrement number |
| macro-record | Start/stop macro recording |
| macro-play | Play macro from register |
| register-select | Select register for next command |
| window-next | Switch to next window |
| window-prev | Switch to previous window |
| quickrun | Run QuickRun |
| lsp-goto-definition | LSP go to definition |
| lsp-goto-declaration | LSP go to declaration |
| lsp-goto-type-definition | LSP go to type definition |
| lsp-goto-implementation | LSP go to implementation |
| lsp-find-references | LSP find references |
| lsp-hover | LSP hover info |
| lsp-rename | LSP rename symbol |
| lsp-document-symbol | LSP document symbols |
| lsp-document-link | LSP follow document link |
| lsp-selection-range | LSP selection range |
| lsp-codelens-execute | LSP execute CodeLens |
| lsp-call-hierarchy | LSP incoming call hierarchy |
| lsp-call-hierarchy-outgoing | LSP outgoing call hierarchy |
| buffer-next-tab | Next buffer tab |
| buffer-prev-tab | Previous buffer tab |
| insert-backspace | Delete character before cursor (Insert mode) |
| insert-delete | Delete character at cursor (Insert mode) |
| insert-newline | Insert newline (Insert mode) |
Application order
Key mappings are applied in this order (later overrides earlier):
- Built-in default bindings
keybindings.tomlmoerc.toml[KeyMapping.All]moerc.toml[KeyMapping.VisualAll]moerc.tomlmode-specific sections ([KeyMapping.Normal],[KeyMapping.Visual],[KeyMapping.Filer], etc.)- Runtime
:nmap/:imap/:cmapcommands
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):
$XDG_CONFIG_HOME/moe/keybindings.toml~/.config/moe/keybindings.toml./keybindings.toml(current directory)
Each keybinding is defined as a [[keybinding]] entry.
Required fields
| Field | Type | Description |
|---|---|---|
| mode | string | Editor mode (see below) |
| key | string | Key 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 modevisualall- Visual, VisualLine, VisualBlock
Command types
| command_type | Required field | Description |
|---|---|---|
action (default) | command | General editor action |
mode_switch | target_mode | Switch editor mode |
overlay_switch | target_overlay | Switch to overlay (one of: command, search, rename) |
text_object | command | Text object operation |
operator | command | Vim-style operator |
custom | command | User-defined command |
key_sequence | target_keys | Remap 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
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | false | LSP (Language Server Protocol) Client |
| timeout | integer | 5000 | Timeout in milliseconds for LSP requests (0 = no timeout) |
Lsp.Completion table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | LSP Completion |
Lsp.Declaration table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | LSP Goto Declaration |
| openWindow | bool | false | Open a new window and jump |
Lsp.Definition table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | LSP Goto Definition |
| openWindow | bool | false | Open a new window and jump |
Lsp.TypeDefinition table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | LSP Type Definition |
| openWindow | bool | false | Open a new window and jump |
Lsp.Implementation table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | LSP Implementation |
| openWindow | bool | false | Open a new window and jump |
Lsp.Diagnostics table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | LSP Diagnostics |
| autoHover | bool | true | Automatically show diagnostic messages in hover popup when cursor is on a diagnostic |
| autoHoverDelay | integer | 300 | Delay in milliseconds before auto hover shows (0 = no delay) |
Lsp.SignatureHelp table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | LSP Signature Help |
Lsp.DocumentFormatting table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | LSP Document Formatting |
Lsp.FoldingRange table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | LSP Folding Range |
Lsp.SelectionRange table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | LSP Selection Range |
Lsp.DocumentSymbol table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | LSP Document Symbol |
Lsp.Hover table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | LSP Hover |
Lsp.InlayHint table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | LSP InlayHint |
Lsp.InlineValue table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | false | LSP InlineValue |
Lsp.References table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | LSP Find References |
Lsp.CallHierarchy table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | LSP Call Hierarchy |
Lsp.DocumentHighlight table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | LSP Document Highlight |
Lsp.DocumentLink table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | LSP Document Link |
Lsp.CodeLens table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | false | LSP Code Lens |
Lsp.Rename table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | LSP Rename |
Lsp.SemanticTokens table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | LSP Semantic Tokens |
Lsp.ExecuteCommand table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | true | LSP Execute Command |
LspTraceLevel
- type: string
| Name |
|---|
| off |
| messages |
| verbose |
Lsp.{languageId} table
| Name | Type | Default Value | Description |
|---|---|---|---|
| extensions | Array of string | File extensions | |
| command | string | LSP server command | |
| trace | LspTraceLevel | off | LSP trace level for debugging |
| rustAnalyzerRunSingle | bool | true | rust-analyzer.runSingle. Only effective with rust-analyzer and if Lsp.CodeLens is enabled. |
| rustAnalyzerDebugSingle | bool | true | rust-analyzer.debugSingle. Only effective with rust-analyzer and if Lsp.CodeLens is enabled. |
Please check more details
StartUp.FileOpen table
| Name | Type | Default Value | Description |
|---|---|---|---|
| autoSplit | bool | true | Display all buffers in multiple views if multiple paths are received when starting the editor |
| splitType | string | vertical | The split type for StartUp.FileOpen.autoSplit |
FileTree table
| Name | Type | Default Value | Description |
|---|---|---|---|
| width | int | 30 | Width of the fileTree sidebar |
StartUp.FileTree table
| Name | Type | Default Value | Description |
|---|---|---|---|
| enable | bool | false | Open 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" }
| Key | Type | Required | Description |
|---|---|---|---|
| command | string | yes | Built-in command name (see table below) |
| description | string | no | Custom description shown in completion popup |
Available command names:
| Name | Description |
|---|---|
| quit | Quit |
| quitall | Quit all |
| save | Save |
| saveall | Save all |
| saveandquit | Save and quit |
| saveallandquit | Save all and quit |
| edit | Edit file |
| enew | New empty buffer |
| set | Set option |
| help | Help |
| substitute | Substitute |
| vsplit | Vertical split |
| hsplit | Horizontal split |
| new | New buffer in horizontal split |
| vnew | New buffer in vertical split |
| buffernext | Next buffer |
| bufferprev | Previous buffer |
| bufferfirst | First buffer |
| bufferlast | Last buffer |
| bufferdelete | Delete buffer |
| buffer | Switch to buffer |
| stripwhitespace | Strip trailing whitespace |
| filer | Open file explorer |
| log | Open log viewer |
| quickrun | Quick run |
| buffermanager | Open buffer manager |
| backup | Open backup manager |
| recent | Open recent file |
| noh | Clear search highlight |
| shell | Execute shell command |
| background | Pause editor |
| jumplist | Show jump list |
| changes | Show change list |
| bookmarks | Show bookmarks |
| build | Build |
| debug | Debug mode |
| config | Configuration mode |
| putconfigfile | Write sample config file |
| man | Show manual |
| theme | Change theme |
| terminal | Open terminal |
| only | Close all other windows |
| lsplog | LSP log viewer |
| lspformat | LSP format |
| lsprestart | LSP restart |
| lspfold | LSP folding range |
| lspexecommand | LSP execute command |
| lspcallhierarchyincoming | LSP incoming calls |
| lspcallhierarchyoutgoing | LSP 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" }
| Key | Type | Required | Description |
|---|---|---|---|
| command | string | yes | Shell command to execute |
| description | string | no | Custom description shown in completion popup (default: Shell: <command>) |
Usage:
:nimbuildrunsnimble build:nimbuild --releaserunsnimble build --release
Theme table
| Name | Type | Default Value | Description |
|---|---|---|---|
| kind | ThemeKind | config | Theme kind |
| path | string | ~/.config/moe/themes/dark.toml | A 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.
| Name | Description |
|---|---|
| foreground | Default text color |
| background | Default background olor |
| currentLineBg | Background color of the editor current line |
| currentColumnBg | Background color of the editor current column |
| lineNum | Text color of line numbers |
| lineNumBg | Background color of line numbers |
| currentLineNum | Text color of current line number highlighting |
| currentLineNumBg | Background color of current line number highlighting |
| statusLineNormalMode | Text color of Status line in Normal mode |
| statusLineNormalModeBg | Background color of Status line in Normal mode |
| statusLineNormalModeLabel | Mode label text color in status line in Normal mode |
| statusLineNormalModeLabelBg | Mode label background color in status line in Normal mode |
| statusLineNormalModeInactive | Text color of status line in Normal mode when inactive |
| statusLineNormalModeInactiveBg | Background color of status line in Normal mode when inactive |
| statusLineInsertMode | Text color of status line in Insert mode |
| statusLineInsertModeBg | Background color of status line in Insert mode |
| statusLineInsertModeLabel | Mode label text color in status line in Insert mode |
| statusLineInsertModeLabelBg | Mode label background color in status line in Insert mode |
| statusLineInsertModeInactive | Text color of status line in Insert mode when inactive |
| statusLineInsertModeInactiveBg | Background color of status line in Insert mode when inactive |
| statusLineVisualMode | Text color of Status line in Visual mode |
| statusLineVisualModeBg | Background color of Status line in Visual mode |
| statusLineVisualModeLabel | Mode label text color in status line in visual mode |
| statusLineVisualModeLabelBg | Mode label background color in status line in visual mode |
| statusLineVisualModeInactive | Text color of Status line in Visual mode when inactive |
| statusLineVisualModeInactiveBg | Background color of status line in Visual mode when inactive |
| statusLineReplaceMode | Text color of Status line Replace in mode |
| statusLineReplaceModeBg | Background color of status line Replace in mode |
| statusLineReplaceModeLabel | Mode label text color in status line in Replace mode |
| statusLineReplaceModeLabelBg | Mode label background color in status line in Replace mode |
| statusLineReplaceModeInactive | Text color of Status line Replace in mode when inactive |
| statusLineReplaceModeInactiveBg | Background color of Status line Replace in mode when inactive |
| statusLineFilerMode | Text color of Status line in Filer mode |
| statusLineFilerModeBg | Background color of Status line in Filer mode |
| statusLineFilerModeLabel | Mode label text color in status line in Filer mode |
| statusLineFilerModeLabelBg | Mode label background color in status line in Filer mode |
| statusLineFilerModeInactive | Text color of status line in Filer mode when inactive |
| statusLineFilerModeInactiveBg | Background color of Status line in Filer mode when inactive |
| statusLineExMode | Text color of Status line in Command mode |
| statusLineExModeBg | Background color of Status line in Command mode |
| statusLineExModeLabel | Mode label text color in status line in Command mode |
| statusLineExModeLabelBg | Mode label background color in status line in Command mode |
| statusLineExModeInactive | Text color of status line in Command mode when inactive |
| statusLineExModeInactiveBg | Background color of Status line in Command mode when inactive |
| statusLineGitChangedLines | Text color of git changed lines count |
| statusLineGitChangedLinesBg | Background color of git changed lines count |
| statusLineGitBranch | Text color of git branch |
| statusLineGitBranchBg | Background color of git branch |
| tab | Text color of tab title in tab line |
| tabBg | Background color of tab title in tab line |
| currentTab | Text color of current tab title in tab line |
| currentTabBg | Background color of current tab title in tab line |
| commandLine | Text color in command line |
| commandLineBg | Background color in command line |
| errorMessage | Text color of error messages |
| errorMessageBg | Background color of error messages |
| warnMessage | Text color of warning messages |
| warnMessageBg | Background color of warning messages |
| searchResult | Text color of search result highlighting |
| searchResultBg | Background color of search result highlighting |
| selectArea | Text color selected in visual mode |
| selectAreaBg | Background color selected in visual mode |
| keyword | Syntax highlighting color |
| functionName | Syntax highlighting color |
| typeName | Syntax highlighting color |
| boolean | Syntax highlighting color |
| specialVar | Syntax highlighting color |
| builtin | Syntax highlighting color |
| charLit | Syntax highlighting color |
| stringLit | Syntax highlighting color |
| binNumber | Syntax highlighting color |
| decNumber | Syntax highlighting color |
| floatNumber | Syntax highlighting color |
| hexNumber | Syntax highlighting color |
| octNumber | Syntax highlighting color |
| comment | Syntax highlighting color |
| longComment | Syntax highlighting color |
| docComment | Syntax highlighting color |
| docLongComment | Syntax highlighting color |
| whitespace | Syntax highlighting color |
| preprocessor | Syntax highlighting color |
| pragma | Syntax highlighting color |
| identifier | Syntax highlighting color |
| table | Syntax highlighting color |
| date | Syntax highlighting color |
| logError | Log file error level highlighting color |
| logWarning | Log file warning level highlighting color |
| logInfo | Log file info/debug level highlighting color |
| logUuid | Log file UUID highlighting color |
| operator | Syntax highlighting color |
| markdownCodeBlock | Markdown code block text color |
| markdownCodeBlockBg | Markdown code block background color |
| namespace | Syntax highlighting color (LSP Semantic Tokens) |
| className | Syntax highlighting color (LSP Semantic Tokens) |
| enumName | Syntax highlighting color (LSP Semantic Tokens) |
| enumMember | Syntax highlighting color (LSP Semantic Tokens) |
| interfaceName | Syntax highlighting color (LSP Semantic Tokens) |
| typeParameter | Syntax highlighting color (LSP Semantic Tokens) |
| parameter | Syntax highlighting color (LSP Semantic Tokens) |
| variable | Syntax highlighting color (LSP Semantic Tokens) |
| property | Syntax highlighting color (LSP Semantic Tokens) |
| string | Syntax highlighting color (LSP Semantic Tokens) |
| event | Syntax highlighting color (LSP Semantic Tokens) |
| function | Syntax highlighting color (LSP Semantic Tokens) |
| method | Syntax highlighting color (LSP Semantic Tokens) |
| macro | Syntax highlighting color (LSP Semantic Tokens) |
| regexp | Syntax highlighting color (LSP Semantic Tokens) |
| decorator | Syntax highlighting color (LSP Semantic Tokens) |
| angle | Syntax highlighting color (LSP Semantic Tokens) |
| arithmetic | Syntax highlighting color (LSP Semantic Tokens) |
| attribute | Syntax highlighting color (LSP Semantic Tokens) |
| attributeBracket | Syntax highlighting color (LSP Semantic Tokens) |
| bitwise | Syntax highlighting color (LSP Semantic Tokens) |
| brace | Syntax highlighting color (LSP Semantic Tokens) |
| bracket | Syntax highlighting color (LSP Semantic Tokens) |
| builtinAttribute | Syntax highlighting color (LSP Semantic Tokens) |
| builtinType | Syntax highlighting color (LSP Semantic Tokens) |
| colon | Syntax highlighting color (LSP Semantic Tokens) |
| comma | Syntax highlighting color (LSP Semantic Tokens) |
| comparison | Syntax highlighting color (LSP Semantic Tokens) |
| constParameter | Syntax highlighting color (LSP Semantic Tokens) |
| derive | Syntax highlighting color (LSP Semantic Tokens) |
| deriveHelper | Syntax highlighting color (LSP Semantic Tokens) |
| dot | Syntax highlighting color (LSP Semantic Tokens) |
| escapeSequence | Syntax highlighting color (LSP Semantic Tokens) |
| invalidEscapeSequence | Syntax highlighting color (LSP Semantic Tokens) |
| formatSpecifier | Syntax highlighting color (LSP Semantic Tokens) |
| generic | Syntax highlighting color (LSP Semantic Tokens) |
| label | Syntax highlighting color (LSP Semantic Tokens) |
| lifetime | Syntax highlighting color (LSP Semantic Tokens) |
| logical | Syntax highlighting color (LSP Semantic Tokens) |
| macroBang | Syntax highlighting color (LSP Semantic Tokens) |
| parenthesis | Syntax highlighting color (LSP Semantic Tokens) |
| punctuation | Syntax highlighting color |
| selfKeyword | Syntax highlighting color (LSP Semantic Tokens) |
| selfTypeKeyword | Syntax highlighting color (LSP Semantic Tokens) |
| semicolon | Syntax highlighting color (LSP Semantic Tokens) |
| typeAlias | Syntax highlighting color (LSP Semantic Tokens) |
| toolModule | Syntax highlighting color (LSP Semantic Tokens) |
| union | Syntax highlighting color (LSP Semantic Tokens) |
| unresolvedReference | Syntax highlighting color (LSP Semantic Tokens) |
| inlayHint | LSP inlay hint text color |
| inlineValue | LSP inline value text color |
| codeLens | LSP code lens text color |
| currentFile | Text color of current file name in Filer mode |
| currentFileBg | Background color of current file name in Filer mode |
| file | Text color of file name in Filer mode |
| fileBg | Background color of file name in Filer mode |
| dir | Text of directory name in filer mode |
| dirBg | Background of directory name in filer mode |
| pcLink | Text of symbolic links to file in filer mode |
| pcLinkBg | Background of symbolic links to file in filer mode |
| popupWindow | Pop-up window text color |
| popupWindowBg | Pop-up window background color |
| popupWinCurrentLine | Pop-up window current line text color |
| popupWinCurrentLineBg | Pop-up window current line background color |
| replaceText | Text color of replacing text |
| replaceTextBg | Background color of replacing text |
| parenPair | Pair of bracket highlighting |
| parenPairBg | Pair of bracket highlighting |
| currentWord | Current word highlighting |
| currentWordBg | Current word highlighting |
| findCharMatch | f/F/t/T match highlighting |
| findCharMatchBg | f/F/t/T match highlighting |
| highlightFullWidthSpace | Full-width space color |
| highlightTrailingSpaces | Trailing space color |
| reservedWord | Reserved word text color |
| reservedWordBg | Reserved word text color |
| syntaxCheckInfo | A info color of syntax checker result highlighting |
| syntaxCheckInfoBg | A info color of syntax checker result highlighting |
| syntaxCheckHint | A hint color of syntax checker result highlighting |
| syntaxCheckHintBg | A hint color of syntax checker result highlighting |
| syntaxCheckWarn | A warning color of syntax checker result highlighting |
| syntaxCheckWarnBg | A warning color of syntax checker result highlighting |
| syntaxCheckErr | An error color of syntax checker result highlighting |
| syntaxCheckErrBg | An error color of syntax checker result highlighting |
| gitConflict | Single-color fallback for git conflict block (used when gitConflictTwoColor = false) |
| gitConflictBg | Single-color fallback background for git conflict block |
| gitConflictMarker | Foreground color for marker lines (<<<<<<<, |||||||, =======, >>>>>>>) |
| gitConflictMarkerBg | Background color for marker lines |
| gitConflictOurs | Foreground color for the "ours" side of a conflict block |
| gitConflictOursBg | Background color for the "ours" side |
| gitConflictBase | Foreground color for the diff3 "base" side of a conflict block |
| gitConflictBaseBg | Background color for the diff3 "base" side |
| gitConflictTheirs | Foreground color for the "theirs" side of a conflict block |
| gitConflictTheirsBg | Background color for the "theirs" side |
| diffViewerAddedLine | Added line color on Diff viewer |
| diffViewerAddedLineBg | Added line color on Diff viewer |
| diffViewerDeletedLine | Deleted line color on Diff viewer |
| diffViewerDeletedLineBg | Deleted line color on Diff viewer |
| backupManagerCurrentLine | Current line color on Backup manager |
| backupManagerCurrentLineBg | Current line color on Backup manager |
| configModeCurrentLine | Current line color in Configuration mode |
| configModeCurrentLineBg | Current line color in Configuration mode |
| foldingLine | Folding line text color |
| foldingLineBg | Folding line background color |
| sidebarGitAddedSign | An added lines sign color of Git in sidebars |
| sidebarGitAddedSignBg | An added lines sign color of Git in sidebars |
| sidebarGitDeletedSign | A deleted lines sign color of Git in sidebars |
| sidebarGitDeletedSignBg | A deleted lines sign color of Git in sidebars |
| sidebarGitChangedSign | A changed lines sign color of Git in sidebars |
| sidebarGitChangedSignBg | A changed lines sign color of Git in sidebars |
| sidebarGitConflictSign | A merge conflict sign color of Git in sidebars |
| sidebarGitConflictSignBg | A merge conflict sign color of Git in sidebars |
| sidebarSyntaxCheckInfoSign | A info sign color of syntax checker results in sidebars |
| sidebarSyntaxCheckInfoSignBg | A info sign color of syntax checker results in sidebars |
| sidebarSyntaxCheckHintSign | A hint sign color of syntax checker results in sidebars |
| sidebarSyntaxCheckHintSignBg | A hint sign color of syntax checker results in sidebars |
| sidebarSyntaxCheckWarnSign | A warning color of syntax checker results in sidebars |
| sidebarSyntaxCheckWarnSignBg | A warning color of syntax checker results in sidebars |
| sidebarSyntaxCheckErrSign | An error color of syntax checker results in sidebars |
| sidebarSyntaxCheckErrSignBg | An error color of syntax checker results in sidebars |
| sidebarSessionModifiedSign | A modified line sign color in sidebars |
| sidebarSessionModifiedSignBg | A modified line sign background color in sidebars |
| sidebarSessionInsertedSign | An inserted line sign color in sidebars |
| sidebarSessionInsertedSignBg | An inserted line sign background color in sidebars |