29

I'm using latest version of VS code (1.9.0).

After I undo (ctrl+z) something, and save the file (ctrl+s), then I cannot redo anymore (ctrl+y).

I would like to go back and forth during the editor is running same as Sublime or other editor. Can anyone solve this problem? Thank you.

Eliot
  • 291
  • 1
  • 3
  • 4
  • Did you ever figure out what this was? – Bo Jeanes Jun 09 '17 at 12:15
  • This was the issue with extensions. Find a extention which is not updated following latest version of VS code and remove it. – Eliot Jun 10 '17 at 16:45
  • 1
    I'm having the same problem although I disabled all extensions. Once I save, I cannot redo anything. I'm using 1.19.1. Anyone else knows what to do? – floribon Jan 03 '18 at 21:56
  • 1
    On mac you can do ⇧⌘Z – Rolando Jan 21 '18 at 22:22
  • Same problem. Disabling extensions doesn't fix it. Problem seems to be an issue if I close the file I'm working on, then go back to it. All undo/redo history is lost. – slashwhatever Mar 29 '18 at 08:35
  • Wonder if there's a way to keep an auxiliary set of undo/redo history so that we don't get hoodwinked by a stray save-hook extension (format-on-save) when we temporarily make changes. – mittens pair Jul 12 '18 at 07:20
  • @slashwhatever Undo/redo is *not working* on a reopened file. See my [updated answer](https://stackoverflow.com/a/42581029/1168315). – Dominik Dec 31 '18 at 11:24

7 Answers7

18

For people getting to this question that want to disable the persistence of the undo stack after a file is closed, this too appears to be coming to v1.45.

See https://github.com/microsoft/vscode/issues/94778 and https://github.com/microsoft/vscode/pull/96317 and v1.45 Release Notes:

"files.restoreUndoStack": false

Set to false to disable undo stack items after a file is closed. the default is true.

Mark
  • 143,421
  • 24
  • 428
  • 436
12

Hope this will work.

shift + command + z 

It will redo what you expected in Sublime Text (command + y )

Murtaza JAFARI
  • 674
  • 7
  • 10
7

At the bottom left corner of the vscode you have a "timeline", you can undo, and see all saved logs.

Kay
  • 85
  • 1
  • 5
  • Your answer could be improved with additional supporting information. Please [edit] to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers [in the help center](/help/how-to-answer). – Community May 23 '22 at 01:50
4

Undo/redo on

Dominik
  • 2,283
  • 1
  • 25
  • 37
2

In my case it was the Format On Save in settings that caused the undo/redo buffer to be flushed when saving files in VSC.

To get around this you can set Format On Save Mode to

modifications (requires source control like git)

or

modificationsIfAvailable (this also requires source control to help with this issue else VSC will format the entire file and flush the undo/redo buffer)

Voila!!! I had both Format On Save enabled and a redo buffer that was working after saving the file. Truly wonderful!

If this doesn´t help make sure to try to disable all extensions to see if one of them might be causing the buffer flushing.

enter image description here

Bjørnar Hvidsten
  • 859
  • 12
  • 15
1

The problem is confirmed in microsoft/vscode issue 10932 "Undo stack lost" (and linked to the aforementioned issue 7169, as part of the undo/redo issues)

We loose the undo stack very easily when leaving a dirty file in a tab (not visible) and then saving the dirty file:

  • open some tabs and make them dirty
  • wait for a few seconds
  • press "Save All"
  • go to those tabs that where not visible and try to undo
    => you cannot undo

For an opened file, it was solved in VSCode 1.5.0 (Sept. 2016) with commit b872e3d

But for a reopened file, VSCode 1.44 (March 2020) does address the issue, which is listed in the Iteration Plan for March 2020, and assigned to Alexandru Dima: see release notes

Keep Undo stack when reopening files

VS Code will now keep the Undo/Redo stack of a file when the file is closed. When the file is reopened, if its contents hasn't changed since it was closed, the Undo/Redo stack will be restored.

This is very useful if you limit the number of open editors with the workbench.editor.limit.value setting or you accidentally close a file you are working on.

VonC
  • 1,262,500
  • 529
  • 4,410
  • 5,250
  • @Henry I just tested it with the same 1.53.2 (on Windows), and it does work. The release notes mentions "When the file is reopened, if its contents hasn't changed since it was closed, the Undo/Redo stack will be restored." Is it possible your file has changed since it was closed? – VonC Feb 28 '21 at 17:23
1

It's now a feature in the latest version :)

https://code.visualstudio.com/updates/v1_44#_keep-undo-stack-when-reopening-files

Jacquers
  • 179
  • 1
  • 4
  • 1
    That [doesn't seem to be persisted outside of workspace memory](https://www.reddit.com/r/vscode/comments/lldrhq/keep_undo_stack_on_workspaceapplication_close/), unlike say Vim's persistent undo. – Tobu Apr 06 '21 at 12:13