I just started a new job where I have to ssh into a remote linux vm to work on a qt driven c++ project. I don’t really have a lot of leeway on what can be added to the remote environment, and I don’t think local development is possible. The vm has vim and qtcreator.

I’m from a Java background and I’m learning c++ for this role, while I’m comfortable in vim, I’d really like to have a tool that can give me autocomplete, jump to definition and linting. I know these things can be set up in neovim, but I asked about having that put on the box and was not given a good reaction.

I also know tools like vscode and possibly clion can be set up to do remote work via ssh. Does anyone have experience with this and suggestion on a good setup?

  •  Otter   ( @otter@lemmy.ca ) 
    link
    fedilink
    English
    6
    edit-2
    1 month ago

    Depending on what restrictions you have, you could try VSCode? That’s what students were told to do at my university for remote C / C++ development off the school’s servers

    https://code.visualstudio.com/docs/remote/ssh

    I’m not familiar with the others, but for vscode

    • click the symbol that looks like >< in the bottom left
    • potentially install the remote SSH add-on if it asks for it
    • log in
    • open the left sidebar and tell it to open the folder you are developing in
  • A few questions:

    • why do you have to SSH into a remote box?
    • do you know how the VM was created? can you recreate the dependencies?
    • which OS are you on?
    • you mention qtcreator - do you have remote desktop session?

    I ask these questions because my preliminary solutions without knowing all the details would be

    • recreate the VM locally, install the tools you need
    • mount the project on your machine with sshfs, use the tools you require locally
    • use the VM as a proxy if you’re using it to access an internal git to clone the repo to your local machine and use local tools there
    • create a remote desktop session and forward it locally either via ssh x11 forwarding or connect to it via some RDP client like remmina, krdc, or whatever your OS uses

    qtcreator has code completion btw, so you can use it for your development tasks.

    Anti Commercial-AI license

    • The application is very resource heavy and is also designed for specific hardware, it can’t be run on the windows laptops we are provided. There are security concerns as well, which limit what I am allowed to do.

      Currently I’m using vnc viewer to open a shell where I can run applications like qtcreator and get a gui interface. I’m sure I could run a local ide and ssh into the vm with it, but I know that can be tricky getting proper code coverage for jump to references to work. I guess I’ll try it and see what happens!

        • Ok that is good to know. As for qtcreator, it’s probably fine, just the first time I’ve used it and it didn’t have any of those features working correctly. And I already am familiar with jetbrains tools from Java development. I’ll just have to get it set up correctly. I know for sure I’ll be using it for its UI editing features.

  • If you are on Linux locally, you could try using sshfs, to “mount” the remote system to your local one and use your local dev tools. Though I suspect that would be against the spirit of what company is hoping for.

  • Vim has its own plugin system that can provide all of the things on your list. Most people used to use a plugin manager like vim-plug or pathogen, but plugins can also be installed manually.

    With vim 8 there is built in plugin management. Just open the editor and type

    :help packages
    

    Plugins (including the plugin managers which are plugins themselves) get installed in your user’s home directory, so you can install them yourself without affecting other users or involving the sysadmins who are giving you pushback on installing other applications system-wide.