# Juno keyboard shortcuts and source navigation

**URL:** <https://discourse.julialang.org/t/juno-keyboard-shortcuts-and-source-navigation/16262>\
**Category:** Juno\
**Created:** [October 13, 2018, 1:00am UTC](https://discourse.julialang.org/t/juno-keyboard-shortcuts-and-source-navigation/16262 "2018-10-13T01:00:50Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![dhazeghi](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dhazeghi/32/7107_2.png) [@dhazeghi](https://discourse.julialang.org/u/dhazeghi)\
**Post date:** [October 13, 2018, 1:00am UTC](https://discourse.julialang.org/t/juno-keyboard-shortcuts-and-source-navigation/16262/1 "2018-10-13T01:00:50Z")

</div>

I’m using JuliaPro 0.6.x with Juno. I’ve noticed that in the REPL in Juno, most standard readline keyboard shortcuts work, but not ctrl-e (end-of-line).

A more serious limitation is that I cannot reliably jump to function definitions within the source browser. ‘Go to declaration/definition’ seems to work for some symbols, but not others.

Any suggestions/ideas would be welcome. Thanks.

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [October 13, 2018, 9:24am UTC](https://discourse.julialang.org/t/juno-keyboard-shortcuts-and-source-navigation/16262/2 "2018-10-13T09:24:24Z")

</div>

`Ctrl-E` doesn’t work by default because Juno has the `Ctrl-J Ctrl-E` keybinding to quickly jump to the last used editor. You can disable that by removing the exception in the julia-client settings:

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

> A more serious limitation is that I cannot reliably jump to function definitions within the source browser. ‘Go to declaration/definition’ seems to work for some symbols, but not others.

Juno relies on Julia’s introspection capabilities to give you that information, so you can only jump to methods that are known to Julia, and for that you have to run the relevant code/load the package the code is defined in.

---

<div class="post-metadata">

**Author:** ![dhazeghi](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dhazeghi/32/7107_2.png) [@dhazeghi](https://discourse.julialang.org/u/dhazeghi)\
**Post date:** [October 15, 2018, 4:26pm UTC](https://discourse.julialang.org/t/juno-keyboard-shortcuts-and-source-navigation/16262/3 "2018-10-15T16:26:37Z")

</div>

Thanks - those are exactly what I’ve been looking for. After loading the relevant modules, ctrl-j-ctrl-g seems to be working perfectly. I do see that the ‘Go to Declaratoin/Go to Definition’ menu item still doesn’t do anything, but I suspect there’s a settings option to correct that.

Also, is the ‘Whitelisted Keybindings’ option available in Julia 0.6.4/julia-client 0.6.13 or do I need Julia 1.0 and a newer client (I’m not seeing it in my settings options for julia-client)?

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [October 15, 2018, 5:56pm UTC](https://discourse.julialang.org/t/juno-keyboard-shortcuts-and-source-navigation/16262/4 "2018-10-15T17:56:05Z")

</div>

> I do see that the ‘Go to Declaratoin/Go to Definition’ menu item still doesn’t do anything, but I suspect there’s a settings option to correct that.

`Go to Definition` should work the same as `Ctrl-J Ctrl-G` (and does for me), but `Go to Declaration` doesn’t work:

 ![image](https://global.discourse-cdn.com/julialang/original/3X/8/5/856ea1ac8df37be8e514499866830952d1d997b2.jpeg)

> [@dhazeghi](#):
>
> Also, is the ‘Whitelisted Keybindings’ option available in Julia 0.6.4/julia-client 0.6.13 or do I need Julia 1.0 and a newer client (I’m not seeing it in my settings options for julia-client)?

Yeah, you need to be on julia-client 0.7+ for that option. Those versions of julia-client should work just fine with Julia 0.6.4 though, so you could just try upgrading (don’t forget about ink when doing that).

---

<div class="post-metadata">

**Author:** ![dhazeghi](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dhazeghi/32/7107_2.png) [@dhazeghi](https://discourse.julialang.org/u/dhazeghi)\
**Post date:** [October 17, 2018, 4:05pm UTC](https://discourse.julialang.org/t/juno-keyboard-shortcuts-and-source-navigation/16262/5 "2018-10-17T16:05:56Z")

</div>

Thanks for the suggestions and the help! I had to unpin ink and julia-client in order to do the update. For whatever reason, the julia-client update hung (is there a log that shows what the updater is doing?), so I wound up uninstalling and re-installing it. The white-listed shortcuts is now available and all is well in the REPL. ‘Go to definition’ is also working now.

One minor cosmetic oddity I see after the update is that when I launch the REPL from Juno, I get the following messages. Everything seems to run properly though:

INFO: Loading HttpServer methods…  
…  
WARNING: Atom.jl: unrecognised message connected.  
WARNING: Atom.jl: unrecognised message enableplotpane.

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [October 17, 2018, 4:47pm UTC](https://discourse.julialang.org/t/juno-keyboard-shortcuts-and-source-navigation/16262/6 "2018-10-17T16:47:41Z")

</div>

> [@dhazeghi](#):
>
> For whatever reason, the julia-client update hung (is there a log that shows what the updater is doing?), so I wound up uninstalling and re-installing it.

Yeah, there are cases when the updater fails. I hope to fix that soon.

> [@dhazeghi](#):
>
> One minor cosmetic oddity I see after the update is that when I launch the REPL from Juno, I get the following messages. Everything seems to run properly though:
> 
> INFO: Loading HttpServer methods…  
> …  
> WARNING: Atom.jl: unrecognised message connected.  
> WARNING: Atom.jl: unrecognised message enableplotpane.

On what version of Atom.jl are you? You should be on [v0.6.17](https://github.com/JunoLab/Atom.jl/releases/tag/v0.6.17).

---

<div class="post-metadata">

**Author:** ![dhazeghi](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dhazeghi/32/7107_2.png) [@dhazeghi](https://discourse.julialang.org/u/dhazeghi)\
**Post date:** [October 17, 2018, 5:16pm UTC](https://discourse.julialang.org/t/juno-keyboard-shortcuts-and-source-navigation/16262/7 "2018-10-17T17:16:23Z")

</div>

> [@pfitzseb](#):
>
> On what version of Atom.jl are you? You should be on [v0.6.17](https://github.com/JunoLab/Atom.jl/releases/tag/v0.6.17).

Apparently not. After editing the REQUIRE file, Pkg.update(“Atom”) went through and all looks good now.

Thanks for all your help!

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [October 17, 2018, 5:44pm UTC](https://discourse.julialang.org/t/juno-keyboard-shortcuts-and-source-navigation/16262/8 "2018-10-17T17:44:41Z")

</div>

Ah, right, I forgot you’re using JuliaPro.

> [@dhazeghi](#):
>
> Thanks for all your help!

Anytime! 🙂
