Julia and VIM - My working setup

485 views
Skip to first unread message

Krishna Subramanian

unread,
May 2, 2015, 4:35:38 PM5/2/15
to julia...@googlegroups.com
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
4. In vim, install julia-vim, ervandew/screen plugins
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)

  1. Start gvim
  2. cd to required directory
  3. Type <Leader><Leader> in normal mode
  4. 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.
  5. Open the main script (say run.jl) in gvim
  6. 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
  7. 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
  8. 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.

Sisyphuss

unread,
May 3, 2015, 8:11:52 AM5/3/15
to julia...@googlegroups.com
I'd like to know, if you type "\alpha<tab>" in vim, will it be replaced by the greek character ?

Sean Marshallsay

unread,
May 3, 2015, 9:44:42 AM5/3/15
to julia...@googlegroups.com
Yep, that's a feature of julia-vim.
Reply all
Reply to author
Forward
0 new messages