[[!sidebar content=""]] [[!meta title="Edit live Jupyter notebook cells with Emacs"]] [[!meta copyright="Copyright © 2022 Blaine Mooers"]] [[!inline pages="internal(2022/info/jupyter-nav)" raw="yes"]] # Edit live Jupyter notebook cells with Emacs Blaine Mooers (Blane Moors, he/him, ) [[!inline pages="internal(2022/info/jupyter-before)" raw="yes"]] My talk will address a dilemma faced daily by many technical writers and programmers. Like many academics, I use several web-based platforms for writing prose (e.g., 750words, Overleaf) and interactive computing (Jupyter Notebook, Google Colab Notebooks). The first group lacks support for snippets. The second group has support for snippets, but this support does not include tab triggers and tab stops. The absence of tab stops can increase the number of bugs by overlooking parameter values in the snippet that need to be changed to adapt the snippet to the current problem. One solution to the absence of full-powered snippets is to apply Emacs with yasnippets to these web-based platforms. One route to doing so is to use the atomic-chrome package for Emacs and the GhostText Extension for web browsers. These two software packages enable two-way communication via a web socket between an Emacs buffer and the text area of the web page. Edits made on the web side of the socket are immediately sent to the Emacs buffer and vice versa. The Emacs's snippets and other editing tools only work in the Emacs buffer. The connection can be closed from either side. This route has enabled me to apply snippets of LaTeX code to my daily writing in 750words. I have been able to convert 750words into a platform for writing in LaTeX; by default, it uses markdown. I have also been able to apply code snippets for Julia, Python, R, and so on in Jupyter notebook cells. In other words, I get to extend my time writing in Emacs. In my ten-minute talk, I will describe my problems with web-based platforms and their solution with Emacs. I will describe where to find the required software and how I configured Emacs. I will present several precautions for using GhostText and describe the limitations of its application. I will provide links to collections of snippets I found handy daily usage of 750words and Jupyter. # Discussion ## Notes - atomic chrome is by alpha2jp. It is available on MELPA. - Central website for GhostText. - Example of using GhostText with Moodle to write web papes. - My configuration targeting LaTeX in Gnu Emacs. - Slides from a 90-minute talk in August at the Berlin Emacs Meetup about using LaTeX in Emacs. - Slides to 50-minute talk in July about using GhostText with Emacs and other editors. Includes slides for friends that use Vim. - Great talk, thank you! - Btw, great talk Blaine! - I've got ghosttext and emacs via atomicchrome working now: very easy and very useful! Thank you. - Nice job Blaine! - Thank you! - Pretty inspring! ## Questions and answers - Q: Kind of a silly question but I'm curious... Do you have a favourite color theme? - A: - Q: Really interesting to discover GhostText thanks. I use ein (Emacs Ipython Notebooks ) for running notebooks locally, I can clearly see the advantage of using GhostText with non-local notebooks/websites but is there anything that GhostText provides over EIN when interacting with locally running Jupyter Notebooks? - A: - Q: To your knowledge are recent/coming security changes in Chrome going to impact the browswer exstention?   Thanks ! - A: - Q:Is this browser-agnostic, or do you have to use Chrome? (answered in talk 15:58) - A: Works on different browsers - Q: You mentioned a couple other solutions to allow emacs editing of text areas.  Pointers? - A:  - Q: Why not save text from emacs? - A:  - Q: What was the key binding for Linux/Firefox? - A: Ctrl+Shift+h - Q: how long have you been in Emacs? - A: 18 months ago full-time [[!inline pages="internal(2022/info/jupyter-after)" raw="yes"]] [[!inline pages="internal(2022/info/jupyter-nav)" raw="yes"]] [[!taglink CategoryOrgMode]]