Change:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Also please test using the latest insiders build to make sure your issue has not already been fixed: --<!-- Use Help Report Issue to prefill these. --- VSCode Version: 1.51.1 / 1.52.0-insider OS Version: Ubuntu 20.04 / Windows 10 Steps to Reproduce: 4x spaces at the beginning of a line multiple cursors on that line enter Expected: Insert newline at each of the positions where cursor is present Actual Behavior: Inserts newline only at the first (NOT the left most) cursor position (Let me know the relevant settings values required) Addiditional info: I use tabs (width of 4 spaces) for indentation for formatting ! <!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes
I think this might be caused by one of your installed extensions. Here it is on my machine: ! To validate this, could you please : Run the command Developer: Toggle Keyboard Shortcuts Troubleshooting This will activate logging of dispatched keyboard shortcuts and will open an output panel with the corresponding log file. You can then press <kbdEnter</kbdand check what command is invoked. If you are having trouble understanding the output, please feel free to paste here and I can help decipher it for you.
Here is the renderer keyboard troubleshoot log: Also, the I have disabled all the extensions. And, now, I can reproduce this with the latest stable too and in Ubuntu.
It is also not exclusive to the multi cursors created using keybinding. I can reproduce this by placing mulitple cursors created using the too.
From the keyboard log, I can confirm that nobody is "stealing" Enter via keybindings. But there is another way that extensions can intercept that, via our command. That is the way in which intercepts Enter. Does this reproduce when disabling all extensions? Press and then choose !
Hey , In all of my previuos posts I have made sure that I have disabled all the extensions (by running the command that you have mentioned) and also, at the end of each of my posts I have explicitly stated that I had disabled the extensions. Can it have anything to do with my settings related to tabs? May be, inspect my settings here: (which has ) and, try to reproduce the issue by applying the exact same settings (copy paste my ).
Also, , Please carefully go through each of the above posts. It seems like you are not reading all the comments. It will save me from repeating the same thing again and again. Thanks.
Thank you for your patience, with your settings, I could finally reproduce. I missed the fact that the editor is configured to use tabs and I believed you might be using vim due to the block cursor in the GIF. You can workaround by using .

Discussion:
if (ir) { let oldEndViewColumn = CursorColumns.visibleColumnFromColumn2(config, model, range.getEndPosition()); const oldEndColumn = range.endColumn; <del> let beforeText = 'n'; if (indentation !== config.normalizeIndentation(ir.beforeEnter)) { beforeText = config.normalizeIndentation(ir.beforeEnter) + lineText.substring(indentation.length, range.startColumn - 1) + 'n'; range = new Range(range.startLineNumber, 1, range.endLineNumber, range.endColumn); } </del> const newLineContent = model.getLineContent(range.endLineNumber); const firstNonWhitespace = strings.firstNonWhitespaceIndex(newLineContent); if (firstNonWhitespace >= 0) {

} if (keepPosition) { <del> return new ReplaceCommandWithoutChangingPosition(range, beforeText + config.normalizeIndentation(ir.afterEnter), true); </del> <ins> return new ReplaceCommandWithoutChangingPosition(range, 'n' + config.normalizeIndentation(ir.afterEnter), true); </ins> } else { let offset = 0; if (oldEndColumn <= firstNonWhitespace + 1) {

} offset = Math.min(oldEndViewColumn + 1 - config.normalizeIndentation(ir.afterEnter).length - 1, 0); } <del> return new ReplaceCommandWithOffsetCursorState(range, beforeText + config.normalizeIndentation(ir.afterEnter), 0, offset, true); </del> <ins> return new ReplaceCommandWithOffsetCursorState(range, 'n' + config.normalizeIndentation(ir.afterEnter), 0, offset, true); </ins> } } }

model.dispose(); mode.dispose(); }); <ins> test('issue #111128: Multicursor `Enter` issue with indentation', () => { const model = createTextModel('    let a, b, c;', { detectIndentation: false, insertSpaces: false, tabSize: 4 }, mode.getLanguageIdentifier()); withTestCodeEditor(null, { model: model }, (editor, viewModel) => { editor.setSelections([ new Selection(1, 11, 1, 11), new Selection(1, 14, 1, 14), ]); viewModel.type('n', 'keyboard'); assert.equal(model.getValue(), '    let a,nt b,nt c;'); }); }); </ins> }); interface ICursorOpts {