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:
https://github.com/w0rp/ale (what I currently use b/c it integrates linters as well as Language Servers & it is the best zero-config LSP plugin for vim)
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!?
Remember what I said about the vim out of the box experience and configuration nightmare? Yep that’s why.
If you want to stick with (n)vim over helix head over here, which is going to take away like 90% of the pain. You’ll still need to go “yep I want this and this and this” but it’s much more like browsing through the VSCode store and hitting “install”. Quick start guide, general IDE, Java IDE should do it. There’s actually more end-user type documentation for spacevim as compared to vim (which is a giant heap of hysterical raisins noone writes beginner intros for) or helix (which is too young to have actually good docs). Both are more opinionated than plain vim+whatever plugins but at least as far as I’m concerned I don’t care which of the fifty available fuzzy file finder plugins I’m using: I just want one that works. Spacevim makes a default choice for you, helix has one built-in. Same goes for LSP integration.
Also you don’t necessarily need to dive in at the deep end. As said most of the difference vs. your usual IDE isn’t in feature set but how you interact with the thing, editing markdown should suffice to get a good idea, with or without LSP support in the case of markdown it’s really optional, I think it’s mostly about helping you to not have broken links.
I have no problem with opinionated software. I need a starting point from which to disagree. Thanks for the links. I’ll read up this afternoon or tomorrow.
Blog post! Blog post!
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.
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!
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…
Remember what I said about the vim out of the box experience and configuration nightmare? Yep that’s why.
If you want to stick with (n)vim over helix head over here, which is going to take away like 90% of the pain. You’ll still need to go “yep I want this and this and this” but it’s much more like browsing through the VSCode store and hitting “install”. Quick start guide, general IDE, Java IDE should do it. There’s actually more end-user type documentation for spacevim as compared to vim (which is a giant heap of hysterical raisins noone writes beginner intros for) or helix (which is too young to have actually good docs). Both are more opinionated than plain vim+whatever plugins but at least as far as I’m concerned I don’t care which of the fifty available fuzzy file finder plugins I’m using: I just want one that works. Spacevim makes a default choice for you, helix has one built-in. Same goes for LSP integration.
Also you don’t necessarily need to dive in at the deep end. As said most of the difference vs. your usual IDE isn’t in feature set but how you interact with the thing, editing markdown should suffice to get a good idea, with or without LSP support in the case of markdown it’s really optional, I think it’s mostly about helping you to not have broken links.
I have no problem with opinionated software. I need a starting point from which to disagree. Thanks for the links. I’ll read up this afternoon or tomorrow.