lambdalisue / jupyter-vim-binding

Jupyter meets Vim. Vimmer will fall in love.
2.1k stars 136 forks source link

RFC: Proposal for new terms for Command mode, Edit mode, etc #56

Open lambdalisue opened 8 years ago

lambdalisue commented 8 years ago

Currently we use the terms below

But the terms above conflict with Jupyter's mode, which use "Command mode" and "Edit mode". So I'm thinking to change the current terms to

To make it clear (corresponding to Jupyter's help page). But I would like to ask you guys to other ideas.

Derived from #53

traeki commented 8 years ago

"Command" mode is a standard pseudonym for vim's "normal" mode (see e.g. http://www.radford.edu/~mhtay/CPSC120/VIM_Editor_Commands.htm, http://stackoverflow.com/questions/13178874/how-do-i-switch-between-command-and-insert-mode-in-vim)

So I think that even though Jupyter uses that term, it is confusing with this extension.

I would call the modes Insert, Normal, and Jupyter-Command, maybe? I know that's cumbersome, but Jupyter has painted us into a semantic corner by having a "command" mode that is totally different from Vim "command-mode". =-/

Whatever the resolution is, I would not simply call either thing "command" mode. It's confusing in either direction.

lambdalisue commented 8 years ago

"Command" mode is a standard pseudonym for vim's "normal" mode Whatever the resolution is, I would not simply call either thing "command" mode. It's confusing in either direction.

Yeah that's y I used "Command mode" for now. But while <F1> leads to Jupyter's help and that help show "Command mode" and "Edit mode", I feel I should use the terms of Jupyter. Or maybe I should find a way to overwrite a help page to re-define terms (I don't know how or can).

traeki commented 8 years ago

Ohh, yeah, I see. If the help categories are unchangeable, that's tricky. If that's not the case, I suggest changing them (i.e. ditching "command" as a mode name). But, if we're stuck with those names, it should be a SUPER EMPHATIC POINT in the Readme that the Jupyter help area calls Jupyter-mode "command" and Vim-mode "edit", and insert mode just doesn't show up at all. (Assuming that's correct.)

ELLIOTTCABLE commented 8 years ago

Jupyter, Normal, Insert.

When a word is ambiguous across two dictionaries, avoid it entirely. (=

(Additionally, this is consistent with the new behaviour where the user spends almost all of their time in ‘Normal’ mode: it is now … normal! Special interactions [<Shift-ESC> for Jupyter mode, i for insert mode] shift out of Normal and into special modes. I feel this terminology is internally consistent. =)

lambdalisue commented 8 years ago

Thanks for feedback. Yeah Jupyter, Normal, Insert sounds nice. But I'm afraid that the categories in help page are labeld "Command mode" and "Edit mode"...

Now I'm feeling that I should overwrite these categories to jupyter-vim-binding's flavor. I'll check the Jupyter's code prob. in this weekend and found whether if it could be or not.

scientist1642 commented 8 years ago

I installed the plugin today, thank you for your work! I wanted to give a feedback and glad to see it is opened.

ELLIOTTCABLE commented 8 years ago

I'd like to point out that I, personally, like segregating non-vim modes with the <Shift-ESC> keybind. Customizable?

Re: the markdown cells, @scientist1642 makes a good point, though. Is that behaviour you can override? (i.e. retaining “is-in-insert-mode”, and then temporarily leaving insert mode when j'ing down into a Markdown cell, and re-entering insert-mode when j'ing back into a non-rendered cell / code-cell?)

This is a pretty subtle aspect of the functionality, and really needs to be thoroughly thought through. This plugin basically treats an entire Jupyter notebook as a text-file; and vim's mode of control doesn't really mesh well with “opaque blocks of content” that aren't text; especially if they can sometimes become text, like the Markdown cells. Need to consider how that fits into this model most intuitively.

lambdalisue commented 8 years ago

Make a new issue if you would like to talk about different topic please.

lambdalisue commented 8 years ago

Memo: Overriding https://github.com/jupyter/notebook/blob/master/notebook/static/notebook/js/quickhelp.js#L166-L263 will help

lambdalisue commented 8 years ago

Implemented. https://github.com/lambdalisue/jupyter-vim-binding/blob/develop/lib/jupyter/quickhelp.js

Could someone kindly check it?