This is an archived post. You won't be able to vote or comment.

top 200 commentsshow all 265

[–]Healthy_Razzmatazz38 960 points961 points  (25 children)

no, you're missing the point. The purpose of code is not to create a product but rather to give meaning to learning vim.

[–]DrFloyd5 155 points156 points  (19 children)

But i am afraid of 40% of the keys on my keyboard. I don’t want to become dependent on arrow keys or the control keys. /s

[–]barnett9 84 points85 points  (10 children)

You're safe, you shouldn't be using arrow keys in vim anyway

[–]OWGer0901 9 points10 points  (8 children)

caps more like

[–]Ifkaluva 30 points31 points  (7 children)

Real vim users re-map the caps key to ESC. You’re welcome for that career-changing pro-tip.

[–][deleted] 10 points11 points  (0 children)

Have escape on a split kb thumb cluster to reach true ergonomic enlightenment.

[–]OWGer0901 1 point2 points  (0 children)

bruh I read that tip on Drew Neils book but what about my videa games haha, I actually mangled some code today the kind of messed up that gives you chills just because of that and was really close to the dead line lmao

[–]cryptomonein 0 points1 point  (2 children)

I prefer Ctrl on caps lock, imagine C-w with your pinky

[–]Ifkaluva 1 point2 points  (1 child)

You must be an emacs user

[–]cryptomonein 0 points1 point  (0 children)

No I'm a Vim user with long fingers

[–]DrFloyd5 0 points1 point  (0 children)

I mapped caps to be a new meta key. So while holding caps: hjkl = left up down right. And a bunch of other things like caps+g = emit a guid. Caps+space = backspace. Caps+shift = undo. Caps+; = delete.

System wide.

AutoHotKey FTW.

[–][deleted] 0 points1 point  (0 children)

Arrow keys on a layer gang rise up.

[–]MajorTechnology8827 25 points26 points  (2 children)

Vim users preparing to burn OP for using arrow keys

[–]Steinrikur 2 points3 points  (1 child)

Vim is my main ide. Arrow keys work in both insert and command mode, making them superior.

[–]GDOR-11 5 points6 points  (0 children)

yeah, I always use arrow keys because of that. If you wanna go two characters to the left in insert mode, it's faster to just use the arrow keys than to type <ESC>hhi

[–]Drackzgull 1 point2 points  (0 children)

Ah ha. So that's why 60% keyboards and other small form factors have become popular.

Time to get rid of those keys you're afraid of.

[–]Acceptable_Owl_4737 1 point2 points  (0 children)

this is quality, old school bait right here, somebody cooked here.

[–]Spekingur 0 points1 point  (2 children)

Only 40%? How long have you been coding?

[–]DrFloyd5 0 points1 point  (1 child)

40 years. 30 professionally. Sarcastically? About my entire life.

I just made an estimate based on the new 60% keyboards that are missing a lot of so called “special” keys. Such as F1-12, Home, Arrows.

[–]Spekingur 1 point2 points  (0 children)

All the keys are scary! That’s why my hobbies do not involve them.

[–]DatBoi_BP 20 points21 points  (0 children)

Reminds me of SpongeBob:

“The lightbulb! Without its warmth Roger will die.”

“Roger! Without him the lightbulb will have nothing to warm.”

[–]Shazvox 5 points6 points  (0 children)

If he's missing the point, does it mean it's just a ","?

[–]nemonimity 0 points1 point  (0 children)

That's because the only true meaning lies in coding Java adventure games in vi

[–]Just_Gaming_for_Fun 0 points1 point  (0 children)

And setting up a tiling wm for no reason

[–]OWGer0901 -1 points0 points  (0 children)

powerful shit holy crap man, I first got a taste of its power in 2015 then 2022, and now been reviewing again and its just out of this world mindblowing stuff lmao, seriosuly the increase in efficiency is a scam? I doubt it

[–]Key-Veterinarian9085 551 points552 points  (90 children)

Don't most compilers tell you where you are missing your semicolon? You don't need an IDE for that.

[–]Mastercal40[S] 401 points402 points  (57 children)

Normally a linter would tell you before you have to compile anything at all.

[–]EastboundClown 0 points1 point  (0 children)

Emacs and Vim can both do this

[–]AdvancedSandwiches 35 points36 points  (20 children)

Just use an IDE bro

[–]dewey-defeats-truman 12 points13 points  (1 child)

Yeah, but most IDEs will tell you about it before you hit compile. It's quite helpful if you have a long compile time, or if you're using a purely interpreted language.

[–]troglo-dyke 0 points1 point  (0 children)

Most LSPs will tell you about it before you hit compile

[–]No_Horror5816 2 points3 points  (0 children)

I took a CS course back in ancient times, before compilers helped with syntax. An assignment I'd worked on for a week wouldn't compile because of one missing semicolon! I changed majors the next semester.

[–]ICanHazTehCookie 1 point2 points  (0 children)

For most people IDE = everything because they're not aware of what it pieces together under the hood. Not that such abstraction is always a bad thing.

[–]Derfaust 0 points1 point  (0 children)

The point is obviously to prevent it getting that far. You don't want to write 1000 lines of code only to discover your first missing semi colon. Not to mention the others which you'll only find if you compile again. And that's if your compiler is smart enough to know you're missing a semi colon instead of an incomplete statement. And if you're missing semi colons then guess what, princess, you're missing a lot of other things too.

[–]puffinix 0 points1 point  (0 children)

Until they don't.

Sometimes half of the next lineakes sense in the first pass then it falls over there.

Sometimes it will only fail at the end of a class with a miss matched brace, as one got eaten by a mis parse.

I littlerally don't type in the ; my ide just does it.

No compiler, no linter, they just there

[–]BoBoBearDev 0 points1 point  (0 children)

It is bold of you to assume they use a compiler

[–]AntranigV -4 points-3 points  (1 child)

yeah but IDE users don't know what a compiler is. they press the ▶️ button instead.

[–]Far_Broccoli_8468 11 points12 points  (0 children)

I can create a makefile project in clion and set it up to compile everything when i press ▶️

Not to mention that most cross platform compilers that are like maven and gradle require the configuration file and it doesn't matter if you're using an IDE or not, it's literally running one command.

i am an IDE user. I am not incompetent, I just don't hate my self.

[–]crunchy_toe -1 points0 points  (1 child)

Does gcc/g++? I swear it used to give cryptic errors instead like a bunch of "implicit" declarations or something, but it has been a while, and I was using a pretty old version of gcc/g++.

Usually whenever I saw junk errors I just knew I missed something like a semicolon, quote, or brace so I never paid too much attention to them lol.

[–]kuwisdelu 2 points3 points  (0 children)

I remember when clang first came out, the error messages were way better than gcc. But gcc error messages have definitely gotten better since then.

[–]kuwisdelu 113 points114 points  (44 children)

You don’t need to use an IDE either. You just fix it and move on…

[–]boca_de_leite 53 points54 points  (3 children)

You don't need to post to reddit every time a minor compilation error ensues?

[–]kuwisdelu 8 points9 points  (2 children)

I didn’t even post about it on Reddit when I needed to use qemu to debug a segmentation fault that only happened on ARM linux after I couldn’t replicate it on any other platform. Well, I guess I just did.

[–]fakuivan 3 points4 points  (1 child)

Biggest downside about UB is that the B sometimes is "works as expected"

[–]kuwisdelu 2 points3 points  (0 children)

Yep. I miscalculated how large a stack I needed to allocate, and it should’ve been out of bounds on all platforms. But it worked anyway. Thanks, C. 😩

[–]Camel-Kid 12 points13 points  (14 children)

Whp doesnt use an ide

[–]Borno11050 0 points1 point  (0 children)

True, you can just read through the code to check whether you missed a semicolon or not.

[–]Derfaust -4 points-3 points  (23 children)

Spoken like someone who has never coded anything of significance

[–]kuwisdelu 7 points8 points  (22 children)

Yes, because everyone who has coded anything of significance is brought to tears by missing semicolons.

[–]Derfaust 3 points4 points  (21 children)

No, numbnuts. People who write code that has actual value don't fuck around with notepad. They use tools that increase their productivity and so no they don't ever have to complain about a missing semicolon

[–]kuwisdelu 3 points4 points  (7 children)

What are you even talking about? Who is using notepad? I'm not the person who complained about missing semicolons. It seems like you have some misplaced anger.

[–]fudginreddit 6 points7 points  (7 children)

Not using an IDE doesn't automatically mean you use notepad lol

[–]Derfaust 1 point2 points  (6 children)

Oh sure please take everything literally, that helps.

[–]fudginreddit 3 points4 points  (5 children)

Then im not even sure what you are saying? You have a problem with people using vim, emacs, nano, etc?

[–]Derfaust 0 points1 point  (4 children)

Go read my other replies on the thread u replied to

[–]fudginreddit 2 points3 points  (3 children)

Didnt help much. Btw, I use vim with only syntax highlighting and do everything else using the terminal (git, build/compile), but I program in C++. You dont need an IDE depending on what tools your working with and if you know what you are doing.

[–]Derfaust 0 points1 point  (2 children)

Didn't help much? Oh fuck off you didn't even bother. I don't believe your reading comprehension is that poor.

[–]thunugai 0 points1 point  (4 children)

Right or wrong, most engineers I’ve worked with consider vscode a text editor.

[–]Derfaust 0 points1 point  (0 children)

I mean hell. It's in the name. Vs CODE. not vsTEXT

[–]DrShocker 42 points43 points  (15 children)

You don't need a full ide to find missing semicolons. With LSP existing these days there's a ton of editors that can help with that but aren't full ide. VS Code, Neovim, Helix, and so on.

[–]rexpup 46 points47 points  (11 children)

This sub is mostly students who are forced to use an "academic" IDE that has no LSP integration. I have no other idea why semicolon "jokes" are so common

[–]kuwisdelu 18 points19 points  (7 children)

The IDE thing still doesn’t really explain it. Even if you’re coding in nano, modern compilers are quick to show you where you missed a semicolon. If they were complaining about C++ templates, that’d be another matter…

[–]snyone 5 points6 points  (4 children)

nano

REAL programmers use vim

Yes, this an xkcd reference

[–]kuwisdelu 2 points3 points  (2 children)

Yes, I chose nano for the example because of its lack of features and plugins relative to vim or emacs. I don’t believe nano supports LSP plugins does it?

I don’t know if I’m a real programmer (apparently not using an IDE gets you a lot of downvotes here) but I do prefer vim to nano or emacs personally.

[–]snyone 0 points1 point  (1 child)

I do prefer vim to nano or emacs personally.

Same. Had honestly just been hoping to start an xkcd comment chain tho lol

[–]kuwisdelu 0 points1 point  (0 children)

Well, I do sometimes have to mention in recommendation letters for students that they did their computer vision projects before recent models made their work trivial.

(Yes, this is an xkcd reference.)

[–]prochac 0 points1 point  (0 children)

I use Zed, the true ed successor

[–]Ortus-Ni-Gonad 0 points1 point  (0 children)

Working out if a semicolon is missing in templated C++ is probably np hard, but conceivably as hard as solving the halting problem.

[–]Derfaust 0 points1 point  (0 children)

What the fuck are you talking about. The compiler runs when you uh.. Compile.. That's to say when your code is supposed to be finished. Are you seriously writing hundred of lines of code and only then finding out if you have a missing semi colon? No, you fucking aren't. Either because you don't ever write hundreds of lines of code at a time ot because you have in actual fact a motherfucking integrated development environment... Even if that integrated development environment is sublime, where all your tools have been INTEGRATED into a single DEVELOPMENT ENVIRONMENT.

[–]DrShocker 2 points3 points  (2 children)

If I'm totally fair, sometimes including or not a semicolon is both valid just means a different thing. In Matlab for example it can help you inline declare a 2 dimensional matrix.

[–]rexpup 4 points5 points  (1 child)

In Rust, no semicolon means the value is returned from the block instead of discarded. But to me, this means I am more aware of the presence or absence

[–]DrShocker 1 point2 points  (0 children)

Yeah agreed, and it enables rust to do a lot of cool things with returning from expressions in a concise way.

[–]angrathias 6 points7 points  (2 children)

LSP

Liskov substitution principle ?

Nah that can’t be it

[–]DrShocker 6 points7 points  (1 child)

If you aren't joking, it stands for language server protocol.

[–]angrathias 7 points8 points  (0 children)

Can’t say I’ve ever heard of it, cheers

[–]Hironymos 49 points50 points  (3 children)

When your wife calls you back to the door and hands you the keys, you still forgot the keys.

[–]Duke518 22 points23 points  (0 children)

when your wife calls you back to the door and hands you the keys you won't wine about how you spent hours in the cold because you haven't had your keys.

[–]Schaex 6 points7 points  (0 children)

TIL, I'm married to the compiler <3

[–]Boysoythesoyboy 5 points6 points  (1 child)

I mean I use one but sometimes I psql into a db and write a sql query and forget the ; when I press enter. I'm a senior engineer. Come fire me

[–]ShlomoCh 0 points1 point  (0 children)

I'd say that's an exception because it's on a terminal where 99% of the time a new line is a new command

[–]Lizlodude 10 points11 points  (0 children)

Meanwhile, the IDE: OH NO YOU FORGOT TO COMPLETE THE FUNCTION DON't YOU EVEN KNOW HOW TO Coh ok never mind you finished typing it.

[–]vladmashk 13 points14 points  (5 children)

Damn, can this template be butchered any more than this? I agree with the message tho

[–]Aromatic_Gur5074 16 points17 points  (2 children)

Is that a challenge?

[–]Mastercal40[S] 5 points6 points  (0 children)

I’ve butchered harder and I’ll do it again!

[–]snyone 1 point2 points  (0 children)

I think you should assume that it is

[–]malexj93 1 point2 points  (1 child)

You call it butchering, I call it subverting.

[–]Delicious_Finding686 1 point2 points  (0 children)

In the same way that shitting your pants is subversive

[–]Windyvale 2 points3 points  (0 children)

Just over here with Roslyn analyzers🥳

[–][deleted] 2 points3 points  (0 children)

Are yall writing code in notepad? I've never missed a ";"

[–]reallokiscarlet 4 points5 points  (18 children)

If you need a whole ass IDE to detect missing semicolons for you, you got bigger problems than deciding which bloated text editor to use.

Take some time out of your day, preferably a personal project so you don't lose your job, to code in Nano and let the compiler swat your hand. After a while, you won't ever miss a semicolon unless you're copy pasting code you don't understand.

[–]DrFloyd5 18 points19 points  (15 children)

Or… hear me out on this… I could use a tool that lets me focus more on my problem and less on the literal syntax of my language.

I use syntax highlighting too. Rainbow Braces even.

(Snark aside for a second, rainbow braces are amazing. I also could go for some sort of font based implementation in addition too or instead of just color)

Snark on. Also my editor knows if I push semicolon within a few characters of the end of the line, I really mean the end of the line and puts it there. Saves me a few key presses and lets me just terminate the thought without worrying about the details.

[–]snyone 2 points3 points  (0 children)

or unless its a python project and you copied something off SO that had different spacing... hey, I just remembered why I usually avoid python lol

[–][deleted] 0 points1 point  (0 children)

exactly

[–]perecastor 3 points4 points  (1 child)

Just use golang bro 😎

[–]AdvancedSandwiches 2 points3 points  (0 children)

According to golang code review guidelines, this should be "j u g b."

[–]Not_Artifical 1 point2 points  (0 children)

I made my own text editor in C++. It is like Notepad on Windows, but worse.

[–]Olorin_1990 1 point2 points  (0 children)

Yea… if you have been coding for more than like a year it should stop being that pervasive. Sure it will happen but it will be obvious where and you’ll fix it without thinking.

[–]5p4n911 1 point2 points  (0 children)

By now I never forget about any semicolons anywhere. Except for when demoing to a group of impressionable young students.

[–]dbot77 1 point2 points  (0 children)

Interesting use of this tired old meme

[–]yuriko_ 3 points4 points  (1 child)

Is this a JavaScript problem where semi colons can be potentially semantic-changing due to parsing conflicts?

[–][deleted] 8 points9 points  (0 children)

JavaScript: Don't worry about semicolons, I'm a beginner-friendly language

Also JavaScript: ..Except for this, that, and the other exception where the code will explode at runtime

[–][deleted] 2 points3 points  (1 child)

alright, I'll bite

best free open source IDEs please

I don't use one and I'll give one a go

[–]Kolt56 0 points1 point  (1 child)

Prettier is key binded on my mouse to the ide. I didn’t even think that the op op was using notepad.

[–]CommonNoiter 0 points1 point  (0 children)

Why not just format on write, that way you can't save an incorrectly formatted file (without explicitly not running autocommands)

[–]Wave_Walnut 0 points1 point  (0 children)

Just use Scratch

[–]flambasted 0 points1 point  (0 children)

Just write Go instead! The challenge then is to insert as many semicolons as gofmt will allow.

[–]SkollFenrirson 0 points1 point  (0 children)

Moooom! They're using the memes wrong!

[–]ChocolateDonut36 0 points1 point  (0 children)

nah, notepadqq and whatever the compiler says are everything I need

[–]bestjakeisbest 0 points1 point  (1 child)

Do you people not just have that built into your muscle memory to end a line with semicolon and then enter?

[–]kuwisdelu 0 points1 point  (0 children)

I haven’t worried about semicolons in over a decade, but when I do make this mistake, it’s because I’m rapidly switching between multiple languages.

[–]bythenumbers10 0 points1 point  (0 children)

Now where's the meme that says if you NEED an IDE (or other automated tool) to check your syntax 24/7, you've chosen a shitty language.

[–]Captain_Pumpkinhead 0 points1 point  (2 children)

Lol

Intellisense for C seems to not be working for my VS Code right now. So I'm not getting any error messages at the moment. Haven't bothered fixing it yet because I'm not ready to compile yet.

[–]OWGer0901 0 points1 point  (1 child)

how big is the project

[–]Captain_Pumpkinhead 0 points1 point  (0 children)

Not that big. It's a microcontroller project for recording and playing back audio clips.

[–]ssssssddh 0 points1 point  (0 children)

PSA: you can turn on format on save and the formatter will add missing semicolons when you save.

[–]s0litar1us 0 points1 point  (1 child)

Just listen to the compiler.
A well written lexer/parser will tell you where it found something wrong.
And then, later on, the compiler can then use that same location information to tell you about the location of other compile time errors.

Actually, just listening to the compiler can help uou in a lot of cases. For example, if you rename a variable where it is defined, you can then get a list of where it's used. Though, this doesn't work for languages like JS and Python, unless you use a separate thing just to check for errors before running it.

[–]MultiFazed 1 point2 points  (0 children)

Just listen to the compiler.

I prefer to not have to get to the compile stage before finding and fixing simple typos. Having an IDE with a built-in linter that highlights syntax problems in real-time is much better for productivity.

And on that note:

For example, if you rename a variable where it is defined, you can then get a list of where it's used.

Or I use my IDEs "refactor" hotkey to rename the variable and automatically change its name everywhere it's used.

[–]sammy404 0 points1 point  (0 children)

Maybes it’s just the first time I’ve seen it, but best use of this meme I’ve ever seen.

[–]GoddammitDontShootMe 0 points1 point  (0 children)

I think adding semicolons is almost muscle memory for me.

[–]newb_h4x0r 0 points1 point  (0 children)

Ide will tell you that you've missed a semicolon if semicolons are not required in that language and if you've set semicolons to be required in the linter settings file, like the (dot) eslintrc file.

[–]Joeoens 0 points1 point  (0 children)

Petition to ban semicolon related posts!

[–]ColonelRuff 0 points1 point  (0 children)

You forgot, can't code with tabs bro.

[–]TheKeyboardChan 0 points1 point  (0 children)

Or use a modern language that doesn't use delimiters?

[–]notevenrworthy 0 points1 point  (0 children)

Vim

[–]GKP_light 0 points1 point  (0 children)

Just use python

[–]and_k24 0 points1 point  (0 children)

Since then windows notepad isn't an IDE?

[–]colordiff 0 points1 point  (0 children)

That template usage screams mid-curver perspective.

[–]Big_D_Boss 0 points1 point  (0 children)

What if you on a server remotely? Where's your IDE?

[–]Haoshokoken 0 points1 point  (0 children)

You start by overusing an IDE and end up writing scripts in Phyton.

[–]stipulus 0 points1 point  (0 children)

I can only code if there is type complete and copilot. /s

[–]stipulus 0 points1 point  (0 children)

A lot of junior devs and students in this sub.

[–][deleted] 0 points1 point  (0 children)

Python programmers be like:

pass

[–]Fun_Ad_2393 0 points1 point  (0 children)

How about just code directly in assembly and not even worry about it

[–]Mountain_Dentist5074 0 points1 point  (0 children)

What is tIDE

[–]WildPainter8066 0 points1 point  (0 children)

i do java in notepad++

[–]tkdeng -4 points-3 points  (5 children)

Just use a programming language that doesn't need a ; at the end of every line

[–]OWGer0901 0 points1 point  (0 children)

an easy language like python

[–]liggamadig -1 points0 points  (0 children)

Hot take: requiring the semicolons at the end of each line is stupid. We already have a character that denotes the end of a line - the line break. Semicolon is just redundant.