# Emacs and Julia: how to

**URL:** <https://discourse.julialang.org/t/emacs-and-julia-how-to/123623>\
**Category:** Tooling\
**Tags:** emacs\
**Created:** [December 9, 2024, 3:05pm UTC](https://discourse.julialang.org/t/emacs-and-julia-how-to/123623 "2024-12-09T15:05:54Z")\
**Posts on this page:** 8\
**Page:** 4

<div class="post-metadata">

**Author:** ![mahmah](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mahmah/32/214326_2.png) [@mahmah](https://discourse.julialang.org/u/mahmah)\
**Post date:** [August 27, 2026, 5:36am UTC](https://discourse.julialang.org/t/emacs-and-julia-how-to/123623/61 "2026-08-27T05:36:16Z")

</div>

I was using it mainly due to the multimedia integration, which is guess this is not a feature of julia-repl. Otherwise, I don’t see differences in my daily life.

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [August 27, 2026, 5:38am UTC](https://discourse.julialang.org/t/emacs-and-julia-how-to/123623/62 "2026-08-27T05:38:23Z")

</div>

There is

> **[GitHub - wentasah/EmacsVterm.jl: Better integration of Julia REPL with Emacs vterm...](https://github.com/wentasah/EmacsVterm.jl)**
>
> Better integration of Julia REPL with Emacs vterm terminal

which provides this for `julia-repl`.

---

<div class="post-metadata">

**Author:** ![mahmah](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mahmah/32/214326_2.png) [@mahmah](https://discourse.julialang.org/u/mahmah)\
**Post date:** [August 27, 2026, 6:00am UTC](https://discourse.julialang.org/t/emacs-and-julia-how-to/123623/63 "2026-08-27T06:00:13Z")

</div>

> [@Tamas\_Papp](#):
>
> [GitHub - wentasah/EmacsVterm.jl: Better integration of Julia REPL with Emacs vterm terminal · GitHub](https://github.com/wentasah/EmacsVterm.jl)

Well, that’s definitely a must for emacsen!! Thanks for the tip.

---

<div class="post-metadata">

**Author:** ![mahmah](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mahmah/32/214326_2.png) [@mahmah](https://discourse.julialang.org/u/mahmah)\
**Post date:** [August 27, 2026, 11:38am UTC](https://discourse.julialang.org/t/emacs-and-julia-how-to/123623/64 "2026-08-27T11:38:55Z")

</div>

This works great but CairoMakie figures don’t appear in MacOS preview (as they used to in julia-snail). EmacsVterm.options.image = true helps in this respect (as I can see them inside emacs) but sometimes I miss the other type of treatment. GLMakie and Plots.jl work great. Is it only me?

---

<div class="post-metadata">

**Author:** ![Mason](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mason/32/2423_2.png) [@Mason](https://discourse.julialang.org/u/Mason)\
**Post date:** [August 27, 2026, 2:14pm UTC](https://discourse.julialang.org/t/emacs-and-julia-how-to/123623/65 "2026-08-27T14:14:27Z")

</div>

By the way, upcoming in emacs 32 is the [emacs canvas](https://mathstodon.xyz/@divyaranjan/117104660983147041) which will give a pixel buffer that applications can just write pixels into directly.

Someone has already made a little Makie proof of concept for this, displaying interactive GLMakie plots in an emacs canvas: [GitHub - mochar/glmakie-el: render GLMakie plots in emacs canvas · GitHub](https://github.com/mochar/glmakie-el).

I think the future of multimedia support in emacs is looking pretty exciting.

---

<div class="post-metadata">

**Author:** ![csvance](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/csvance/32/218927_2.png) [@csvance](https://discourse.julialang.org/u/csvance)\
**Post date:** [September 29, 2026, 1:58am UTC](https://discourse.julialang.org/t/emacs-and-julia-how-to/123623/66 "2026-09-29T01:58:51Z")

</div>

> [@Mason](#):
>
> By the way, upcoming in emacs 32 is the [emacs canvas](https://mathstodon.xyz/@divyaranjan/117104660983147041) which will give a pixel buffer that applications can just write pixels into directly.

What a time to be alive.

On my third attempt with emacs. My latest config is integrated with a TUI agent multiplexer (herdr); a status pane below treemacs shows me the status of all my agents and allows me to switch between them, and I have the automatic session persistence between restarts of emacs even for instances of Claude Code. JETLS is also a huge help in terms of being to do things like goto reference or find references. It’s pretty insane how good of a modern workflow you can get with emacs these days.

 ![image](https://global.discourse-cdn.com/julialang/original/3X/d/4/d424eb3adcfddb493c6ae14fffa43614c5eb1ae0.png)

The biggest mistake I made with my first two attempts was abandoning my own preferences and trying to go “all in” on relearning everything from hotkeys to modal editing. This time I tried to take my favorite parts of the IDE workflow with me. Adding right click context menus for things like go to definition and find references might be enough to make RMS cringe, but reducing the number of hotkeys I have to remember has been huge for overcoming the initial learning curve. Dedicated Magit style function key menus ensure I can access all the automations and shortcuts I need quickly, and provide a cushion if I forget one of the shortcut keys.

I think I finally “get” emacs… and I just noticed my first gray hair… coincidence?

---

<div class="post-metadata">

**Author:** ![mahmah](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mahmah/32/214326_2.png) [@mahmah](https://discourse.julialang.org/u/mahmah)\
**Post date:** [September 29, 2026, 3:35pm UTC](https://discourse.julialang.org/t/emacs-and-julia-how-to/123623/67 "2026-09-29T15:35:03Z")

</div>

Looks great! My only complaint with emacs is that I often need to restart it. It gets slower over time and I was never able to identify the cause.

---

<div class="post-metadata">

**Author:** ![aramirezreyes](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aramirezreyes/32/42573_2.png) [@aramirezreyes](https://discourse.julialang.org/u/aramirezreyes)\
**Post date:** [October 17, 2026, 8:52am UTC](https://discourse.julialang.org/t/emacs-and-julia-how-to/123623/68 "2026-10-17T08:52:45Z")

</div>

> [@csvance](#):
>
> but reducing the number of hotkeys I have to remember has been huge for overcoming the initial…

For me, which-key, orderless and vertico are a huge quality-of-life improvement for supercharging discoverability of commands!  
You basically do not need to learn any keybindings upfront.

[Previous page](https://discourse.julialang.org/t/emacs-and-julia-how-to/123623.md?page=3)
