• MagicShel@programming.dev
    link
    fedilink
    arrow-up
    10
    arrow-down
    4
    ·
    11 months ago

    There is absolutely nothing I do in an IDE frequently enough to memorize a bunch of arcane commands, especially in 3 days. Regex solves any mass-operations. For everything else the bottleneck is how long it takes to reason about code, not how quickly I can manipulate it.

    I will say that if I keep getting jobs where I have to use an IDE on a remote VM on AWS, I might prefer SSH/Vim to that bullshit. The frequency with which IntelliJ locks up all four of those virtual hamster wheel powered CPUs requiring a full restart is basically daily and sometimes multiple times a day.

      • MagicShel@programming.dev
        link
        fedilink
        arrow-up
        4
        arrow-down
        1
        ·
        11 months ago

        I can write regex to replace variable names in a matter of seconds despite not needing to do it very often, but I can also use regex to turn a list of data exported to csv into SQL. Or take a list of variable names and turn them into method stubs (or even full methods if they are small and consistent enough).

        I don’t even need to think about LSP-enabled identifier renaming. It would be handy if I find myself having to use Vim - I’m not denigrating Vim. Those features are all great if it’s your IDE. But for example I had to look up what that even means because it’s nothing I need to know in any other IDE. And that’s really my point.

        Vim has tons of power. The thing it’s really lacking is discoverability. You have to know how to do everything before you can do it. Meanwhile in IntelliJ or VSCode I just find the menu and if I want to be super quick, next to the menu item is the keyboard shortcut which makes it super easy to learn how to do a thing faster while still being able to do the thing. But with vim I have to change to a completely different context and open a browser and Google how to do a thing.

        That’s the only problem I have with vim - it takes a huge and consistent investment to get as fast with it as I am with any other IDE out of the gate. Maybe I could eventually even get faster, but could I ever recoup that time investment? It doesn’t seem like it to me since my tools are so rarely the thing slowing me down.

        Again, I’ve no doubt vim is great once you learn it thoroughly. Nothing against vim or those who use it. Should the need arise, I’ll put in the effort. But until then I’m just using it for tweaking config files and bash scripts.

          • MagicShel@programming.dev
            link
            fedilink
            arrow-up
            2
            ·
            edit-2
            11 months ago

            First I want to say this is a great comment overall. I appreciate it. But a couple notes:

            What neither of us can do is write it such that the replacement is limited to the identifier we want to rename

            \Widentifier\W - harder to navigate markdown than write the pattern. This would also catch references to the identifier in comments as well, though if the identifier isn’t a unique word it might take a little repair, but that’s rarely the case in Java where the convention is expressive identifiers.

            UNIX philosophy of "RTFM, start working like a pro from the beginning […]

            That only works for small manuals. Take Git for example, because that’s something I often use the CLI for. There are a huge number of things to learn out of the gate and you can’t just RTFM and you’re good to go. And it’s really not particularly big or complex. Something as simple as cherrypicking - well first I need to log to see the commit ids. Oh not just log but --pretty-something so I can just see the commit ids. Off to Google shit to remind me how to do another thing I only do every few weeks. Compare that to a GUI where I can just right-click cherry-pick. This absolutely kills my productivity because I do so much different shit, I can’t possibly remember everything that I barely use.

            How would you know without giving them an honest spin?

            I only have so many hours in the day to experiment. And I do, but the “cost” here is pretty high and the opportunity for return is low. We’re talking about things I might do a couple of times a month.

            Now it’s possible I’m an idiot and I’m just slower or dumber than folks who like vim. It’s also possible my roles have been really fucked up and I don’t get to focus enough to get good at stuff that ought to be its own niche. All I can say is I’ve stuck my toe into the water and it’s fucking cold. Currently I’m probably 85% GUI and 15% CLI and other keyboard-centric tools. I just use whichever is the most expedient.

            I wrote a one line bash script to start my vpn because I couldn’t remember each little keystroke but I can remember start-vpn.

            Once again, I appreciate your comment. Upvoted. I don’t know what helix is. Blender I know but isn’t really a business software writing tool so I have maybe 20 hours playing around with it total. I’ll look into LSP on my PC, but I might just forget I have it by the time I try to figure out what to do with it.

              • MagicShel@programming.dev
                link
                fedilink
                arrow-up
                3
                ·
                11 months ago

                Tell you what. As I’ve just ended a contract and have some time to work on my side project while I job hunt, I’ll give it a shot for the rest of this month and report back.

                  • MagicShel@programming.dev
                    link
                    fedilink
                    arrow-up
                    1
                    ·
                    edit-2
                    11 months ago

                    Probably no one but you will find this there. Which is good because this is just an extremely raw first draft. I’m not asking for answers from you here. If part of my experience is “go find random people on Lemmy to help” that doesn’t seem useful. But I want to share this experience which was about 90 minutes of my day, and also see how compatible the markdown here is with Joplin, which is my note-taking tool of choice. I don’t know if I can stick with this man. I haven’t even opened Vim yet.


                    I took on a challenge in a Lemmy comment to use Vim for a month. To give some context for this experience, let’s start off with the relevant details of who I am.

                    • I’m a Java developer with 25 years of experience
                    • I use Ubuntu as my daily driver. I no longer have a windows computer (except as an old SSD I could swap to in an emergency), not even as a VM.
                    • While this might make me sound like a seasoned Linux pro, it’s more the case that everything I need to do on a computer is now performed in a browser or a handful of applications. Maven, Tomcat, and Git are probably the only CLI applications I use, and Tomcat only rarely because I don’t often do that kind of development for my side projects.
                    • I know basic linux navigation. Most everything else requires a little googling.
                    • I know how to exit Vim, go into insert mode, and I know how to delete 1 (dd) line or mulitple lines (dn). I know nothing else. Not even how to copy/paste.
                    • I like learning new things, but self-directed learning is frequently aggravating. Fortunately I also enjoy ranting about frustrations and bizarre rituals that must be performed without understanding.

                    So one of the first things it was suggested I would need is LSP. I don’t recall what it stands for (I mean I could google it, but I might as well be honest about my ignorance, right?), but anyway I searched for “ubuntu install LSP”. As one does. The top result is a thread on Reddit in r/neovim. The fuck is Neovim?


                    So more googling tells me Neovim is a fork of Vim 7 that some folks like and other folks aren’t bothered about. There are plugins for both (why the fuck do you need a plugin for a text editor?) and some plugins work with both while others work on one or the other. Just like everything else in the Linux world, there are no fucking answers, just opinions and most of them are totally irrelvant to your environment or use case. I just want to edit some fucking code. So I’m sticking with Vim - that’s the point, right?

                    So back to the original question, how do I install LSP and whatever plugin is needed? For anyone keeping score, I started with one question and now I have three with one… well less answered than just decided. I think I’ll google “getting started with Vim and LSP”


                    Top result is very promising. “End goal: get working LSP in Vim for Python. Constraints: please no neovim suggestions.” Other than Python instead of Java, this is perfect! This is my thread!

                    Check out the LSP clients heading in https://langserver.org/ There are a number of vim plugins that provide LSP integrations:

                    Most plugins will require you to do add some configuration to wire up the Language Server client (i.e. the plugin) with the language server (e.g. pyright, pylsp, …etc). Other than that, I recommend reading plugin docs to learn how to use/configure the plugin with the language server and ask for help on the github repo if you have specific questions or run into issues/errors.

                    First, fuck me. It’s just a bunch of random fucking repos. Who the fuck are these people? I guess this guy is endorsing ALE. Is w0rp a person? Organization? Grad student? Seasoned professional? A guy one hamburger away from a heart attack?

                    So anyway it looks like I also need a language server (that’s the LS in LSP, 'twould seem - nice when questions answer themselves). Wait a second… That was my original question! They didn’t answer how to do the thing I wanted to do, they answered how to do the other thing I didn’t know I wanted to know how to do. I’m going to file this bookmark away because it’s not relevant to me just now, but it looks like this will be my next question.

                    For now, back to google: “ubuntu install lsp java”


                    Okay a bunch of shit about emacs and people having or overcoming difficulties in installing it. That’s not promising - seems just installing fucking LSP is about to be an ordeal. Oh! Here’s a github by George W Fraser. I don’t know who that is, but he uses his middle initial, so clearly someone of import and sophistication. Important side note: If he went by his full middle name, that would be a serial killer. A subtle but critical distinction.

                    Actually that may not be entirely true. I feel like I’ve seen his name before. Let’s see what he has to say.


                    Fuck me again! He says to use vim-lsc. Wait a god damn minute… This is the same fucking question I just had non-answered by some random redditor! How do I install the god damned language server, motherfucker!?

                    To be continued…

    • zarkanian@sh.itjust.works
      link
      fedilink
      arrow-up
      4
      ·
      11 months ago

      There is absolutely nothing I do in an IDE frequently enough to memorize a bunch of arcane commands, especially in 3 days. Regex solves any mass-operations.

      Yeah, don’t memorize a bunch of arcane commands. Use regex instead!

      • MagicShel@programming.dev
        link
        fedilink
        arrow-up
        3
        ·
        11 months ago

        I use regex. And it has arcane stuff I don’t know, but I’ve memorized the rather simple basics that cover 90% of what I need to do.

    • YIj54yALOJxEsY20eU@lemm.ee
      link
      fedilink
      arrow-up
      3
      ·
      edit-2
      11 months ago

      Lol I like your writing. The amount of headless boxes I work on has definitely contributed to my desire to get proficient at vim. Now I feel confident when I have to edit some text on a server, rather than hoping the server has nano and the file isn’t too big.

      And that 3 days was how long it took until I was moving faster in neovim than vscode after 4 years of use. Though it’s still perfectly valid to use vim motions in any editor you want. Theres a reason most every editor has vim motions.