Although Undo
has been around since version 10 (before my time) I've noticed that sometimes it works just fine up to the moment of the last Save
. At other times it only works a few steps back. Then there are times when I type several characters (let's call it a dozen or more) into a cell not yet doing a Shift-Enter
and it will only step back about half the characters far short of what I typed since the start of editing step. Either I am doing something that corrupts Undo
or it is a buggy implementation.
For context I am a beginner (9 months). I am not doing anything advanced like programmatically creating new cells or notebooks, working with multiple connected workbooks, or streaming external data sources. I do not place individual statements into their own cells. Instead I place multiple related statements in a single context such as modules, blocks, functions, etc. within a single cell. I also place multiple modules, blocks, and functions into a single cell.
I often forget to save my work so I can go for an hour or more without saving or clearing anything from memory or at other times I might save after only a few edits but the Undo
behavior remains sporadic.
I sometimes place Clear["Global*"]
or ClearAll["Global*"]
at the very top of an open notebook (for a fresh start) and almost always do an Evaluate Notebook
instead of Shift-Enter
. Could this be corrupting my Undo
? Needless to say I am not working on a major projects just simple widget-like applications. Most of it is just mathematical calculations with finely tuned output structures for presentation.
My settings for Undo
are enabled with Infinite
steps. What could possibly be going wrong? Please help.
Evaluate Notebook
notebook function myself, but I can imagine that using it would make it a lot more difficult for the FE to undo things because of the number of things happening. You may want to consider moving to a workflow using package files to hold the bulk of your code and re-loading those packages instead of re-evaluating notebooks. $\endgroup$