This changes the behavior of cursor movement so that all cursors are
adjusted when a change is made to the buffer. Cursors don't have to be
manually moved after calling Insert or Remove, those functions will move
the cursor properly on their own.
This should fix issues 1-3 mentioned in the multiple cursors discussion.
Ref #5
With the new code that allows binding mouse buttons this was remarkably
easy to add.
The new binding is:
"Ctrl-MouseLeft": "MouseMultiCursor"
Note: A number of terminals don't support Ctrl-MouseLeft (macOS
especially) so you might want to rebind to MouseRight or MouseMiddle.
This commit creates new keybindings and actions to handle multiple
cursors.
Here are the defaults:
"Alt-n": "SpawnMultiCursor",
"Alt-p": "RemoveMultiCursor",
"Alt-c": "RemoveAllMultiCursors",
"Alt-x": "SkipMultiCursor",
This commit enables users to bind the mouse buttons (left, middle,
right buttons and the scroll wheel).
The default bindings now include the mouse bindings:
"MouseWheelUp": "ScrollUp",
"MouseWheelDown": "ScrollDown",
"MouseLeft": "MousePress",
"MouseMiddle": "PastePrimary",
Mouse buttons can now also be bound to normal actions. For example:
"MouseLeft": "Backspace"
This also means that plugins can access mouse event callbacks in the
standard way ('onAction').
More documentation for this will be coming soon.
Fixes#542
* corrected spelling error and missing public function comments
* check for readonly and if true do not insert character
* mouse middle click checks for view type readonly and does not paste if view is readonly
* check for view readonly with binding keys and if readonly do not change the content.
This option makes micro treat spaces at the beginning of lines as if
they are tabs. This option only does anything if tabstospaces is already
on. E.g. micro will move over 4 spaces at once when at the start of a
line.
Closes#616