Hello,

I installed Ubuntu a few months ago on my work laptop and I’ve been running and loving it since.

However, I am used to VsCode, so this is what I am using in Ubuntu as well.

So I am curious, what kind of coding so you do? And what is your workflow.

I am an embedded firware developper and mainly use C. I am cross compiling my code in VsCode for a FPGA from Xilinx (dual core arm + PL)

Never dove into make files and cmake more than what I needed in the past, but I had an opportunity to learn CMake and build a project from it.

So my workflow is :

  1. Code in VsCode
  2. Build in CMake
  3. Transfer the app through scp on the target with a custom script (target is running petalinux, which is yocto + Xilinx recipes)
  4. Use gdb server to debug the code.

It’s a pretty simple workflow, but I’d like to know what you guys are running so that I can maybe upgrade my workflow.

  • @[email protected]
    link
    fedilink
    22 years ago

    Using VSCode with NeoVim plugin (allows Vim commands in VSC). Code JavaScript locally, deploy using GitHub and Docker/k8s.

  • @[email protected]
    link
    fedilink
    English
    6
    edit-2
    2 years ago

    I’m the only Sublime Text guy here, I guess. Mostly with extensions for formatting, linting, and detecting compilation/type errors. I work with all kinds of languages, mostly interpreted. Python, Rust, Bash, JS/Typescript, Solidity, and a smidge of others so it’s hard to pin down one workflow.

    EDIT: Just wanted to add that it’s really cool to see the diversity in the replies. This here is the power of Linux.

  • @[email protected]
    link
    fedilink
    62 years ago

    I work with backend web development, so running code could not be any easier, normally there’s a docker image setup watch for changes, recompile and execute.

    My text editor is Kakoune, after learning the keybindings I just cannot go back to vim or vscode, selection based editing just makes so much sense to me.

    I use NixOS, which comes in handy for keeping my home and office computers in-sync. I also use nix shells to declare the tools necessary to develop each project.

    As for window management I use sway, one big window for kakoune to the left, other terminals for docker/tests/git to the right.

    • @[email protected]OP
      link
      fedilink
      12 years ago

      I tried to get into window management but it was a bit much at the time. I will retry soon.

      I have one big 48 inch 4k screen, so a window manager will definitely be a big plus.

  • FermatsLastAccount
    link
    fedilink
    4
    edit-2
    2 years ago

    Do Data Scientists count? I run Bedrock Linux with Hyprland WM and Alacritty as my terminal manager.

    I use Jupyter Labs for almost everything. Then Emacs for anything else. I don’t like the default config at all, and I’m not that well versed in elisp, so I use Doom Emacs.

    • @[email protected]OP
      link
      fedilink
      22 years ago

      Yes it counts. It’s far from what I do so my understanding of what you do is limited (read: I know nothing about data science).

      I need to look into Hyprland WM. I tried i3, but it had a lot of errors and wasn’t working well for a reason unknown to me.

  • @[email protected]
    link
    fedilink
    4
    edit-2
    2 years ago
    1. Code in Emacs or Jetbrains (depends on language and laptop cpu)
    2. Run make to build, run, debug, or clean (I like makefiles for documenting basic tasks)
    3. Commit with git when chunk of work is done

    I tend to do everything locally on bare metal. I never liked putting stuff in containers or running a vm.

    VS Code is a great editor, though. It actually feels a bit like Emacs.

  • SALT
    link
    fedilink
    English
    22 years ago

    Xfce spin Fedora using VS Code with CSharp dotnet omnisharp, sometime vim with coc nvim and omnisharp vim.

    PHP intelephense, podman, kvm/qemu, some el clone or rhel cloud image, and windows server 2019 vhd to qcow2.

    Other than that, firefox for frontend web debug… For desktop dev, avalonia UI. Other than that, none.

  • learnbyexample
    link
    fedilink
    22 years ago

    I use GVim for coding and text editing in general.

    Programming wise, CLI tools (grep, sed, awk, sort, head, etc) are enough for most of my tasks. I’ve written a few Python TUI projects (uses Textual framework) but these are around 300-400 lines, so Vim is more than enough for my purposes. Don’t even need any plugins.

  • Matúš Maštena
    link
    fedilink
    32 years ago

    I use IntelliJ IDEA for V and Rust, Neovim for C and VSCodium for Ansible + web development.

  • @[email protected]
    link
    fedilink
    42 years ago

    I mainly write C. I really like Intellij Clion because it uses CMake as project files. It also makes tools like valgrind, perf and gdb available without having to go to the terminal.

  • z3rOR0ne
    link
    fedilink
    12 years ago

    Bspwm/sxhkd on Artix Linux with runit init.

    Neovim, lots of plugins and custom shortcuts and commands. Espanso text expander for even more functionality.

    St terminal with zsh. Lots of aliases and shell scripts add lots more functionality.

    JavaScript Developer with some docker integration.

  • @[email protected]
    link
    fedilink
    5
    edit-2
    2 years ago

    I’m running Docker in Windows and have a mounted drive. I code in VSC using that mounted folder / volume, and the page shows up on localhost. Just a few simple apps to convert fixed width to csv’s and back and gives analytics on the data using jStat and tables with dataTables. Nothing fancy, but I like it.

    Edit: httpd 2.4 as the Docker container.

  • @[email protected]
    link
    fedilink
    112 years ago

    Transfer the app through scp […]

    I use an ad-hoc while loop in a shell with inotifywait to wait for changes in the watched directory and then scp it.

    • @[email protected]OP
      link
      fedilink
      42 years ago

      That’s clever. I’m not used to shell scripting yet, but I really like that it is easy to automate things in Linux. If you can run it in terminal, you can script it.

  • @[email protected]
    link
    fedilink
    22 years ago

    I’m currently running Fedora Kinoite, via the Universal Blue kinoite-nvidia image.

    A lot of the stuff I personally develop is done in Java/Kotlin, so for those projects I use IntelliJ (via the JetBrains “All Products Pack”) to work. For everything else such as Rust which I’ve been slowly trying to get into, or PHP which I sometimes write for work I tend to use Neovim because its simple enough. I suspect as I start to build bigger projects in Rust I’ll start using it through IntelliJ or CLion to have access to a nice debugging environment, but so far the little bit of debugging that I’ve needed can be done through rust-gdb.

    Its a nice simple workflow, and Fedora already has podman installed for when I’m utilizing Docker as well which is nice.

  • style99
    link
    fedilink
    42 years ago

    I use Geany, so that’s basically my whole workflow.

  • ffhein
    link
    fedilink
    32 years ago

    Like many others I also use NeoVim, but it was quite a bit of learning curve before you get comfortable with it. And you really have to go all in and learn at least the basics, if you try to use it like a normal text editor thinking you’ll learn commands as you go along then you’re going to hate it.

    In addition to having to learn how to use vim, you also need a good configuration and probably some plugins if you want to use it as an IDE. Personally I use fzf, coc, vim-dirvish, lightline, lightline-bufferline and papercolor-theme.

    • @[email protected]OP
      link
      fedilink
      12 years ago

      How long did it take you to get comfortable with NeoVim? I like the proposition of the vi/vim approach of no mouse. But it is really intimidating to get into.

      • ffhein
        link
        fedilink
        42 years ago

        I guess a few hours until I had memorised basic stuff like moving around, copy-paste, etc. Then maybe a week or two before I really felt comfortable with it. There’s some point where you actually understand vim and start using it more like a programming language and less like a traditional text editor. For example I love the “repeat last command” (default bound to . key), but to use it effectively you need to create a command that will be usable everywhere you want it to, and there are many different commands that do the same thing.

        Here’s a random example:

        Let’s say you have the following text in a document you’re editing with vim, and you want to delete the word “dance”. Vim is currently in normal mode, and with the cursor placed on the highlighted “c”:

        Monkey dance party

        If your brain is still in Notepad.exe mode, you might achieve this by pressing “i” to go into insert mode and using a combination of backspace and delete to edit the line.

        A vim beginner might know that “x” and “X” in normal mode works like delete and backspace, without going to insert mode, so “XXXxx” does the same.

        Someone who has learned basic movement could instead solve this by combining two commands, first “b” to move the cursor back to the beginning of the word, followed by “dw” (delete to next word).

        But there’s also a single command that deletes the current word, regardless of where the cursor is in it, which is “daw”. And since this is a single command, you can repeat it with the “.” key to delete a different word.

        Now here comes the vim magic: If you instead want to replace the word “dance” with “pool” you just modify the above commands by replacing “d” (delete) with “c” (change). So in our example you could type “caw” in normal mode, which deletes the word under the cursor and places you in insert mode. There you write “pool” and press Escape to go back to normal mode. Now you have a single command that replaces any word under the cursor with the word pool, which you can repeat anywhere you like.

        And if it’s not just the current word you want to change, then replace the “w” in the command with something else, for example “ca)” will change a pair of parenthesis and everything inside them, which is very useful when programming C/C++/etc… And if you have nested parentheses and want do something with two levels at the same time, the command becomes “c2a)” which might look complicated, but it’s basically just simple rules that you string together.

        https://vim-adventures.com/ might be a fun way to get started, then look up some nice vim cheat sheet and keep that nearby. I would also recommend looking up some example vim configs, because the editor is very bare bones with the defaults. I like relative line numbers for easy jumping between lines, so give that a try.

        When you’ve mastered (?) vim you’ll also see less (the program) keyboard shortcuts make a lot more sense. You can also change your shell to vi mode for faster editing of commands.

        • @[email protected]OP
          link
          fedilink
          12 years ago

          I will look into vim adventures. Trying to learn Vim at the same time as learning everything else is hard. So hopefully, a Vim game will be more palatable.