Vim Bindings on the horizon?

I use either Emacs in Evil mode or the neovim plugin in VSCode, and my shell also uses VIM mode.

So the only command line that does not follow that paradigm is Julia.

I found a few discussions on github re VIM bindings or integrating neovim in the REPL.

I found one discussion (would need to check back and find it) where the idea was pushed out of 1.8 milestones and the last comment was something along the lines of “…plan for v1.9 …”

Is this a thing that’s coming?

Edit: this has been discussed 4 years ago here: Vim mode in REPL command line - #23 by tamasgal with a new reply from last month.

1 Like

There is also a Julia Package called VimBindings.jl which might work for you.

In Julia I use the Emacs keybindings since I was not satisfied with any other solution, but for me it’s OK. Everything else is Vim :wink:

2 Likes

I found that, but it seems to depend on a host of old packages and caused irresolvable package conflicts. So I couldn’t test it.

I can deal with Emacs bindings, on simple readline interfaces VIM bindings don’t really make sense. But when writing a function over multiple lines in the REPL, they really would be a nice thing to have for editing that.

It’s just a weird disconnect when the REPL is running in a vterm in Emacs (I use Julia-Snail GitHub - gcv/julia-snail: An Emacs development environment for Julia) and then you have to shift modes mentally. In particular since the REPL vterm buffer has a normal and insert mode :slight_smile: but the REPL doesn’t understand c3w

1 Like

I am the author of VimBindings.jl, I will try to update the package soon to update the dependencies.

I recently married and then moved to a new country so my spare time has been sparse but I’m hoping to make many improvements to the package now that things have calmed down a little.

7 Likes

@TS-CUBED I’ve updated the dependencies and also removed some that were no longer needed. You may have better luck installing it now.

It’s quite rough around the edges at present, I’m open to feedback!

2 Likes

Still get this error:

(@v1.8) pkg> add https://github.com/caleb-allen/VimBindings.jl
    Updating git-repo `https://github.com/caleb-allen/VimBindings.jl`
    Updating registry at `~/.julia/registries/General.toml`
   Resolving package versions...
ERROR: Unsatisfiable requirements detected for package JuliaInterpreter [aa1ae85d]:
 JuliaInterpreter [aa1ae85d] log:
 ├─possible versions are: 0.1.1-0.9.15 or uninstalled
 ├─restricted by julia compatibility requirements to versions: 0.9.11-0.9.15 or uninstalled
 └─restricted by compatibility requirements with Debugger [31a5f54b] to versions: 0.7.0-0.8.21 — no versions left
   └─Debugger [31a5f54b] log:
     ├─possible versions are: 0.1.0-0.7.6 or uninstalled
     └─restricted to versions 0.6 by VimBindings [51b3953f], leaving only versions 0.6.0-0.6.8
       └─VimBindings [51b3953f] log:
         ├─possible versions are: 0.1.0 or uninstalled
         └─VimBindings [51b3953f] is fixed to version 0.1.0

I think I can remove the Debugger dependency as well. I’ll see what I can do.

Just wanted to say a thank you Caleb for making this package (and congrats on the marriage)! I had no idea this package existed and I have already added it to my startup.jl configuration - if you ever want to register this package at some point, let me know. Happy to help with making a PR. :smiley: