micro

zyedidia · zyedidia.micro

A modern and intuitive terminal-based text editor.

winget install --id zyedidia.micro --exact --source winget

Latest 2.0.15

Release Notes

Micro 2.0.15 Get well into 2026 and have a happy new year! πŸŽ† What's Changed New options

  • truecolor (supersedes the MICRO_TRUECOLOR environment variable) (by @JoeKar in #2867)
  • showchars (deprecates indentchar) (by @Neko-Box-Coder in #3760)
  • lockbindings for completely disallowing plugins to modify keybindings (by @Neko-Box-Coder in #3618)
  • helpsplit for changing default split type for the help command (by @JoeKar in #3502)
  • pageoverlap for setting number of lines kept during page up/page down (by @nimishjha in #3518) New actions
  • FirstTab, LastTab, FirstSplit and LastSplit (by @masmu in #3403)
    • Note: also changed the behavior of NextTab, PreviousTab, NextSplit, PreviousSplit
    • But adjusted the default keybindings so the default behavior remains unchanged
  • SkipMultiCursorBack as a counterpart to SkipMultiCursor (by @masmu in #3404)
  • CursorToViewTop, CursorToViewCenter, CursorToViewBottom (by @nimishjha in #3506)
  • Duplicate for duplicating the selection only, not the whole line (by @dmaluka in #3503) Improved actions
  • Improve and unify CopyLine, CutLine, DeleteLine, DuplicateLine actions (by @dmaluka in #3335 and #3519)
    • Note: changed the behavior of those actions
    • But also adjusted the default keybindings so the default behavior remains unchanged
  • Restore pre-2.0.14 behavior of SpawnMultiCursor{Up,Down} (by @dmaluka in #3503)
  • Nano-like page up/page down functionality (by @nimishjha in #3518 and @dmaluka in #3555) Lua improvements
  • Plugins never write to settings.json or bindings.json anymore (by @Neko-Box-Coder in #3618)
  • Add onBufferOptionChanged callback (by @JoeKar in #2962)
  • Add SpawnCursorAtLoc() (by @Neko-Box-Coder in #3441)
  • Expose bufpane's DoubleClick and TripleClick to plugins (by @cutelisp in #3720)
  • Pass mouse info to {on,pre}MouseXXX callbacks (by @dmaluka in #3779)
  • Support goto statement from Lua 5.2 (by @matthias314 in #3597) Syntax highlighting improvements
  • Haskell syntax: various improvements and fixes (by @Andriamanitra in #3373)
  • Rust syntax:
    • Recognize byte strings and C strings (by @jmcorey in #3452)
    • Add more keywords and types (by @edwloef in #3677 and @codemanticism in #3759)
  • C++ syntax:
    • Highlight binary and hex literals with single-quote separator per C++14 (by @Neko-Box-Coder in #3310, #3870, #3891)
    • Highlight auto as data type per C++17 (by @2013ZRZ in #3836)
    • Improve C++ filetype detection by using more keywords (by @Neko-Box-Coder in #3310)
  • Shell syntax:
    • Correctly match parameter expansions without braces (by @niten94 in #3663)
    • Match variables with leading underscore (by @Andriamanitra in #3833)
    • Match --options-with-hyphens (by @nabeelsherazi in #3863)
  • Asm syntax: highlight C-like comments (by @dmaluka in #3696)
  • Ruby syntax: highlight predefined variables (by @Andriamanitra in #3778)
  • CSS syntax: add more commands (by @mystieneko in #3436)
  • Swift syntax: add shebang (by @frkd-dev in #3451)
  • Java syntax: add var keyword (by @owencmcgrath in #3526)
  • Javascript syntax: add .cjs extension (by @med-ab in #3539)
  • Groovy syntax: fix triple quotes highlighting (by @Neko-Box-Coder in #3858)
  • Fish syntax: fix variable expansion (by @remisalmon in #3830)
  • Raku syntax: add .rakutest extension (by @juanfra684 in #3406)
  • Arduino syntax: make filetype detection less aggressive (by @Andriamanitra in #3848)
  • Add OpenSCAD syntax (by @jmcorey in #3410)
  • Add PRQL syntax (by @vanillajonathan in #3313)
  • Add meson syntax (by @asakovets in #3236)
  • Add nftables config syntax (by @theredcmdcraft in #3325 and #3517) Various improvements
  • Save files safely, writing to the backup file first (by @JoeKar in #3273, #3806, #3814, @Neko-Box-Coder in #3807 and @dmaluka in #3822)
    • Also write settings.json, bindings.json etc safely as well, using a temporary file
  • Support vim-like +/text search in command-line args (by @luca020400 in #3767)
  • Add toggle & togglelocal commands for toggling boolean options (by @cutelisp in #3783)
  • Add -vsplit & -hsplit as optional arguments for help (by @JoeKar in #3502)
  • Make textfilter work with multicursors (by @dmaluka in #3511)
  • Support \x syntax for raw escape sequences in bindings.json (by @JoeKar in #3595)
  • Add overwrite mode indicator to the status line (by @JoeKar in #3620)
  • Support showing git commit hash and branch in the status line (by @niten94 in #3673)
  • Support terminal emulation on Solaris, OpenBSD* and NetBSD (by @niten94 in #3714)
    • OpenBSD - on 32-bit only
  • Display name "Raw event viewer" instead of "No Name" for raw pane (by @blamedrop in #3791)
  • Differentiate built-in plugins when listing (by @Neko-Box-Coder in #3810)
  • Disable sudo save prompt on Windows (by @niten94 in #3866)
  • Only set buffer type to stdout when no file args are passed (by @AndydeCleyre in #3910)
  • Linter: add ruff for Python (by @Andriamanitra in #3657)
  • Linter: ldc2 and gdc for D (by @kodesettings in #3892)
  • Add comment support for typescript (by @Neko-Box-Coder in #3857)
  • README: Update micro's version for the Go Report Card (by @JoeKar in #3835) Bugfixes
  • Fix cd a\ causing crash on Windows (by @JoeKar in #3596)
  • Fix SIGINT killing micro when saving with sudo (by @dmaluka in #3495)
  • Fix crash when exiting terminal in some cases (by @JoeKar in #3738)
  • Fix crash when shell.JobSpawn is called from Lua while no callback is set (by @matthias314 in #3554)
  • Fix 2.0.14 regression: inconsistently working cursor up/down after selection (by @JoeKar in #3540)
  • Fix 2.0.14 regression: colorscheme plugins not working (by @dmaluka in #3761)
  • Fix non-working raw escape bindings after restarting the screen (by @dmaluka in #3468)
  • Fix spurious backups of unmodified files (by @dmaluka in #3822)
  • Fix drawing wide characters in the info bar (by @Andriamanitra in #3919)
  • Search / replace fixes:
    • Fix infinite loop in replace when empty string matches (by @matthias314 in #3566)
    • Make FindNext and FindPrevious work with empty matches (by @matthias314 in #3572)
    • Match beginning and end of line correctly (by @matthias314 in #3575 and #3914)
  • Fixes related to saving files:
    • Don't prompt to save file if the same file is opened in another buffer (by @matthias314 in #3559 and @niten94 in #3719)
    • Prompt to save new file regardless of autosave enabled (by @yz778 in #3626)
    • Fix per-filetype settings not being applied when saving as a new file (by @Neko-Box-Coder in #3625, #3688 and @JoeKar in #3662)
    • Support saving with sudo in more cases (by @Neko-Box-Coder in #3689)
    • Update displayed name when saving file with a different name (by @Neko-Box-Coder in #3689)
  • Fix comment plugin not using user settings when overriding default setting (by @Neko-Box-Coder in #3424)
    • Introduces comment.type option which deprecates existing commenttype
  • Fix rendering Unicode 14.0+ emojis (by @JoeKar in #3601)
  • Properly handle escaped and quoted characters in keybindings (by @matthias314 in #3612)
  • Fix tabs suddenly becoming invisible after tabmove (by @Neko-Box-Coder in #3619)
  • Fix cycling through completion suggestions stopping at non-word character (by @Andriamanitra in #3650)
  • Fix scrollbar covering cursor (by @cutelisp in #3741)
  • Fix ruler drawn on top of the tab bar (by @cutelisp in #3744)
  • Relocate buffer view after setting options that affect it (by @dmaluka in #3743)
  • Fix non-working proportional resize after closing a nested VSplit inside a HSplit (by @Neko-Box-Coder in #3708)
  • Fix non-working matching brace highlighting in sunny-day colorscheme (by @tautte in #3735)
  • Fix micro broken on OpenBSD (by @niten94 in #3561 and #3895) Documentation improvements
  • Update and improve man page and micro -help output (by @dmaluka in #3812)
  • List more bindable actions in help keybindings (by @Andriamanitra in #3685 and @dmaluka in #3799)
  • Document binding keys to Lua functions (by @dmaluka in #3799)
  • Document passing *tcell.EventMouse to mouse action callbacks (by @dmaluka in #3799)
  • Update and correct documentation for onAction return value (by @dmaluka in #3799)
  • Some small improvements (by @cutelisp in #3786, #3818) Build system changes
  • Minimum supported Go version changed from 1.16 to 1.19 (by @alexandear in #3461 and @JoeKar in #3595)
  • Make all builds explicitly fully static (disable CGO) (by @JoeKar in #3466)
  • Add build target for Windows ARM64 (by @creeperlv in #3512)
  • Add build targets for Solaris and Illumos (by @niten94 in #3714)
  • Set version as release when there are no commits ahead (by @niten94 in #3515)
  • Fetch tags with --force (by @JoeKar in #3448)
  • Micro's dependencies (the forked tcell and others) moved to https://github.com/micro-editor (by @JoeKar in #3593, #3595, #3596, #3601, #3600) New Contributors
  • @mystieneko made their first contribution in #3436
  • @jmcorey made their first contribution in #3410
  • @frkd-dev made their first contribution in #3451
  • @JonathanBerkeley made their first contribution in #3469
  • @alexandear made their first contribution in #3467
  • @theredcmdcraft made their first contribution in #3325
  • @creeperlv made their first contribution in #3512
  • @nimishjha made their first contribution in #3506
  • @owencmcgrath made their first contribution in #3526
  • @med-ab made their first contribution in #3539
  • @antoine2711 made their first contribution in #3615
  • @yz778 made their first contribution in #3626
  • @usfbih8u made their first contribution in #3647
  • @edwloef made their first contribution in #3677
  • @cutelisp made their first contribution in #3716
  • @tautte made their first contribution in #3735
  • @codemanticism made their first contribution in #3759
  • @vanillajonathan made their first contribution in #3313
  • @blamedrop made their first contribution in #3791
  • @asakovets made their first contribution in #3236
  • @remisalmon made their first contribution in #3830
  • @deepdring made their first contribution in #3834
  • @2013ZRZ made their first contribution in #3836
  • @luca020400 made their first contribution in #3767

Installer type: zip

Architecture Scope Download SHA256
x86 β€” Download 0001BE61D9751AF4B1F370CC4422DD62894A3285B91D43A50CCF5D6C607F7668
x64 β€” Download 90635C53C11AA2A0D997F5E3ED43528877740725500207640B29551CEF18479B

Details

Homepage
https://micro-editor.github.io/
License
MIT
Publisher
zyedidia
Support
https://github.com/zyedidia/micro/issues
Moniker
micro

Tags

clicode-editorcommand-linecross-platformopen-sourceterminal-appterminal-basedtext-editor

Older versions (3)

2.0.14
Architecture Scope Download SHA256
x64 β€” Download ef95e181249d0547942558d65b73cf484d6e06490bcfc0c540085a04f1ee00f8
x86 β€” Download 205c466d21e3a556f05055c27330ada197a92b5c646f45a2ba000ffe22d923fc
2.0.13
Architecture Scope Download SHA256
x64 β€” Download E172A884EE4B0590DCD6044B88F981E1FACAF6FD7937194A5CC317FF5EA6BC68
x86 β€” Download 53A14423039EF11196F7B6975A2444B407A186824BC7C8EE5F565825F8544EA6
2.0.11
Architecture Scope Download SHA256
x64 β€” Download 095063F8AAA66F88B7700D4710938CB12595F3F37BB62341EA7A7517D7DFFFE2
x86 β€” Download 079DC7D910DEBA3C851D9ED74BD01B4216B4FC919D2D027B99F97BDEE5D7C0D7