millejoh / emacs-ipython-notebook

Jupyter notebook client in Emacs
http://millejoh.github.io/emacs-ipython-notebook/
GNU General Public License v3.0
1.47k stars 122 forks source link

Is there an undo? #841

Closed lambdaofgod closed 2 years ago

lambdaofgod commented 2 years ago

I can't find any information on undo in documentation. I found #512 but I don't understand whether it mentions specific undo functionality or a general one, and it seems weird to not have any undo option.

dickmao commented 2 years ago

I agree EIN remains unusable until full undo is implemented. The current undo is the weakest imaginable. If you type "foo", you can undo "foo". If you shuffle around or delete several cells, it's game over.

But I feel like EIN is unusable for other reasons, primarily because it's based on jupyter, which is unsuitable for serious work.

Org-mode has full undo, of course, but many jupyter users find org-mode unusable.

lambdaofgod commented 2 years ago

I understand what you wrote on full undo, and I can live with that, but I don't even see basic functionality. I don't think nobody would care about having a proper undo, as Jupyter lacks one (you kinda said that yourself)

I've seen conflicting versions - usual undo with "u" does not work for me (no undo information in this buffer), and someone mentioned C-u, which isn't bound to anything.

Disclaimer: I use evil mode.

dickmao commented 2 years ago

If EIN finds that M-: (key-binding (kbd "C-/")) is not undo, then it disables undo, but it should have warned about that.

EIN does some nasty things to get just "weak undo" to work under the cell geometry. It cannot handle other undo subsystems like undo-tree or whatever Doom/Spacemacs does.

lambdaofgod commented 2 years ago

Hey, about org-mode: do you know how to simulate Jupyter's cell behavior? I mean when cell is ran using babel, I don't see a way to export variables to another cell. Do you know how to do that?

dickmao commented 2 years ago

Off the top of my head, there's :var, which if you google it, is insanely awkward to use.

I really don't get org-mode generally, or literate programming, generally.

The point of data analysis is getting results. The best way to do that is to write a script like it's 1999. Then you get undo, git versioning, fast iteration, and none of the bull*.

dickmao commented 2 years ago

I forgot: you also get debugging. That's nigh impossible with org-babel or jupyter.