2016-03-21 00:28:36 +03:00
|
|
|
# Micro
|
|
|
|
|
2016-03-25 22:09:24 +03:00
|
|
|
[![Build Status](https://travis-ci.org/zyedidia/micro.svg?branch=master)](https://travis-ci.org/zyedidia/micro)
|
2016-03-21 00:31:25 +03:00
|
|
|
[![Go Report Card](http://goreportcard.com/badge/zyedidia/micro)](http://goreportcard.com/report/zyedidia/micro)
|
2016-03-21 00:33:37 +03:00
|
|
|
[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/zyedidia/micro/blob/master/LICENSE)
|
2016-03-21 00:28:36 +03:00
|
|
|
|
2016-04-17 00:33:13 +03:00
|
|
|
> Micro is very much a work in progress
|
2016-03-21 00:28:36 +03:00
|
|
|
|
|
|
|
Micro is a command line text editor that aims to be easy to use and intuitive, while also taking advantage of the full capabilities
|
|
|
|
of modern terminals.
|
|
|
|
|
2016-04-17 00:33:13 +03:00
|
|
|
Here is a picture of micro editing its source code.
|
|
|
|
|
|
|
|
![Screenshot](./screenshot.png)
|
|
|
|
|
2016-03-21 00:28:36 +03:00
|
|
|
# Features
|
|
|
|
|
|
|
|
* Easy to use
|
|
|
|
* Common keybindings (ctrl-s, ctrl-c, ctrl-v, ctrl-z...)
|
|
|
|
* Extremely good mouse support
|
|
|
|
* Cross platform
|
2016-04-08 16:24:08 +03:00
|
|
|
* Syntax highlighting (in over [75 languages](runtime/syntax)!)
|
2016-04-17 00:33:13 +03:00
|
|
|
* Colorscheme support
|
|
|
|
* True color support (set the `MICRO_TRUECOLOR` env variable to 1 to enable it)
|
|
|
|
* Search and replace
|
|
|
|
* Undo and redo
|
2016-04-17 16:04:51 +03:00
|
|
|
* Unicode support
|
2016-04-17 00:33:13 +03:00
|
|
|
* Small and simple
|
|
|
|
* Configurable
|
2016-03-21 00:28:36 +03:00
|
|
|
|
2016-04-17 00:33:13 +03:00
|
|
|
If you'd like to see what has been implemented, and what I plan on implementing soon-ish, see the [todo list](todolist.md)
|
2016-03-21 00:28:36 +03:00
|
|
|
|
|
|
|
# Installation
|
|
|
|
|
2016-04-18 04:21:30 +03:00
|
|
|
### Homebrew
|
|
|
|
|
|
|
|
If you are on Mac, you can install micro using Homebrew:
|
|
|
|
|
|
|
|
```
|
|
|
|
brew tap zyedidia/micro
|
|
|
|
brew install --devel micro
|
|
|
|
```
|
|
|
|
|
|
|
|
Micro is devel-only for now because there is no released version.
|
|
|
|
|
2016-04-17 00:33:13 +03:00
|
|
|
### Prebuilt binaries
|
|
|
|
|
|
|
|
| Download |
|
|
|
|
| --- |
|
|
|
|
| [Mac OS X](http://zbyedidia.webfactional.com/micro/binaries/micro-osx.tar.gz) |
|
|
|
|
| [64 bit Linux](http://zbyedidia.webfactional.com/micro/binaries/micro-linux64.tar.gz) |
|
|
|
|
| [32 bit Linux](http://zbyedidia.webfactional.com/micro/binaries/micro-linux32.tar.gz) |
|
|
|
|
| [Arm Linux](http://zbyedidia.webfactional.com/micro/binaries/micro-linux-arm.tar.gz) |
|
|
|
|
|
|
|
|
Once you have downloaded the file, you can install the runtime files by running `./install.sh`
|
|
|
|
in the directory you downloaded. This will place all the runtime files in `~/.micro`.
|
|
|
|
|
|
|
|
To run the micro binary just run `./bin/micro` (you may want to place the binary on your path for ease of use).
|
|
|
|
|
|
|
|
### Building from source
|
2016-03-21 00:28:36 +03:00
|
|
|
|
2016-04-17 00:33:13 +03:00
|
|
|
Micro is made in Go so you must have Go installed on your system to build it, and make sure your `GOPATH` is set.
|
2016-03-21 20:08:10 +03:00
|
|
|
|
2016-03-21 00:28:36 +03:00
|
|
|
```
|
2016-03-21 20:08:10 +03:00
|
|
|
$ git clone https://github.com/zyedidia/micro
|
|
|
|
$ cd micro
|
|
|
|
$ make
|
2016-03-21 00:28:36 +03:00
|
|
|
```
|
|
|
|
|
2016-03-21 20:08:10 +03:00
|
|
|
This will build micro and put the binary in the current directory. It will also install syntax highlighting files to `~/.micro/syntax`.
|
|
|
|
|
|
|
|
Alternatively you can use `make install` instead of `make` if you want the binary to be added to you `GOBIN` (make sure that it is set).
|
|
|
|
|
2016-04-17 00:33:13 +03:00
|
|
|
# Usage
|
|
|
|
|
|
|
|
Once you have built the editor, simply start it by running `micro path/to/file.txt` or simply `micro` to open an empty buffer.
|
|
|
|
|
|
|
|
Micro also supports creating buffers from `stdin`:
|
|
|
|
|
|
|
|
```
|
|
|
|
$ ifconfig | micro
|
|
|
|
```
|
|
|
|
|
|
|
|
You can move the cursor around with the arrow keys and mouse.
|
|
|
|
|
|
|
|
#### Keybindings
|
|
|
|
|
|
|
|
* Ctrl-q: Quit
|
|
|
|
* Ctrl-s: Save
|
|
|
|
* Ctrl-o: Open file
|
|
|
|
* Ctrl-z: Undo
|
|
|
|
* Ctrl-y: Redo
|
|
|
|
* Ctrl-f: Find
|
2016-04-17 21:30:49 +03:00
|
|
|
* Ctrl-n: Find next
|
|
|
|
* Ctrl-p: Find previous
|
2016-04-17 00:33:13 +03:00
|
|
|
* Ctrl-a: Select all
|
|
|
|
* Ctrl-c: Copy
|
|
|
|
* Ctrl-x: Cut
|
|
|
|
* Ctrl-v: Paste
|
|
|
|
* Ctrl-h: Open help
|
|
|
|
* Ctrl-u: Half page up
|
|
|
|
* Ctrl-d: Half page down
|
|
|
|
* PageUp: Page up
|
|
|
|
* PageDown: Page down
|
|
|
|
* Ctrl-e: Execute a command
|
|
|
|
|
|
|
|
You can also use the mouse to manipulate the text. Simply clicking and dragging will select text. You can also double click
|
|
|
|
to enable word selection, and triple click to enable line selection.
|
|
|
|
|
|
|
|
# Configuration
|
|
|
|
|
|
|
|
At this point, there isn't much you can configure.
|
|
|
|
Micro has a few options which you can set:
|
|
|
|
|
|
|
|
* colorscheme
|
|
|
|
* tabsize
|
|
|
|
* syntax
|
|
|
|
|
|
|
|
To set an option run Ctrl-e to execute a command, and type `set option value`, so to set the tabsize to 8 it would be `set tabsize 8`.
|
|
|
|
|
|
|
|
Any option you set in the editor will be saved to the file `~/.micro/settings.json` so, in effect, your configuration file will be created
|
|
|
|
for you. If you'd like to take your configuration with you to another machine, simply copy the `settings.json` to the other machine.
|
|
|
|
|
|
|
|
# Contributing
|
2016-03-21 00:28:36 +03:00
|
|
|
|
2016-04-17 00:33:13 +03:00
|
|
|
If you find any bugs, please report them! I am also happy to accept pull requests from anyone.
|