Skip to content
Français
Account: not signed in, sync available My learning
Select theme
Français

Editing with Micro

By updated

Improve this page

micro logo

You need to change a file on a remote server and you are tired of juggling vi's modes or memorising nano's shortcuts? Micro is a terminal editor that works like a graphical editor: Ctrl+S to save, Ctrl+C to copy, Ctrl+V to paste, Ctrl+Z to undo. This guide takes you from installation to a productive setup with multiple cursors, plugins and full customisation. Every default value quoted here was read in the sources of version 2.0.15, the latest release.

What you will learn

  • Install micro on any Linux distribution with one command
  • Edit files with the shortcuts you already know
  • Select and manipulate text with the mouse or the keyboard
  • Search and replace text with regular expressions
  • Work with several files in splits and tabs
  • Use multiple cursors to edit several places at once
  • Customise the editor with options and colour schemes
  • Install plugins to extend its features

Why micro rather than another editor?

Every terminal editor has its own philosophy. The choice depends on your context and on what you expect from your tool day to day.

Criterionnanovi/vimmicro
Learning curveVery easyHard (modes)Very easy
ShortcutsSpecific (Ctrl+O to save)Specific (dd, yy, :wq)Standard (Ctrl+S, Ctrl+C, Ctrl+V)
Multiple cursorsNoPossible with pluginsNative
MouseLimitedWith configurationFull (click, drag, selection)
Syntax highlightingBasicGood (vim)130+ languages
PluginsNoYes (vim)Yes (Lua, built-in manager)
Built-in terminalNoNoYes
InstallationPreinstalledPreinstalled (vi)Static binary to download
Main use caseQuick, simple editingPowerful editor for expertsComfortable editor for daily use

The positioning reads along two axes, power and entry cost. nano is present everywhere and needs no learning, but soon hits its ceiling. vi/vim covers every editing need and is available on any server, at the price of really learning its modes and commands. micro aims at the middle ground: familiar shortcuts such as Ctrl+S and Ctrl+C, the mouse, multiple selection, and no mode to remember. It is however not installed by default, which rules it out on a machine you only access once.

This last limit deserves to be taken seriously rather than worked around. On a minimal container, a locked-down production server or a system booted in rescue mode, installing a package is neither always possible nor always desirable, and vi will be the only editor present. Micro is a comfort tool for the machines you administer regularly; keep the vi basics for the others.

Install micro

Micro ships as a single static binary: no dependencies, no compilation. Installation takes a few seconds whatever your distribution.

The recommended method when your distribution's package is too old: Debian 13, for example, ships 2.0.14. For each archive, the project publishes a .sha file holding its SHA-256 checksum; the sha256sum --check command must answer OK before any extraction:

Terminal window
MICRO_VERSION=2.0.15
BASE="https://github.com/zyedidia/micro/releases/download/v${MICRO_VERSION}"
curl -sSLO "${BASE}/micro-${MICRO_VERSION}-linux64-static.tar.gz"
curl -sSLO "${BASE}/micro-${MICRO_VERSION}-linux64-static.tar.gz.sha"
sha256sum --check "micro-${MICRO_VERSION}-linux64-static.tar.gz.sha"
tar -xzf "micro-${MICRO_VERSION}-linux64-static.tar.gz"
sudo install -m 0755 "micro-${MICRO_VERSION}/micro" /usr/local/bin/micro

The linux64-static variant has no dependency on glibc, so it also works on Alpine images and old systems.

Check: confirm the installation by printing the version:

Terminal window
micro -version

With the archive above, the output starts with these lines:

Version: 2.0.15
Commit hash: 6a62575b

One last step decides whether Ctrl+C and Ctrl+V deliver the promised comfort: the system clipboard. Without an external utility, micro falls back on an internal clipboard, and copy and paste only work inside the editor, never with your browser or another terminal. So install the tool matching your graphical session, xclip or xsel under X11, wl-clipboard under Wayland:

Terminal window
# X11
sudo apt install xclip
# Wayland
sudo apt install wl-clipboard

On a server without a graphical environment, this step is irrelevant: copy and paste then go through your local terminal emulator, not through micro, which only sees pasted text arriving as keystrokes.

First steps: open, edit, save

These three operations cover most of an editing session on a server. Unlike vi, there is no mode to learn: the shortcuts are those of a graphical editor and you type text as soon as the file opens.

Open a file

As with any editor, pass the file name as an argument:

Terminal window
micro file.txt

If the file does not exist, micro creates it on the first save. You can also start micro without an argument for an empty buffer, or even send data through a pipe:

Terminal window
ip a | micro

The interface

As soon as micro opens, you see:

  • The editing area with automatic syntax highlighting
  • The tab bar at the top (when several files are open)
  • The status bar at the bottom, showing the file name, the cursor position (line, column), the file type and the encoding

Micro interface with bash syntax highlighting, line numbers and status bar

Unlike vi, there are no modes. You can type text straight away, as in a graphical editor. That is micro's strong point: no surprise, no mode trap like the :q! you hunt for the first time you open vi.

The essential shortcuts

Here are the shortcuts you will use 90% of the time. If you have already used a graphical editor (VS Code, Notepad, Sublime Text), you already know them:

ShortcutAction
Ctrl+SSave the file
Ctrl+QQuit micro
Ctrl+ZUndo the last change
Ctrl+YRedo (undo the undo)
Ctrl+CCopy the selection (or the line if nothing is selected)
Ctrl+XCut the selection (or the line)
Ctrl+VPaste
Ctrl+DDuplicate the selection (or the line)
Ctrl+KCut the whole line
Ctrl+ASelect all
Ctrl+FFind text
Ctrl+GShow help

Until these shortcuts become second nature, Alt+G displays a shortcut menu at the bottom of the screen, exactly as nano does. This menu is hidden by default to leave two more lines for the text, and comes back for the session with Alt+G, or for good with the command set keymenu true, since the keymenu option defaults to false.

Micro shortcut menu shown at the bottom of the screen, similar to nano

Step-by-step example: edit a configuration file

Say you need to edit the /etc/hosts file to add an entry:

  1. Open the file with micro (as superuser if needed):

    Terminal window
    sudo micro /etc/hosts
  2. Move to the last line with the arrows or Ctrl+End.

  3. Type the new line directly, no need to switch to an "insert mode":

    192.168.1.100 mon-serveur.local
  4. Save with Ctrl+S. The status bar confirms the save.

  5. Quit with Ctrl+Q.

It is as simple as that. No :wq, no Ctrl+O followed by Enter.

Moving around a file

Micro supports all the usual navigation keys. If you can move around a text document on your computer, you can move around in micro.

Moving the cursor

Two subtleties in this table deserve your attention. Home does not go to column 1 but to the first non-blank character of the line, which is the behaviour you want when editing indented YAML. And on macOS, the roles of Ctrl and Alt are swapped compared with Linux for word-by-word and start/end-of-line moves: there, Alt+Arrow moves by one word. The rest matches what any word processor does.

ShortcutMovement
ArrowsCharacter by character / line by line
Ctrl+Left / Ctrl+RightWord by word
Home / EndStart / end of the line
Ctrl+Home / Ctrl+EndStart / end of the file
Page Up / Page DownPage by page
Ctrl+LGo to a given line (type the number)

Selecting text

Selection works exactly as in a graphical editor:

  • With the keyboard: hold Shift and use the arrows, Home, End, Page Up, Page Down to extend the selection
  • With the mouse: click and drag to select
  • Double-click: selects the word under the cursor
  • Triple-click: selects the whole line

Once the text is selected, use Ctrl+C to copy, Ctrl+X to cut, or simply type to replace the selection.

Text selection highlighted in micro with Shift+Arrows on a block of code

Mouse support goes further than in most terminal editors: beyond click and drag, the wheel scrolls the file and Ctrl+Click places multiple cursors, a feature covered further down. This support requires your terminal emulator to pass on mouse events, which every common terminal does; if clicking does not move the cursor, check set mouse true.

The command bar

The command bar is micro's control centre. Open it with Ctrl+E and type a command: it plays the role of vim's : line, with no mode switch, and with completion on Tab. Here are the most useful commands:

File commands

These commands duplicate existing shortcuts, with one useful difference: they accept an argument. save without an argument is the same as Ctrl+S, but save other-name.txt performs a "save as" that no shortcut covers. Above all, remember reopen, which reloads the file from disk: it is the command that gets you out of trouble when another process changed the file while you had it open.

CommandWhat it does
saveSaves the current file
save file.txtSaves under another name ("Save as")
open file.txtOpens a file in the current buffer
tab file.txtOpens a file in a new tab
quitCloses the current pane
reopenReloads the file from disk

Configuration commands

The difference between the first two lines is the one that matters. set writes the value to ~/.config/micro/settings.json, and it will follow you in all your files and sessions; setlocal only applies to the current buffer and disappears when it closes. Use setlocal when you briefly need real tabs for a Makefile, without polluting your permanent configuration. show answers with the effective value, which lets you check whether a plugin has overridden your setting.

CommandWhat it does
set option valueChanges an option (saved in settings.json)
setlocal option valueChanges an option for this file only
show optionShows the current value of an option
toggle optionFlips a boolean option (true/false)
reset optionPuts an option back to its default value

goto is the command to remember when you are debugging: an interpreter that reports an error at line 42, column 10 takes you straight there with goto 42:10, without counting lines on screen. The two replace commands differ only by confirmation: replace asks for your approval occurrence by occurrence, while replaceall applies everything at once. On a production configuration file, prefer the first: Ctrl+Z can still undo, but it does not rescue a save that has already happened.

CommandWhat it does
goto 42Goes to line 42
goto 42:10Goes to line 42, column 10
replace "a" "b"Interactive search and replace
replaceall "a" "b"Replaces every occurrence without confirmation
cd /home/userChanges the working directory
pwdShows the current working directory

Shell commands

These three commands open the editor to the shell, each at a different level. run launches a command in the background and only shows its output, on one line of the info bar, once it finishes. term opens a complete interactive shell, and textfilter sends the current selection to a command's standard input, then replaces that selection with the output.

CommandWhat it does
run commandRuns a command in the background, output on one line
termOpens an interactive terminal (details below)
textfilter commandFilters the selection through a shell command

The textfilter command is particularly powerful. For example, to sort a list of names selected in your file:

  1. Select the lines to sort (with Shift+Arrows or the mouse)

  2. Press Ctrl+E and type: textfilter sort

  3. The selected lines are sorted alphabetically

You can use any external command: sort -n for a numeric sort, uniq to remove duplicates, jq . to format JSON. Micro runs the command directly, without going through a shell: a | pipe in the argument therefore does not work, chain two textfilter calls instead.

Search and replace

Searching is the first need on a configuration file several hundred lines long. Micro accepts plain text as well as regular expressions, and each replacement can be confirmed occurrence by occurrence.

Find text

Press Ctrl+F to open the search bar at the bottom of the screen. Type your word and confirm with Enter: the cursor lands on the first occurrence and the bar closes. You then move from one occurrence to the next from the file, not from the search bar, as the official help (help defaultkeys) points out:

ShortcutAction
EnterConfirm the search and close the bar
Ctrl+NGo to the next occurrence (from the file)
Ctrl+PGo to the previous occurrence (from the file)
EscAbandon the current search

Search is incremental by default (results appear in real time as you type, incsearch option) and case-insensitive (ignorecase option, true by default).

Incremental search in micro with highlighted matches and the search bar at the bottom

Replace text

Search and replace goes through the command bar. Press Ctrl+E to open it, then type:

replace "old" "new"

Micro highlights the first occurrence and asks for confirmation: y (yes), n (no) or Esc (cancel).

To replace every occurrence at once, add the -a flag:

replace "old" "new" -a

One point of syntax changes everything else: micro reads the search pattern as a regular expression, not as literal text. The dot there means "any character", so a pattern 192.168.1.1 would just as well match the string 192x168y1z1. Two ways to get a literal behaviour, your choice: escape each special character with a backslash, or add the -l flag, which turns regex interpretation off for the whole command. Flags are written separately: micro only knows -a and -l, and rejects a combined -al with the error Invalid flag: -al.

replace "192\.168\.1\.1" "10.0.0.1" -a
replace "192.168.1.1" "10.0.0.1" -a -l

Working with several files

Fixing a configuration often means comparing two files, or fetching a value somewhere else. Micro offers two layouts for that, tabs and split screens, without leaving the session.

Tabs

Micro can open several files in tabs, just like a web browser. The tab bar appears at the top of the screen.

ActionShortcut or command
Open a file in a new tabCtrl+E → tab file.txt, or Ctrl+T (empty tab) then Ctrl+O
Next tabAlt+.
Previous tabAlt+,
Close the current tabCtrl+Q

You can also open several files straight from the terminal:

Terminal window
micro file1.txt file2.yml file3.py

Each file opens in a separate tab.

Splits: show several files side by side

Splits divide the window to show two files (or more) at the same time. Use the command bar (Ctrl+E):

CommandResult
vsplit file.txtVertical split (side by side)
hsplit file.txtHorizontal split (one above the other)

To move between splits, press Ctrl+W. This shortcut cycles through the open panes.

A concrete example: you are editing a YAML file and need to look at a reference file at the same time:

  1. Open the main file: micro config.yml

  2. Press Ctrl+E and type: vsplit reference.yml

  3. Move between the two panes with Ctrl+W

  4. Edit the main file while referring to the file on the right

Two files open side by side in a vertical split: bash script on the left and docker-compose.yml on the right

Built-in terminal

Micro can open a real terminal inside the editor. It is very handy to run commands, launch tests or read logs without leaving the session. Press Ctrl+E and type:

term

The terminal does not open in a split by itself: if a single file is open, term creates a new tab; otherwise, it replaces the active pane, after offering to save it. To get the terminal below your code, first open an empty split with hsplit, then type term in that new pane.

Built-in terminal in micro: code at the top and an interactive shell at the bottom in a horizontal split

In a terminal pane, keystrokes go to the shell, so micro's shortcuts are typed twice in a row. Ctrl+W Ctrl+W returns to the neighbouring pane, Ctrl+Q Ctrl+Q closes the terminal. Typing exit in the shell closes it too, as anywhere else.

Multiple cursors: edit several places at once

Multiple cursors let you change several places in the file at the same time. The feature was popularised by Sublime Text and VS Code, and micro offers it natively in the terminal.

Placing multiple cursors

The four methods do not serve the same job. Alt+N follows the content: it looks for the next occurrence of the selected word, wherever it is, which suits renaming a variable. Alt+M follows the geometry: it puts a cursor at the start of each line of the selection, regardless of the text, which suits column editing. Ctrl+Click and Alt+Shift+Arrows cover the irregular cases that neither of them catches.

MethodHow to do it
MouseCtrl+Click wherever you want a cursor
Next occurrenceSelect a word, then Alt+N to add a cursor on the next occurrence (repeat to add more)
Start of each lineSelect several lines, then Alt+M to put a cursor at the start of each selected line (vertical block style)
Line by lineAlt+Shift+Up / Alt+Shift+Down to add a cursor above or below

Managing multiple cursors

These shortcuts are your reverse gear. The most useful day to day is Alt+X: when you add cursors with Alt+N and the next occurrence must not be changed, it skips it and puts the next cursor on the one after. Without it, you have to leave multi-cursor mode and start again. Alt+P removes the last cursor placed, which fixes one Alt+N too many without losing the previous ones.

ShortcutAction
Alt+PRemove the last cursor added
Alt+CRemove all extra cursors
Alt+XSkip the current occurrence and move to the next
EscGo back to a single cursor

Step-by-step example: rename a variable

The situation: you have a Python script where the variable serveur_ip appears 6 times, and you want to rename it server_address.

  1. Select the word serveur_ip (double-click).

  2. Press Alt+N 5 times to add a cursor on each following occurrence. Each press adds a new cursor on the next occurrence of serveur_ip. Use Alt+X to skip an occurrence without placing a cursor on it.

  3. Type server_address. All 6 occurrences are replaced at the same time.

  4. Press Esc to go back to a single cursor.

Multiple cursors added one by one with Alt+N on the occurrences of serveur_ip in a Python file

It is considerably faster than a find and replace, especially when you want to check each occurrence visually before changing it.

Step-by-step example: prefix several lines

The situation: you have a list of servers and you want to turn the first 5 lines into items of a YAML list, in one go.

  1. Select the 5 lines to change (with Shift+Down arrow).

  2. Press Alt+M. A cursor appears at the start of each selected line.

  3. Type the prefix you want (for example -). The text is inserted at the start of every line at the same time.

  4. Press Esc to go back to a single cursor.

Alt+M is ideal for column editing (adding a prefix, aligning text, commenting several lines).

Customise micro

The default settings are fine for troubleshooting, but two of them deserve a change from your first serious use: using spaces rather than tabs (tabstospaces defaults to false), and saving the undo history.

The settings.json file

Micro's configuration lives in ~/.config/micro/settings.json. Every option changed with the set command is saved automatically to this file. You can also edit it directly: the JSON format is easy to version and to share between machines.

Here is a recommended starting configuration for DevOps use:

{
"autoindent": true,
"colorscheme": "gruvbox",
"cursorline": true,
"diffgutter": true,
"hlsearch": true,
"hltrailingws": true,
"mouse": true,
"rmtrailingws": true,
"ruler": true,
"savecursor": true,
"saveundo": true,
"scrollbar": true,
"scrollmargin": 5,
"softwrap": true,
"tabsize": 4,
"tabstospaces": true,
"wordwrap": true
}

The key options explained:

OptionValueWhat it does
diffguttertrueShows Git diff markers +/~/- in the gutter
hltrailingwstrueHighlights trailing whitespace, very useful for YAML
rmtrailingwstrueRemoves trailing whitespace automatically on save
savecursortrueRemembers the cursor position between sessions
saveundotrueKeeps the undo history even after closing (persistent undo)
scrollbartrueShows a scroll bar on the side
softwraptrueWraps long lines automatically
tabstospacestrueInserts spaces instead of tabs (recommended for YAML, Python)

The diffgutter option is the most visible in use: as soon as the file is tracked by Git, the left gutter marks every added, changed or deleted line, without leaving the editor. It defaults to false, hence the point of turning it on in a starting configuration.

Git diff markers in micro's gutter: + for additions, ~ for changes

Per file type configuration

Micro can apply different settings depending on the file type. It is very handy, since a YAML file uses 2-space indentation while a Python file uses 4.

Add these sections to your settings.json:

{
"ft:yaml": {
"tabsize": 2
},
"ft:python": {
"tabsize": 4,
"tabstospaces": true
},
"ft:go": {
"tabstospaces": false,
"tabsize": 4
},
"ft:markdown": {
"softwrap": true,
"wordwrap": true
},
"*.yml": {
"tabsize": 2
}
}

The ft:language syntax targets files by detected type, and *.extension targets them by glob (file name pattern). Both work, but ft: is more reliable because it relies on micro's automatic detection, which also recognises a file without an extension.

Colour schemes

Micro offers several built-in colour schemes. Switch scheme with:

set colorscheme gruvbox

The available schemes depend on your terminal's colour support. The default scheme is called default, and all it does is include monokai:

CategoryAvailable schemes
256 colours (recommended)monokai (default), gruvbox, zenburn, darcula, twilight, railscast, bubblegum
16 colourssimple, solarized, cmc-16, geany
True colour (24-bit)solarized-tc, atom-dark, gruvbox-tc, material-tc, cmc-tc

Micro with the Gruvbox scheme on a YAML file, warm tones and rich highlighting

You choose by elimination, starting from what your terminal can do. Most modern terminals handle 256 colours: so start with gruvbox or monokai. If the colours look washed out or wrong, fall back on simple, which only uses the 16 basic colours and works everywhere, including on a serial console. Conversely, if your terminal advertises true colour (24-bit), the schemes ending in -tc, such as gruvbox-tc, render the most faithful shades.

Customise the keyboard shortcuts

Shortcuts are configured in ~/.config/micro/bindings.json. Each entry binds a key combination to an action: an internal action name such as Save, or a command prefixed with command:.

For example, to add custom shortcuts:

{
"Alt-s": "Save,Quit",
"Ctrl-r": "command-edit:replace ",
"F5": "command:term"
}

This file adds three shortcuts:

  • Alt+S: saves and quits in a single action
  • Ctrl+R: opens the replace command straight away, instead of the default ToggleRuler action (show or hide line numbers)
  • F5: opens a built-in terminal

The command: prefix is mandatory to run a command-bar command: an entry "F5": "term" is rejected at startup with the message Error in bindings: action term does not exist. The command-edit: prefix pre-fills the bar without running it, which lets you type the arguments.

To see which action is bound to a key, use the command:

showkey Ctrl-c

A key is not limited to a single action: three separators let you chain them, and this mechanism explains micro's default behaviour. The comma , always runs the next action, the vertical bar | only runs it if the previous one failed, and the ampersand & only runs it if the previous one succeeded. That is how the Tab key is wired by default to Autocomplete|IndentSelection|InsertTab: the editor first tries autocompletion, falls back on indenting the selection if that fails, and only inserts a tab as a last resort. This chain is also the first place to look when a key "does not do what it should".

Macros: automate repetitive tasks

Macros let you record a sequence of actions and replay it. It works just like macros in other editors, with a single recording at a time.

ShortcutAction
Ctrl+UStart / stop recording a macro
Ctrl+JReplay the recorded macro

Example: add a prefix to each line

The situation: you have a list of server names and you want to add ssh user@ in front of each name.

  1. Put your cursor at the start of the first line.

  2. Press Ctrl+U to start recording.

  3. Type ssh user@ at the start of the line.

  4. Press Home then Down arrow to go to the start of the next line.

  5. Press Ctrl+U to stop recording.

  6. Press Ctrl+J as many times as needed to apply the macro to the following lines.

Install and manage plugins

Micro has a built-in plugin manager that downloads and installs plugins from an official repository. Plugins are written in Lua and extend the editor's features.

Plugin manager commands

Open the command bar (Ctrl+E) and type:

CommandWhat it does
plugin availableLists every available plugin
plugin search wordSearches for a plugin by keyword
plugin install nameInstalls a plugin
plugin remove nameRemoves a plugin
plugin updateUpdates every plugin
plugin listLists installed plugins

Here is a selection of plugins that are useful for DevOps work:

PluginWhat it brings
filemanagerTree file explorer (like NERDTree in Vim)
jumpJump quickly to a function or heading in the file
quoterWrap a selection in quotes or brackets
manipulatorText transformations: uppercase, camelCase, snake_case...
aspellSpell checking
wcWord and character counter

To install the filemanager plugin, for example:

plugin install filemanager

Once installed, open the tree with the tree command. You can also bind that command to a shortcut in bindings.json, choosing a free key: Alt-n is already taken by multiple cursors.

{
"Alt-t": "command:tree"
}

filemanager plugin showing the project tree on the left and the open file on the right

Plugins built in by default

Micro ships with several preinstalled plugins that you may already be using without knowing it:

PluginWhat it doesEnabled by default
autocloseAutomatically closes brackets, quotes and bracesYes
commentComments / uncomments the selection (detects the language)Yes
ftoptionsAdapts indentation to the file typeYes
linterAnalyses the code and shows errors in the gutterYes
diffIntegrates the diff gutter with GitYes
statusAdds Git information to the status barYes
literateHighlighting for the Literate programming toolYes

To comment or uncomment lines, the comment plugin provides the comment command, available through Ctrl+E, and already binds it to two shortcuts: Alt+/ and Ctrl+_, the sequence most terminal emulators send when you type Ctrl+/. No configuration is needed; check the binding with the showkey command:

showkey Alt-/

The built-in help

Micro embeds complete documentation that you can read straight from the editor. Press Ctrl+G to open the main help. You can also read specific topics through the command bar:

CommandTopic
helpHelp home page
help keybindingsAll default shortcuts
help commandsAll available commands
help optionsAll configuration options
help colorsColour schemes and syntax highlighting
help pluginsWriting and managing plugins
help defaultkeysJSON list of every default shortcut

Help opens in a horizontal split. Close it with Ctrl+Q when you are done.

On a wide screen, this horizontal layout wastes space and truncates your file. The helpsplit option, which defaults to hsplit, changes the split direction so that help opens on the right and leaves the file readable on the left:

set helpsplit vsplit

Troubleshooting

Half of the problems listed here do not come from micro but from your terminal or your graphical session. Before going further, print echo $TERM and echo $LANG: a TERM value limited to xterm explains on its own the lack of colours, and a LANG without UTF-8 explains unreadable accented characters. The rows about the clipboard, rejected shortcuts and the ftoptions plugin are the only ones whose cause really lies inside the editor.

SymptomLikely causeSolution
No syntax highlightingTerminal does not support 256 coloursset colorscheme simple
Strange coloursWrong TERM variableexport TERM=xterm-256color in your .bashrc
Copy and paste do not work with other applicationsClipboard tools missingInstall xclip (X11) or wl-clipboard (Wayland)
Tabs have the wrong widthWrong tabsize optionset tabsize 2 (or 4 depending on your needs)
My options are ignored for some filesThe ftoptions plugin overrides the valuesset ftoptions false or configure with ft:type
Error in bindings: action … does not exist at startupCommand written without its prefix in bindings.jsonWrite command:term, not term
Invalid flag: -al on a replaceFlags combinedSeparate them: -a -l
Text does not wrapsoftwrap turned offset softwrap true
The mouse does not workMouse support turned offset mouse true
micro: command not foundThe binary is not in the PATHsudo install -m 0755 micro /usr/local/bin/micro
Odd characters on screenIncompatible encoding or terminalCheck that $TERM and $LANG are set correctly
Autocompletion does not triggerNot enough contextPress Tab after typing at least 2-3 characters

Key points

  • Micro uses standard shortcuts (Ctrl+S, Ctrl+C, Ctrl+V, Ctrl+Z): no modes to learn, no mnemonics to memorise.
  • Installation is instant: a single static binary, no dependency, no compilation, and a SHA-256 checksum to verify.
  • Full mouse support (click, selection, wheel, multiple cursors) is a major asset for daily work in a terminal.
  • Native multiple cursors (Alt+N for occurrences, Alt+M for column editing, Ctrl+Click with the mouse) let you change several places at once, a considerable time saver.
  • Configuration is in JSON (settings.json, bindings.json), easy to read, version and share; a command is bound there with the command: prefix.
  • The built-in plugin manager installs extensions in one command (plugin install name).
  • The built-in terminal (term) lets you run commands without leaving the editor.
  • For syntax highlighting, micro supports more than 130 languages without any extra configuration.

Knowledge check

Check that the essentials of this guide are acquired. The questions only cover what has just been explained here.

Knowledge check

Check what you have learned with this interactive quiz

6 questions
6 min
70% to pass

How it works

  • The timer starts when you click Start
  • Multiple choice, true/false and short answer questions
  • You can move between questions
  • Detailed results are shown at the end

Starts the quiz and the timer

FAQ: frequently asked questions

Is this project useful to you?

The guides, courses, quizzes and labs stay free. If you use them regularly, you can contribute to their upkeep and development.

Become a supporting member (new tab) One-time support (new tab) Learn more

Follow the project on LinkedIn