zyedidia / micro

A modern and intuitive terminal-based text editor
https://micro-editor.github.io
MIT License
24.42k stars 1.16k forks source link

Backscape in multicursor mode isn't multicursor at all #3175

Open X-Ryl669 opened 3 months ago

X-Ryl669 commented 3 months ago

Description of the problem or steps to reproduce

Start a multicursor on multiple line (Alt + Shift and then Down multiple time to select numerous line) Move the cursor to the right and hit Backspace key (above the Return key). Only the last cursor will delete the previous rune, not all of them.

Instead, if you move the cursor left and hit "Delete", all multicursors will delete the next rune.

I think it should respect the multicursor here.

dmaluka commented 2 months ago

I'm not reproducing this. Backspace deletes the previous rune at all cursors, not just one. Could you describe your steps more precisely?

X-Ryl669 commented 2 months ago

See here: https://asciinema.org/a/6Cz4oZpvNtFLGm4FcgyTI3Fnd

dmaluka commented 2 months ago

Hmm, I've repeated exactly the same steps as in your video, with exactly the same micro version (2.0.13, commit 68d88b57) but Backspace deletes character at the end of all 3 lines for me, not just the last one like in your video.

Maybe you have some plugins that somehow alter the default behavior, or maybe some settings enabled that trigger some bug in micro which is not observed with the default settings.

Could try with a clean config directory (e.g. via micro -config-dir / or something like that)?

X-Ryl669 commented 2 months ago

Here's my settings.json

{
    "colorscheme": "monokai",
    "filemanager.openontab": true,
    "ignorecase": false,
    "lsp.autocompleteDetails": true,
    "lsp.formatOnSave": false,
    "rmtrailingws": true,
    "scrollbar": true,
    "tabreverse": false,
    "tabstospaces": true
}

And the bindings.json

{
    "Alt-!": "NextSplit",
    "Alt-,": "PreviousTab",
    "Alt-/": "lua:comment.comment",
    "Alt-:": "PreviousSplit",
    "Alt-;": "NextTab",
    "Alt-d": "command:definition",
    "Alt-f": "command:format",
    "Alt-g": "ToggleKeyMenu",
    "Alt-k": "command:hover",
    "Alt-o": "command:tree",
    "Alt-r": "command:references",
    "AltCtrlSpace": "command:palettero",
    "Ctrl-a": "SelectAll",
    "Ctrl-c": "CopyLine|Copy",
    "Ctrl-d": "DuplicateLine",
    "Ctrl-e": "CommandMode",
    "Ctrl-f": "lua:bounce.keepLoc,Find",
    "Ctrl-g": "command-edit:goto ",
    "Ctrl-h": "ToggleHelp",
    "Ctrl-j": "PlayMacro",
    "Ctrl-k": "CutLine",
    "Ctrl-l": "AddTab,command:term bash",
    "Ctrl-q": "QuitAll",
    "Ctrl-r": "ToggleRuler",
    "Ctrl-t": "AddTab",
    "Ctrl-u": "ToggleMacro",
    "Ctrl-v": "Paste",
    "Ctrl-w": "Quit",
    "Ctrl-x": "Cut",
    "Ctrl-y": "Redo",
    "Ctrl-z": "Undo",
    "CtrlEnd": "CursorEnd",
    "CtrlHome": "CursorStart",
    "CtrlPageDown": "NextTab",
    "CtrlPageUp": "PreviousTab",
    "CtrlSpace": "command:lspcompletion",
    "CtrlUnderscore": "lua:comment.comment",
    "Delete": "Delete",
    "End": "EndOfLine",
    "F3": "FindNext",
    "Home": "StartOfText",
    "Insert": "ToggleOverwriteMode",
    "PageDown": "CursorPageDown",
    "PageUp": "CursorPageUp",
    "Shift-F3": "FindPrevious",
    "Shift-F4": "lua:bounce.gotoStoredLoc"
}

I only have "bounce", "detectindent", "filemanager", "lsp" as plugins.

With an empty config dir, I don't see this behavior either.

Andriamanitra commented 2 months ago

@X-Ryl669 I'm unable to reproduce the issue even with your settings and set of plugins. Could you paste the outputs of these two commands?

micro -version
micro -plugin list
dmaluka commented 2 months ago

@X-Ryl669 I'm unable to reproduce the issue even with your settings and set of plugins.

Neither am I.

X-Ryl669 commented 2 months ago
% micro -version
Version: 2.0.13
Commit hash: 68d88b57
Compiled on October 21, 2023
% micro -plugin list
The following plugins are currently installed:
bounce (2.0.0)
detectindent (1.1.0)
filemanager (3.5.3)
lsp (0.6.2)
autoclose (1.0.0)
comment (1.0.0)
diff (1.0.0)
ftoptions (1.0.0)
linter (1.0.0)
literate (1.0.0)
status (1.0.0)