googlecolab / colabtools

Python libraries for Google Colaboratory
Apache License 2.0
2.19k stars 720 forks source link

FR: Support Jupyter keyboard shortcuts #75

Closed den-run-ai closed 1 year ago

den-run-ai commented 6 years ago

i'm too used to jupyter notebook shortcuts.

craigcitro commented 6 years ago

We don't support the same set of key bindings as Jupyter (in particular, the vim-style command mode for cell editing).

I'm going to repurpose this issue as the canonical "Jupyter shortcuts feature request".

giebasjo commented 6 years ago

Does anybody need help writing this? This would make Google Colab more attractive, and devs using this resource more efficient.

fredlemieux commented 6 years ago

Why is this closed? #132 issue just references this and has also been closed? I'd really like to see some sort of shortcut to add cell? Even if it isn't the same a jupyter shortcuts......

razimajeed31 commented 6 years ago

Why is this closed? #132 issue just references this and has also been closed? I'd really like to see some sort of shortcut to add cell? Even if it isn't the same a jupyter shortcuts......

You can create your own keyboard shortcut for adding cell. Tools>Keyboard shortcuts

asifm commented 6 years ago

Is there any update on this? The different (and less efficient) set of shortcuts is perhaps not a deal breaker but is incredibly annoying.

Questions for more knowledgeable folks: Is it possible to create a plugin that achieves this? Perhaps a Chrome Extension, if Google Colab API is not open to outsiders? I think the first step in creating the extension would be to make it able to detect edit vs command modes. I don't know if that's possible, though.

parthi2929 commented 5 years ago

yes, even I am very annoyed to relearn the shortcuts I am used to. If colab intends to provide the notebook feel, please bring back the shortcuts as well.

remigabillet commented 5 years ago

I'm also confused by the cmd+M prefix for all keyboard shortcuts. On Mac, it minimizes the current browser window, did anyone solve this issue?

cwant commented 5 years ago

As somebody who is teaching Jupyter notebooks (via Software Carpentry), I would love to include Colab as a learning option. Having to change the hotkeys information in the course materials to permit the use of Colab makes it a less attractive option.

aeamaea commented 5 years ago

Deleting comments critical of your approach instead of engaging with your early adopters is a surefire way to doom your product to oblivion. The issue isn't that you delete my critical comment, the issue is the "techbro knows best" mindset which will ultimately be the reason for lack of adoption. I would urge the developers to keep their users' interests at heart instead of shoving random stuff down the chute just because you happen to think it's cool.

Feel free to delete this comment as well. It will not solve the issue with the product.

jaroslawk commented 5 years ago

@colaboratory-team any official answer/statement? is this considered?

gaborvecsei commented 5 years ago

I will just write here and hope this issue will be taken into consideration by the team. 😃 I understand that this would include an extra dependency, but then it would be nice to have a set of keyboard shortcuts which we can choose from as "profiles". 👍

colaboratory-team commented 5 years ago

b/30088575

aeamaea commented 5 years ago

Claims from the google colab front page:

Welcome to Colaboratory!

Colaboratory is a free Jupyter notebook environment that requires no setup and runs entirely in the cloud.

Either support the Jupyter UX expectations or stop claiming it is a "Jupyter" notebook environment.

It's really that simple.

gaborvecsei commented 5 years ago

Either support the Jupyter UX expectations or stop claiming it is a "Jupyter" notebook environment. It's really that simple.

I do not really think this is "that simple". Jupyter notebook is not just a set a key shortcuts, but a much more complex environment which is super usable and helpful.

discdiver commented 5 years ago

Is a fix in the pipeline? I'm writing an intro to Python book that uses Colab and reluctant to tell readers to use the Colab keyboard shortcuts. Readers would need to learn the Colab shortcuts and the regular Jupyter shortcuts. That's extra cognitive load that slows down learning.

Using the same shortcuts as Jupyter for _insert cell above, insert cell below, change cell to markdown,change cell to code, split cell, cut cell, and copy cell would cover about 90% of my needs.

Responding to the comment that we can change the shortcuts to fit our needs: when I try to set most of the traditional Jupyter shortcuts they are prohibited.

This is a major hurdle to Colab adoption, and a fix seems like it shouldn't be too hard.

Thank you for all your work on Colab!

remigabillet commented 5 years ago

As @discdiver mentioned, simple shortcuts such as:

Many comments on these thread mention the ability to set these shortcuts manually and that actually worked until about 2 months ago. Unfortunately they're not allowed anymore :-(

BradNeuberg commented 5 years ago

I'm really impressed by Google Collab, but the failure to support Jupyter Lab keybindings is really annoying, it's almost a deal breaker to be honest since my productivity is much worse.

Quetzalcohuatl commented 4 years ago

Note that there ARE keyboard shortcuts - they just aren't the same. For example, Control+M+A is Insert New Cell Above, instead of just A

See here https://medium.com/@tuewithmorris/google-colab-notebooks-keyboard-shortcuts-aa6a008fb91b for all the new shortcuts...

marskar commented 4 years ago

Is there a way to use/share a keyboard shortcut configuration? Like a colab-keybindings.json file? I think that this would resolve the issue.

Back story: I teach Python in Binder and Anaconda because the Jupyter interface is the same in both. I have been using Jupyter for many years and the keyboard shortcuts are second nature. If the keyboard shortcuts could be the same, I would gladly switch to colab. I haven't tried manually editing the shortcuts, but I don't think I could ask all of the students in all my classes to do it manually, even if it were possible and it seems it isn't.

discdiver commented 4 years ago

@marskar - nope. At least not as of last I checked. I agree it would be great!

ynouri commented 4 years ago

I'm switching back and forth between Colab and my own local Jupyter Notebook environment, and the fact that the commonly used A/B/M/Y keyboard shortcuts are missing make the Colab experience very unproductive. As @remigabillet pointed just adding those 4 would make a big difference.

Interested as per why this design decision / tradeoff (?) on keybindings was made. Jupyter Notebooks precede Colab and have a much wider adoption - why trying to re-invent the UX?

ChrisRog commented 4 years ago

Just one more person wondering why the keyboard shortcut UX is vastly different from jupyter and hoping to have a fix in place at some point to help us make it more similar. Thanks

yurymann commented 4 years ago

+1 Is there a reason for every shortcut to be prefixed with ^M? It must be so hard to justify given that native Jupyter is also a web UI and not some "shortcut-friendly" technology. As others mentioned, this dramatically hits productivity. I've ended up actively searching for a good alternative cloud solution for Jupyter rather than happily using Google's.

yurymann commented 4 years ago

For the others who lost hope in Google paying attention to the needs of active users: it turns out Microsoft Azure Notebooks uses the native Jupyter UI. At least it looks and feels very similar. It's hard to express how much more usable it is. Even thought the spec of the underlying VMs on the free subscription seems to be worse than Google's.

archiewood commented 4 years ago

Yep just expressing support for this as well.

To be honest, it wouldn't be a deal breaker for me to learn some new shortcuts, but would be better if they were simpler (mainly one key shortcuts) rather than needing 3 keys (at which point I might as well use my mouse).

mike-lloyd03 commented 4 years ago

At least some kind of explanation why the CMD/CTL M prefix is necessary would be great. A or B don't do anything when you're in command mode anyway so I don't get why I can't reassign those keys in the hotkey manager.

PyAntony commented 4 years ago

I doubt I will use Colab in the future due to this issue. Having to deal with a totally different set of shortcuts is just annoying to say the least.

UPDATE: I spent some time customizing my shortcuts and they are decent now (not 100% the same though). I will give Colab a try now.

larsyencken commented 4 years ago

Adding my support to this feature request as well. The Jupyter modal key bindings do take a little to get used to, but they are very productive for power users. It would be a huge usability benefit to be able to swap the default key bindings with CTRL-m to modal bindings that align with Jupyter.

drsxr commented 4 years ago

I would add it to the wish-list too. Just easier to learn one set of shortcuts whether I'm prototyping on my box or yours. (colab)

johannh commented 4 years ago

FYI, the Ctrl-M prefix was the original set of IPython Notebook keybindings. They switched to the vim-like ones in IPython 2, then stuck with those when they forked/rebranded into Jupyter. Presumably, colab was based on pre-version-2 IPython, and then just didn't change when IPython/Jupyter did.

gena commented 4 years ago

+1 to support dd shortcut to delete cells

nikisix commented 3 years ago

Colab plz

Guitaricet commented 3 years ago

This is an important feature. I frustrate so much in colab because DD does not delete a cell and CMD+Z does not undo the operation. Also, current colab combinations are hard to both remember and use, because they often require pressing three or even four keys.

subwaymatch commented 3 years ago

2 years late to the discussion, but +1 for this feature. This is the only factor stopping me from adopting Colab - very unfortunate since Colab was so close to being the best Notebook environment ever. ☹️ One suggestion - add a "jupyter" key binding option to "Keyboard preferences" menu.

image

shervinsahba commented 3 years ago

Could you add this feature? It doesn't even seem like we can remap shortcuts to match Jupyter.

bISTP commented 3 years ago

+1 for this feature if it's ever going to be even considered,

Just switched to Colab due to lack of resources and wasted like a day or two just figuring out a way around for this, down goes my productivty, thanks. (might as well just switch to some other service )

rcanand commented 2 years ago

I'm also confused by the cmd+M prefix for all keyboard shortcuts. On Mac, it minimizes the current browser window, did anyone solve this issue?

@remigabillet I found that even on a Mac, using Ctrl+M instead of Cmd+M actually bypasses this issue. For example: Ctrl+M+M changes a code cell to a markdown cell. That might be a reasonable workaround for this use case.

richlysakowski commented 2 years ago

THIS IS A DEALBREAKER !!

GOOGLE FIX IT !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Robotatron commented 2 years ago

+1

kannanjayachandran commented 1 year ago

I think in tools ->Keyboard shortcuts providing a pre-configured Jupyter key binding would solve the issue.

den-run-ai commented 1 year ago

Looks like resolved, available in settings now!

discdiver commented 1 year ago

I can use a and b to add cells, run cells with shift + enter, and can select muliple cells with shift + up and down arrows, but I can't merge the cells with m , delete cells with dd, etc. I don't see a place to toggle on full capabilities. Am I missing something?

jueseph commented 1 year ago

@denfromufa what is avaialble in settings? i'm not seeing any setup that allows shortcuts like Shift-M for merge cells, cmd-shift-dash for split cells, Shift-j or shift-k for selecting cells, or x,c,v for cut, copy, paste cells, or dd for delete as mentioned by @discdiver . these are valuable to my workflow and colab feels very slow and broken to me without them.

when i try to set things like shift-m for merging cells it disallows it because apaprently this is protected for some reason.

i don't think this issue should be considered closed.