After a long search, I have finally found a solution for working with the Julia REPL and vim. I am working in a Windows 7/x64 environment but I believe my setup can also be used in other situations. I am posting it here in the hopes of it being useful to some other vimmer getting their hands dirty with Julia.
My earlier setup was a follows -
1. Manually sync the directories of gvim and julia REPL
2. Open file in gvim, save, in julia, do include("foo.jl") and iterate
3. Keep doing the Alt+Tab to keep going back and forth between the two
After a point, it because clear that this setup is not going to fly. My current setup is as follows-
1. Install Cygwin and in particular bash and GNU/screen
2. Ensure that the bash.exe and screen.exe from cygwin are in your PATH
3. Ensure that julia.exe is in your PATH
5. Make some changes to the _vimrc (my setup is below)
My current setup helps me work as follows (can be modified using _vimrc mappings)
- Start gvim
- cd to required directory
- Type <Leader><Leader> in normal mode
- This starts a julia session that communicates with gvim using screen. It also automatically changes the directory in the julia REPL to the directory gvim cwd.
- Open the main script (say run.jl) in gvim
- You can execute commands from this file in two ways
- Typing <Leader><Leader> in gvim executes the whole paragraph in which the cursor is located, i.e. this paragraph is automatically sent to Julia REPL for execution
- Typing <Leader>s sends the command 'include("run.jl");' to julia, i.e. whatever is the current buffer in gvim
- I have made another modification so that I can designate a file in gvim as the main file, say, run.jl and then begin editing another script foo.jl that is including from run.jl. Now typing <Leader>s sends the designated main script, i.e. "include("run.jl")" to julia. I can continue to work on foo.jl and look at the results in the julia REPL
- When I am done with julia, I type <Leader>x to end the julia session which automatically closes julia and the screen session
This setup has done wonders to my productivity when I am working with Julia. My demo _vimrc script is here [
Gist Link].
Thanks.