diff --git a/README.md b/README.md index a234ba76..66174e4e 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![Join the chat at https://gitter.im/zyedidia/micro](https://badges.gitter.im/zyedidia/micro.svg)](https://gitter.im/zyedidia/micro?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/zyedidia/micro/blob/master/LICENSE) -> Micro is very much a work in progress +> Micro is still a work in progress Micro is a terminal-based text editor that aims to be easy to use and intuitive, while also taking advantage of the full capabilities of modern terminals. It comes as one single, batteries-included, static binary with no dependencies, and you can download and use it right now. @@ -20,13 +20,17 @@ Here is a picture of micro editing its source code. * No dependencies or external files are needed -- just the binary you can download further down the page * Common keybindings (ctrl-s, ctrl-c, ctrl-v, ctrl-z...) * Keybindings can be rebound to your liking +* Sane defaults + * You shouldn't have to configure much out of the box (and it is extremely easy to configure) * Extremely good mouse support + * This means mouse dragging to create a selection, double click to select by word, and triple click to select by line * Cross platform (It should work on all the platforms Go runs on) * Plugin system (plugins are written in Lua) +* Automatic linting and error notifications * Syntax highlighting (for over [75 languages](runtime/syntax)!) * Colorscheme support + * By default, micro comes with 16, 256, and true color themes. * True color support (set the `MICRO_TRUECOLOR` env variable to 1 to enable it) -* Sane defaults * Copy and paste with the system clipboard * Small and simple * Easily configurable @@ -34,26 +38,29 @@ Here is a picture of micro editing its source code. # Installation -This section gives instructions for how to simply install micro using the prebuilt binaries, or building from source. +To install micro, you can download a prebuilt binary, or you can build it from source. You can also install micro with a few package managers (on OSX, Arch Linux, and CRUX). -See the [wiki page](https://github.com/zyedidia/micro/wiki/Installing-Micro) for details. +See this [wiki page](https://github.com/zyedidia/micro/wiki/Installing-Micro) for details. + +Please note that micro uses the amazing [tcell library](https://github.com/gdamore/tcell), but this +means that micro is restricted to the platforms tcell supports. As a result, micro does not support +Plan9, NaCl, and Cygwin (although this may change in the future). ### Prebuilt binaries -To easily install micro on any of the operating systems listed below, just download the tar file, -extract it, and run the binary inside. It's as simple as that! +All you need to install micro is one file, the binary itself. It's as simple as that! + +You can download the correct binary for your operating system from the list in the [nightly build release](https://github.com/zyedidia/micro/releases/tag/nightly). Micro has no released version, instead these binaries are compiled every night and you can find the -commit it was compiled with by running `micro -version`. +commit they were compiled with by running `micro -version`. -[You can find the binaries in the nightly build release](https://github.com/zyedidia/micro/releases/tag/nightly) - -To run the micro binary just run `./micro` (you probably want to place the binary on your `$PATH` for ease of use). +If your operating system does not have binary, but does run Go, you can build from source. ### Building from source -Make sure that you have Go version 1.4 or greater. +Make sure that you have Go version 1.5 or greater (Go 1.4 will work for the systems like support CGO then). ```sh go get -u github.com/zyedidia/micro/... @@ -83,17 +90,14 @@ ifconfig | micro You can move the cursor around with the arrow keys and mouse. -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. +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. -You can run `$ micro -version` to get the version number. Since there is no release, this just gives you the -commit hash. The version is unknown if you built with `go get`, instead use `make install` or `make` to get a binary -with a version number defined. +### Documentation and Help -### Help text - -See the [help text](./runtime/help/help.md) for information about keybindings, editor commands, colorschemes and -configuration options. +Micro has a built-in help system which you can access by pressing `CtrlE` and typing `help`. Additionally, you can +view the help files online [here](https://github.com/zyedidia/micro/tree/master/runtime/help). # Contributing diff --git a/cmd/micro/runtime.go b/cmd/micro/runtime.go index 2cf2c5e7..224ffbf9 100644 --- a/cmd/micro/runtime.go +++ b/cmd/micro/runtime.go @@ -411,7 +411,7 @@ func runtimeHelpPluginsMd() (*asset, error) { return a, nil } -var _runtimePluginsAutocloseAutocloseLua = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xb4\x56\x5b\x6b\xa3\x4e\x14\x7f\xcf\xa7\x38\xd8\x87\x28\x35\x81\xfc\x1f\x03\xfe\xa1\xed\x42\x29\x74\x2f\x94\x65\xbb\x4b\xdb\x87\xc9\x78\xd4\xa1\xe6\x4c\x38\x33\x26\x5d\x4a\xbf\xfb\x32\x6a\x8d\x26\x31\x17\x68\xf3\x60\xd4\xf9\xfd\xce\xfd\x62\x52\x90\xb4\x4a\x13\xc8\x4c\xf0\x85\xf5\x8d\xe5\x10\x54\x30\x00\x00\x60\xb4\x05\x13\x18\xcb\x8a\xd2\xb1\x29\x66\xf5\x69\x09\x40\x8a\x07\x03\x95\xc0\x35\xda\xef\x0b\x27\xc1\xf7\x44\x61\xb5\xcc\xb5\x41\x2f\x80\x28\x02\x52\x39\xd8\x0c\xa9\x94\x75\x11\xc7\xdb\xb0\x10\x2c\x17\x58\xcb\xca\xb5\x14\x39\x34\x87\x3f\x84\x62\x03\x11\xbc\x7a\x8f\xde\xa3\xe7\x85\xe0\x0d\x87\xee\xea\x07\xee\xfa\xfa\xe6\xae\x0f\x4f\xde\x5b\x8b\xf7\x0d\x57\xb9\xa2\x16\x73\x0b\x3b\x68\xdc\xd5\x74\x57\x10\xfa\x5c\x79\xaa\x12\x20\x6d\xfb\x7c\x69\x9c\x58\x07\xa5\x7c\x2c\xcd\x76\x37\x95\x09\x4b\x88\xe0\xaa\xe0\x5f\x0a\x57\x7e\x25\x36\xd1\x0c\x0a\x22\x98\x84\x70\xb6\xe1\x58\xac\x1b\x89\x2a\x01\x76\xf1\xaa\x33\xd0\x05\x3e\xa8\xa7\x10\xfe\xdb\xb0\x61\xad\x53\x16\x7c\xab\x08\x21\x82\xe5\xf8\xb2\x48\xa6\xee\xc1\x5f\x8e\xaf\x0a\x36\x9a\xc7\x7f\x82\x41\x87\xa3\x92\x77\x25\x35\x2f\x84\x06\xfb\xfb\x7c\x12\x9c\x6e\x85\xfb\x2d\xa7\x97\x42\x3e\x9b\x85\x90\xe8\x27\x22\x37\x18\xec\x80\x54\x5a\xee\x54\x9a\xd9\x3e\xd0\x8c\x51\x3c\x77\xde\x36\x01\x6e\x39\xb0\x36\x18\xfe\x87\x09\x08\x8a\xc1\xbf\x31\xf7\x9a\xe3\xab\x4c\xb0\xdf\xef\xdf\x68\x12\x04\xa0\x79\x4f\x04\x46\x87\x22\xe0\x24\xec\x0c\xc1\x6e\xd3\x77\xdd\x1f\x4e\xf6\xe4\xe3\x92\xdd\x8a\x55\x14\xc1\xd9\x3b\x5f\x73\x59\xed\x47\x45\xed\xbc\xd7\xe7\xd1\xc8\xbd\x87\xe1\x68\x08\x19\x32\x82\x32\x60\x35\xc4\xc8\x98\x20\x49\x2c\x0f\x17\x5a\x91\x45\x76\x07\x8d\xc8\x5b\x2d\x61\x95\x29\x99\x39\x86\xf3\x7f\x2e\xac\x92\x22\xcf\xff\xc2\x5c\xc4\xb8\x4b\xcf\x2a\x43\x02\xa9\x69\x89\x6c\x15\xa5\x90\x6a\x37\x94\x0a\x69\x4b\x95\x79\x21\x76\x91\x6e\x2c\x10\x62\x5c\x42\x66\x58\x1b\xc6\xce\xb4\x18\x66\x28\x45\x61\x2a\x1b\x9b\x91\x80\x2f\x0b\x74\x22\x05\x90\xa6\xc6\xf4\x4a\xd1\x76\x45\x97\x19\xb8\x21\x83\x6c\xfd\x51\xdb\xb9\x70\x6f\x0b\x1d\x5b\xf6\x9b\xf7\xee\xbf\x6c\x87\xc6\xdc\x05\x63\xa5\xbe\x1e\x7b\xfe\xa7\x8e\xb2\x23\x2b\xb0\x03\x75\x13\x16\xa2\x3d\x0d\xd7\xc6\x13\xbe\xd8\x83\x84\xf3\x49\x9b\xb2\x72\x53\xfe\x1a\xed\x2d\x8a\x58\x51\x7a\x9f\x29\x8b\xd5\x18\xaa\xa9\x15\x78\x8e\xc6\x20\xa5\xc8\xd3\xaf\x68\x8c\x48\xcb\x63\xa7\x2a\x04\x0f\xbc\xb0\xd1\x5c\xf7\xcf\xe6\xd0\xee\x6c\x95\xee\xd8\x6e\x7c\xec\xf4\x73\x9b\xd0\xdb\xd1\x2e\x4d\x8d\xc7\xfb\xe9\xfd\x73\xb7\x9b\xff\xde\xd9\x5b\xc1\x7e\x8a\x59\x2f\x64\x4f\x31\x7b\x8f\xe4\xc1\x78\x0c\x2b\xb3\xcd\xab\x3f\x10\x4a\xa9\x47\x55\x70\xfb\xb3\xc2\xad\xfe\xed\x92\x5e\xaf\x92\x4f\x2b\xe7\x13\x56\xf3\x09\x55\x0f\x1f\xb1\x5f\xdd\x36\xdb\xd3\x2e\xa7\x2f\x8e\xe5\xf4\x0b\xe6\x68\xb7\x8a\xe3\x60\x52\xfe\x05\x00\x00\xff\xff\x5f\x4f\xb5\xed\x18\x0a\x00\x00") +var _runtimePluginsAutocloseAutocloseLua = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xb4\x56\x5f\x4b\xe3\x40\x10\x7f\xef\xa7\x18\xe2\x43\x13\x4c\x0b\xbd\x47\x21\x07\xea\x81\x08\x72\x77\xc8\x71\xde\xa1\x3e\x6c\x37\x93\x66\x31\xce\x96\xd9\xdd\xd6\x43\xfc\xee\xc7\x26\x31\x4d\xda\xa6\x7f\x40\x7d\x88\x9b\xec\xfc\x66\x7e\xf3\xbf\x99\x23\x69\x95\x26\x90\xb9\xe0\x73\x1b\x1a\xcb\x31\xa8\x68\x00\x00\xc0\x68\x1d\x13\x18\xcb\x8a\x66\x63\xe3\xa6\xf5\x6d\x29\x80\x94\x0e\x06\x2a\x83\x2b\xb4\x3f\xe6\x5e\x43\x18\x08\x67\xb5\x2c\xb4\xc1\x20\x82\x24\x01\x52\x05\xd8\x1c\xa9\xd4\x75\x9e\xa6\x9b\x62\x31\x58\x76\x58\xeb\x2a\xb4\x14\x05\x34\x97\x3f\x85\x62\x03\x09\xbc\x06\x0f\xc1\x43\x10\xc4\x10\x0c\x87\xfe\x19\x46\xfe\xf9\xfa\xe6\x9f\xf7\x8f\xc1\x5b\x0b\xf7\x1d\x97\x85\xa2\x16\x72\x43\x76\xd0\xb8\xab\xe9\xd6\x11\x86\x5c\x79\xaa\x32\x20\x6d\xfb\x7c\x69\x9c\x58\x05\xa5\x7c\x2d\x69\xfb\x43\x45\x61\x01\x09\x5c\x3a\xfe\xad\x70\x19\x56\x6a\x33\xcd\xa0\x20\x81\x49\x0c\x27\x6b\x8e\xa5\xba\xd1\xa8\x32\x60\x1f\xaf\x3a\x03\x5d\xc1\x7b\xf5\x18\xc3\x97\x35\x0e\x2b\x9b\xd2\xf1\x8d\x22\x84\x04\x16\xe3\x0b\x97\x9d\xf9\x97\x70\x31\xbe\x74\x6c\x34\x8f\xff\x46\x83\x0e\x46\x65\xef\x46\x6a\x5c\x0c\x8d\xec\x9f\xd3\x49\x74\x3c\x0b\xff\xb7\x38\xbb\x10\xf2\xc9\xcc\x85\xc4\x30\x13\x85\xc1\x68\x8b\x48\x65\xe5\x56\xcd\x72\xdb\x27\x34\x65\x14\x4f\x9d\xaf\x4d\x80\x5b\x0e\xac\x08\xc3\x57\x98\x80\xa0\x14\xc2\x6b\x73\xa7\x39\xbd\xcc\x05\x87\xfd\xfe\x8d\x26\x51\x04\x9a\x77\x44\x60\xb4\x2f\x02\x5e\xc3\xd6\x10\x6c\xa7\xbe\xed\xbc\x3f\xd9\x93\x8f\x4b\x76\x2b\x56\x49\x02\x27\xef\x78\xcd\x65\xb5\x1f\x14\xb5\xd3\x5e\x9f\x47\x23\xff\x1d\x86\xa3\x21\xe4\xc8\x08\xca\x80\xd5\x90\x22\x63\x86\x24\xb1\xbc\x9c\x6b\x45\x16\xd9\x5f\x34\x2a\x6f\xb4\x84\x65\xae\x64\xee\x11\xde\xff\x67\x61\x95\x14\x45\xf1\x0f\x9e\x45\x8a\xdb\xec\x2c\x73\x24\x90\x9a\x16\xc8\x56\xd1\x0c\x66\xda\x0f\x25\x27\x6d\x69\xb2\x70\x62\x1b\xe8\xda\x02\x21\xa6\xa5\xc8\x14\x6b\x62\xec\xa9\xa5\x30\x45\x29\x9c\xa9\x38\x36\x23\x01\x5f\xe6\xe8\x55\x0a\x20\x4d\x0d\xf5\xca\xd0\x66\x45\x97\x19\xb8\x26\x83\x6c\xc3\x51\xdb\xb9\x78\x67\x0b\x1d\x5a\xf6\xeb\x67\xff\xbf\x6c\x87\x86\xee\x9c\xb1\x32\x5f\x8f\xbd\xf0\x53\x47\xd9\x81\x15\xd8\x11\xf5\x13\x16\x92\x1d\x0d\xd7\x96\x27\x7c\xb1\x7b\x01\xa7\x93\x36\x64\xe9\xa7\xfc\x15\xda\x1b\x14\xa9\xa2\xd9\x5d\xae\x2c\x56\x63\xa8\x86\xd6\x1d\xb1\x3e\x86\x3b\x7b\xa2\x3b\x88\x1b\xd6\x9d\x0e\x6d\x03\x7a\x7b\xd4\x07\xbe\xf1\x61\x37\xbc\x7f\x92\x76\x33\xda\x3b\x4d\x2b\xb1\x5f\x62\xda\x2b\xb2\xa3\x3c\x83\x07\x0a\x60\x3c\x86\xa5\xd9\xc4\xd5\x2b\xbf\xd4\x7a\x50\x4d\xb6\x7f\x28\xf8\x65\xbe\x59\xa4\xab\xe5\xf0\x69\x05\x7a\xc4\xb2\x3d\xa2\x8e\xe1\x23\x36\xa6\xdf\x4f\x3b\x1a\xe0\xf8\x55\xb0\x38\xfb\x86\x05\xda\x8d\xe2\xd8\x9b\x94\xff\x01\x00\x00\xff\xff\xa6\x33\xae\x4d\xea\x09\x00\x00") func runtimePluginsAutocloseAutocloseLuaBytes() ([]byte, error) { return bindataRead( @@ -426,7 +426,7 @@ func runtimePluginsAutocloseAutocloseLua() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/plugins/autoclose/autoclose.lua", size: 2584, mode: os.FileMode(420), modTime: time.Unix(1471645316, 0)} + info := bindataFileInfo{name: "runtime/plugins/autoclose/autoclose.lua", size: 2538, mode: os.FileMode(420), modTime: time.Unix(1471723241, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/cmd/micro/view.go b/cmd/micro/view.go index 4080fa16..577a791c 100644 --- a/cmd/micro/view.go +++ b/cmd/micro/view.go @@ -89,8 +89,8 @@ func NewView(buf *Buffer) *View { return NewViewWidthHeight(buf, screenW, screenH-1) } -// NewViewWidthHeight returns a new view with the specified width and height percentages -// Note that w and h are percentages not actual values +// NewViewWidthHeight returns a new view with the specified width and height +// Note that w and h are raw column and row values func NewViewWidthHeight(buf *Buffer, w, h int) *View { v := new(View) diff --git a/runtime/plugins/autoclose/autoclose.lua b/runtime/plugins/autoclose/autoclose.lua index 2480ffe0..11f202d7 100644 --- a/runtime/plugins/autoclose/autoclose.lua +++ b/runtime/plugins/autoclose/autoclose.lua @@ -53,7 +53,6 @@ function preInsertNewline() local curRune = charAt(curLine, v.Cursor.X) local nextRune = charAt(curLine, v.Cursor.X+1) local ws = GetLeadingWhitespace(curLine) - messenger:Message(curRune, " ", nextRune) for i = 1, #autoNewlinePairs do if curRune == charAt(autoNewlinePairs[i], 1) then