VS code is excellent!

The VS code IDE is truly excellent. Downloaded today, configured in a few minutes, and it runs great. (I run git bash as the terminal.)

Many thanks to the VS code development team!

11 Likes

I am very attached to vim and the command line but I have to admit I am tempted to try this. Back in my C++ days when I first discovered Visual Studio it kind of blew my mind. It’s impossible to set up properly in most practical cases, but when it is, man it is nice (though granted a lot of that came down to the immaculate debugging support of the Microsoft C++ compilers).

Two requirements I have are being able to do everything from the keyboard (preferably with vim commands) and easy access to terminals.

4 Likes

VS Code is very promising, but it’s pretty bad that the integrated terminal can only be located below the editor pane. This is the subject of a longstanding issue.

This weakness has nothing to do with the Julia plugin people, but it unfortunately severely hurts the ergonomics of VS Code, and it cannot be configured by the user, just FYI.

Oh, and BTW, has anyone figured out how to get syntax highlighting in the terminal? It doesn’t seem to work with OhMyREPL.

Can we get a link or some instructions for that? It’s been a long time since I’ve used VS. Should something be included on the main/downloads julia page about this considering other options such as Ijulia, Juno, etc. are mentioned there?

I have used both Atom and VS Code.

VS Code is my go to editor. It is far more responsive in reacting to commands. Atom is probably more feature complete for Julia.

You mean instructions for how to set up VS code?

In my case I think the only thing I need to know is how to run julia from the editor. The rest I have done. Thanks.

If you like vim, I recommend switching to the i3 tiling window manager, it gives an experience similar to atom and vs code but with more unix flexibility. I described it here in another post:

2 Likes

In case this proves helpful, here’s what I did to set up:

  1. Download VS code. Install and run.

  1. Set up the Julia extension. Click on extensions:

Type in “Julia” in the search box and select to install the Julia Language Support.

  1. Set up the executable for Julia. Open the Settings:

Where it says “Place your settings here…”, type in the following (adjusted for your particular system,
your Julia.exe may be in a different place):

12 Likes

Great! that last step is just what I was missing, thanks!

I know, I’ve been contemplating this idea for years, but I have gotten comfortable just using gnome-terminal and tmux and I just haven’t been able to bring myself to make the leap. Besides, I actually adore GNOME, in my opinion it is so much better than either the Windows or Mac UI’s which surprisingly still feel like they are from 1997. I have my beautiful cpu/mem/net/disk/thermal performance monitors right up top, it all makes me very happy really. (I remain heartbroken that I still have windows on my most powerful gaming machine.)

What do you think, are there any really significant advantages to using i3 over tmux in gnome? (keep in mind it is also trivial to switch between multiple terminal windows when using multiple monitors)

I don’t have any experience with tmux yet, but I am extremely happy with i3. Initially, I just wanted to mess around and try it, but since installing it I have never switched back to xfce (which was my preferred desktop environment before i3). The nice thing is that all of my applications and terminals can be tiled in a unified way and can swtich between them and workspaces with vim-like keyboard shortcuts (fully customizable in documentation). Also, using i3 doesn’t stop you from using Gtk or Qt applications or anything like that, they still open fine, and you can also configure individual applications to open in detached windows instead of as tiles when you open them by default. Note that my i3 bar also has my cpu/mem/net/disk/thermal performance on the top right, but I have used a custom config file to display those according to my taste.

The most wonderful thing for me with tiling window manager is being able to press mod+enter anywhere and immediately having a new terminal window and all my other windows are automatically resized and I can adjust and shuffle them around using the keyboard, so it also helps with using vim as a LaTeX editor and displaying the PDF output in another tile, while having a couple of Julia terminals open.

Also, it’s surprisingly easy to set up, if you just spend a weekend getting used to it.

Recommend this 3-part video series to get started: https://www.youtube.com/watch?v=j1I63wGcvU4

3 Likes

Sorry to derail this thread, but another couple of questions about i3. Does it use Wayland? I assume that browsers and anything else works basically the same way it does on other X11 and Wayland desktop environments?

The original i3 is for X11 only, but there is a Wayland compatible version called sway, which allows you to use your same configuration file from i3. So if you use i3 and decide you want to switch to Wayland instead, there should be a future proof option available (mostly feature-complete as of now)

Haven’t tried it yet, but am planning to.

And yes, browsers work same, but they behave as tiled windows (which you can detach too)

1 Like

It is on the Oct iteration plan.

OhMyREPL coloring works on vscode terminal on my machine on Ubuntu.

They seem to have one issue that is a prerequisite for this on the October plan (#31503). I can’t really tell if they the actual feature in there yet.

On my PC (a Mac) if I open a terminal and start Julia, OhMyREPL works. However, if I run selected code from the editor with ctrl+enter, a new terminal with a new instance of Julia is opened, and the code is run. This terminal ignores OhMyREPL. Weird.

I think it broke on the new vscode-julia release because the repl is handled a bit differently now. If you start a new julia repl from the terminal, it works, but not with the version you get by executing code with e.g. Ctrl + Enter.

Ok, the problem is that https://github.com/KristofferC/OhMyREPL.jl/blob/6e7c9a769ec08fbe3ae749a338a5283c78cb308b/src/OhMyREPL.jl#L89 is true now so nothing gets initialized. I will fix it.

3 Likes