Skip to content
fox0430Public

About

A command line based editor inspired by Vim. Written in Nim.

Topics

Resources

Stars

728 stars

Watchers

12 watching

Forks

Latest commit

 

History

5,678 Commits

Folders and files

Repository files navigation

moe

A command line based editor inspired by Vim written in Nim.

This project's goals are easily customizable, high productivity, user friendly, and high performance editor.

moe

Features

  • Written in Nim

  • Selectable buffer backend ( >= 0.5.0 )

    • GapBuffer
    • Sqrt Decomposition
    • Rope (B-tree)
    • Piece Table (RB-Tree)
  • UTF-8 and other encodings support (Incomplete)

  • Vim like mode (Normal, Insert, Visual, Replace, Command, Filer, etc...)

  • Vim like keybinds

  • Undo/redo

  • Syntax highlighting:

    • C
    • C++
    • C#
    • Go
    • Haskell
    • Java
    • JavaScript
    • Markdown
    • Nim
    • Python
    • Rust
    • Shell languages:
      • Bash
      • Fish
      • Zsh
    • TOML
    • YAML
    • JSON/JSONC
    • Lisp
    • Lua
    • Tcl
    • Hyprland
    • Dockerfile
    • XML
  • Auto-completion

  • Configuration file (TOML)

  • Configuration mode (UI)

  • Tab line

  • Indentation lines

  • Highlight current words

  • Highlight/Delete trailing spaces

  • Auto close/delete paren

  • Simple auto indent

  • Incremental search

  • Auto save

  • Suggestions in Command mode

  • TrueColor (24bit color)

  • VSCode themes

  • Build on save

  • QuickRun

  • Automatic backups

  • Vim like register

  • Git support

  • Bookmarks

  • Syntax checker

    • Nim
  • EditorConfig support

  • Macros

  • Terminal ( >= 0.5.0 )

  • Language Server Protocol (WIP)

    • Completion

    • Diagnostics

    • Signature Help

    • Inlay Hints

    • Hover

    • Goto definition

    • Find References

    • Call Hierarchy

    • Document Highlight

    • Document Link

    • Code Lens

    • Document Formatting

    • Rename

    • Semantic Tokens

    • Folding Range

    • Selection Range

    • Document Symbol

Planned features

  • Snippets

  • Spell checker

  • Edit files over ssh

  • Fuzzy search

  • Plugin system

  • Supports huge file

Install

We recommend Linux environments.

Requires

  • Nim 2.0.10 or higher

  • xclip v0.13 or higher (Option on GNU/Linux)

  • xsel (Option on GNU/Linux)

  • wl-clipboard (Option on GNU/Linux)

Version <= 0.4.0 (Ncurses base)

nimble install moe

Check detail

Version >= 0.5.0 (Celina base)

# Latest developmental state inside Github repository
nimble install moe@#head

Check detail

Usage

Documents (Celina base)

Documents (Ncurses base)

Embedding Moe

Build non-terminal frontends with -d:moe.embedded and import moepkg/frontend. Embedded mode keeps Moe's editor engine and frontend-neutral input API available on Windows, while disabling Moe-owned clipboard integration by default. It also excludes Moe's terminal state, handler, renderer, and POSIX PTY backend from the build, and imports only Celina's platform-neutral value types instead of its POSIX terminal runtime. The embedding frontend owns the native clipboard and terminal UI; terminal commands report that the mode is unavailable.

The origin of the name

moe is a recursive acronym for "moe is an optimal editor".

And one more, it comes from the Japanese slang 萌え(moe).

Contributing, bug reports, feature request

Welcome❤

Community

Ask me anything!

License

GNU General Public License version 3

About

A command line based editor inspired by Vim. Written in Nim.

Topics

Resources

Stars

728 stars

Watchers

12 watching

Forks

Releases

Used by

Contributors

Languages